]> xenbits.xensource.com Git - people/pauldu/xenvif.git/commitdiff
Logging and barrier changes in ReceiverWaitForPackets()
authorPaul Durrant <paul.durrant@citrix.com>
Tue, 25 Oct 2016 10:34:51 +0000 (11:34 +0100)
committerPaul Durrant <paul.durrant@citrix.com>
Tue, 25 Oct 2016 10:36:11 +0000 (11:36 +0100)
Modifications for bug diagnosis

Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
src/xenvif/receiver.c

index 25bf40aa00df1d3c0f3646065e4a1bbb67c4c097..196a4c10547ea575ccd3ddc4001abd9bbff08e04 100644 (file)
@@ -3646,13 +3646,14 @@ ReceiverWaitForPackets(
 
     Frontend = Receiver->Frontend;
 
+    Info("%s: ====>\n", FrontendGetPath(Frontend));
+
     Returned = Receiver->Returned;
 
     // Make sure Loaned is not sampled before Returned
     KeMemoryBarrier();
 
     Loaned = Receiver->Loaned;
-
     ASSERT3S(Loaned - Returned, >=, 0);
 
     Timeout.QuadPart = TIME_RELATIVE(TIME_S(XENVIF_RECEIVER_PACKET_WAIT_PERIOD));
@@ -3660,8 +3661,8 @@ ReceiverWaitForPackets(
     while (Returned != Loaned) {
         Info("%s: (Loaned = %d Returned = %d)\n",
              FrontendGetPath(Frontend),
-             Receiver->Loaned,
-             Receiver->Returned);
+             Loaned,
+             Returned);
 
         (VOID) KeWaitForSingleObject(&Receiver->Event,
                                      Executive,
@@ -3671,9 +3672,12 @@ ReceiverWaitForPackets(
         KeClearEvent(&Receiver->Event);
 
         Returned = Receiver->Returned;
+        KeMemoryBarrier();
+
+        ASSERT3S(Loaned, ==, Receiver->Loaned);
     }
 
-    Info("%s: done\n", FrontendGetPath(Frontend));
+    Info("%s: <====\n", FrontendGetPath(Frontend));
 }
 
 VOID