]> xenbits.xensource.com Git - pvdrivers/win/xenvif.git/commitdiff
Log waits for backend state changes.
authorMartin Harvey <Martin.Harvey@citrix.com>
Wed, 28 Jul 2021 14:02:45 +0000 (15:02 +0100)
committerPaul Durrant <pdurrant@amazon.com>
Thu, 5 Aug 2021 18:23:21 +0000 (19:23 +0100)
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 <martin.harvey@citrix.com>
src/xenvif/frontend.c

index 5940e16bccb298f4f11c64f0fe8f14aace6e49fc..72f448db0c055972a5a17678521a76c3a1787cba 100644 (file)
@@ -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,