|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH] Track StartIo and Failed SRB counts
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>
---
src/xenvbd/adapter.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/src/xenvbd/adapter.c b/src/xenvbd/adapter.c
index 1ae96cf..5e20944 100644
--- a/src/xenvbd/adapter.c
+++ b/src/xenvbd/adapter.c
@@ -93,6 +93,7 @@ struct _XENVBD_ADAPTER {
ULONG BuildIo;
ULONG StartIo;
ULONG Completed;
+ ULONG Failed;
};
static FORCEINLINE PVOID
@@ -905,10 +906,11 @@ AdapterDebugCallback(
PowerDeviceStateName(Adapter->DevicePower));
XENBUS_DEBUG(Printf,
&Adapter->DebugInterface,
- "ADAPTER: Srbs : %u built, %u started, %u
completed\n",
+ "ADAPTER: Srbs : %u built, %u started, %u
completed, %u failed\n",
Adapter->BuildIo,
Adapter->StartIo,
- Adapter->Completed);
+ Adapter->Completed,
+ Adapter->Failed);
}
static NTSTATUS
@@ -1503,6 +1505,7 @@ AdapterTeardown(
Adapter->BuildIo = 0;
Adapter->StartIo = 0;
Adapter->Completed = 0;
+ Adapter->Failed = 0;
ASSERT(IsZeroMemory(Adapter, sizeof(XENVBD_ADAPTER)));
Trace("<===== (%d)\n", KeGetCurrentIrql());
@@ -1518,7 +1521,10 @@ AdapterCompleteSrb(
ASSERT3U(Srb->SrbStatus, !=, SRB_STATUS_PENDING);
- InterlockedIncrement((PLONG)&Adapter->Completed);
+ if (Srb->SrbStatus == SRB_STATUS_SUCCESS)
+ InterlockedIncrement((PLONG)&Adapter->Completed);
+ else
+ InterlockedIncrement((PLONG)&Adapter->Failed);
StorPortNotification(RequestComplete, Adapter, Srb);
}
@@ -1974,6 +1980,7 @@ AdapterHwStartIo(
BOOLEAN WasQueued = FALSE;
PXENVBD_TARGET Target;
+ InterlockedIncrement((PLONG)&Adapter->StartIo);
Target = AdapterGetTarget(Adapter, Srb->TargetId);
if (Target == NULL) {
Srb->SrbStatus = SRB_STATUS_NO_DEVICE;
--
2.16.2.windows.1
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/win-pv-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |