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

[PATCH 2/5] Log ring disable.


  • To: <win-pv-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Martin Harvey <Martin.Harvey@xxxxxxxxxx>
  • Date: Wed, 28 Jul 2021 15:02:44 +0100
  • Authentication-results: esa3.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: Martin Harvey <Martin.Harvey@xxxxxxxxxx>, Martin Harvey <martin.harvey@xxxxxxxxxx>
  • Delivery-date: Wed, 28 Jul 2021 14:03:20 +0000
  • Ironport-hdrordr: A9a23:lKC+wageIYXw5EF64aYEiwiJ1HBQXioji2hC6mlwRA09TyX5ra 2TdZUgpHjJYVMqMk3I9uruBEDtex3hHNtOkOos1NSZLW3bUQmTTL2KhLGKq1Hd8m/Fh4xgPM 9bGJSWY+eAaGSS4/ya3OG5eexQvOVu8sqT9JjjJ6EGd3AVV0lihT0JezpyCidNNW977QJSLu vn2iJAzQDQAEg/X4CAKVQuefPMnNHPnIKOW296O/Z2gDP+9Q9B8dTBYmOl4is=
  • Ironport-sdr: 7D2IJZn9OYr3T0fPTzrTmRKLKHOj7t8PgtF/BXjunDh1AlDz1bD+svL/+TbxUx946sqi/Wc6EU drsfzTSiWhrpC4CDbjyOZy3VEdOhpWJBJCgVvQNgi3TiTt/jbRKG66StHTyay4Dc9mmGWeI8t+ IVIDtkhWX0yZ6LtGWYrG8c0cvMWtZ5huPW4VwcS1ydOJLWtKXB7eqEcFweC9ixHmSLK3qFs2G3 PnbCD2//uXRRr5DhZRd3woLpKh4+PEepcDYXzlXY5v6iHMda7sJP4uu7QvK5CE/gYCudRqrCIE HNKy/BkYTE5GTnR9uy76yhSk
  • List-id: Developer list for the Windows PV Drivers subproject <win-pv-devel.lists.xenproject.org>

Since Rx/Tx ring disconnects now no longer wait forever, we add
some logging to catch those cases where the disconnect has timed out,
indicating how many requests are still in the ring.

This aids greatly with customer debugging.

Signed-off-by: Martin Harvey <martin.harvey@xxxxxxxxxx>
---
 src/xenvif/receiver.c    | 16 ++++++++++++++++
 src/xenvif/transmitter.c |  6 ++++++
 2 files changed, 22 insertions(+)

diff --git a/src/xenvif/receiver.c b/src/xenvif/receiver.c
index c70d938..7295646 100644
--- a/src/xenvif/receiver.c
+++ b/src/xenvif/receiver.c
@@ -2887,6 +2887,22 @@ __ReceiverRingDisconnect(
     ASSERT3U(Ring->ResponsesProcessed, ==, Ring->RequestsPushed);
     ASSERT3U(Ring->RequestsPushed, ==, Ring->RequestsPosted);
 
+    //Debug logs as well as assertion, else customer debugging difficult.
+    if ((Ring->ResponsesProcessed != Ring->RequestsPushed) ||
+        (Ring->RequestsPushed != Ring->RequestsPosted))
+    {
+        Info("%s[%u]: Ring disconnect, counts do not match.\n",
+            FrontendGetPath(Frontend),
+            Ring->Index);
+
+        Info("%s[%u]: Processed: %u Pushed: %u Posted: %u\n",
+            FrontendGetPath(Frontend),
+            Ring->Index,
+            Ring->ResponsesProcessed,
+            Ring->RequestsPushed,
+            Ring->RequestsPosted);
+    }
+
     Ring->ResponsesProcessed = 0;
     Ring->RequestsPushed = 0;
     Ring->RequestsPosted = 0;
diff --git a/src/xenvif/transmitter.c b/src/xenvif/transmitter.c
index fddeb0c..47f2fc2 100644
--- a/src/xenvif/transmitter.c
+++ b/src/xenvif/transmitter.c
@@ -4005,6 +4005,12 @@ __TransmitterRingDisable(
     }
     if (Ring->ResponsesProcessed != Ring->RequestsPushed)
     {
+        Info("%s[%u]: Timed out disable: Requests pushed: %u, Responses 
processed: %u.\n",
+            FrontendGetPath(Frontend),
+            Ring->Index,
+            Ring->RequestsPushed,
+            Ring->ResponsesProcessed);
+
         __TransmitterRingFakeResponses(Ring);
         (VOID) TransmitterRingPoll(Ring);
     }
-- 
2.25.0.windows.1




 


Rackspace

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