From: Martin Harvey Date: Wed, 28 Jul 2021 14:02:45 +0000 (+0100) Subject: Log waits for backend state changes. X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=c8ba37477306605c76a076ad6ee29baf87de20dd;p=pvdrivers%2Fwin%2Fxenvif.git Log waits for backend state changes. In addition to preceding changes to ring disconnects, and associated logging, we also add some logging to check whether state change notifications are being sent in a timely manner between frontend and backend. Also a great assistance to customer debugging. Signed-off-by: Martin Harvey --- diff --git a/src/xenvif/frontend.c b/src/xenvif/frontend.c index 5940e16..72f448d 100644 --- a/src/xenvif/frontend.c +++ b/src/xenvif/frontend.c @@ -1346,6 +1346,7 @@ FrontendWaitForBackendXenbusStateChange( LARGE_INTEGER Timeout; XenbusState Old = *State; NTSTATUS status; + const ULONGLONG TotalTimeout = 120000; Trace("%s: ====> %s\n", __FrontendGetBackendPath(Frontend), @@ -1369,7 +1370,7 @@ FrontendWaitForBackendXenbusStateChange( Timeout.QuadPart = 0; - while (*State == Old && TimeDelta < 120000) { + while (*State == Old && TimeDelta < TotalTimeout) { PCHAR Buffer; LARGE_INTEGER Now; @@ -1417,6 +1418,9 @@ FrontendWaitForBackendXenbusStateChange( TimeDelta = (Now.QuadPart - Start.QuadPart) / 10000ull; } + if (TimeDelta >= TotalTimeout) + Error("%s timed out waiting for backend state change\n", __FrontendGetBackendPath(Frontend)); + if (Watch != NULL) (VOID) XENBUS_STORE(WatchRemove, &Frontend->StoreInterface,