[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/5] Log waits for backend state changes.


  • To: win-pv-devel@xxxxxxxxxxxxxxxxxxxx
  • From: Paul Durrant <xadimgnik@xxxxxxxxx>
  • Date: Thu, 5 Aug 2021 19:20:42 +0100
  • Delivery-date: Thu, 05 Aug 2021 18:20:45 +0000
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>

On 28/07/2021 15:02, Martin Harvey wrote:
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@xxxxxxxxxx>

Acked-by: Paul Durrant <paul@xxxxxxx>

---
  src/xenvif/frontend.c | 6 +++++-
  1 file changed, 5 insertions(+), 1 deletion(-)

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,





 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.