[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH] Track BlkifRing->State.Count in BlkifRingDisable
Also fixes some missing logging and duplicate xenstore writes Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> --- src/xencrsh/frontend.c | 5 +++++ src/xenvbd/adapter.c | 1 + src/xenvbd/frontend.c | 5 +++++ src/xenvbd/ring.c | 16 +++------------- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/src/xencrsh/frontend.c b/src/xencrsh/frontend.c index c2e40e3..78c90d9 100644 --- a/src/xencrsh/frontend.c +++ b/src/xencrsh/frontend.c @@ -666,6 +666,11 @@ __WriteRing( if (!NT_SUCCESS(Status)) goto abort; + Status = StoreWrite(Transaction, Frontend->FrontendPath, + "multi-queue-num-queues", "1"); + if (!NT_SUCCESS(Status)) + goto abort; + Status = StoreTransactionEnd(Transaction, TRUE); if (Status == STATUS_RETRY) continue; diff --git a/src/xenvbd/adapter.c b/src/xenvbd/adapter.c index f42f585..392a35f 100644 --- a/src/xenvbd/adapter.c +++ b/src/xenvbd/adapter.c @@ -1975,6 +1975,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; diff --git a/src/xenvbd/frontend.c b/src/xenvbd/frontend.c index b12e122..d2f7839 100644 --- a/src/xenvbd/frontend.c +++ b/src/xenvbd/frontend.c @@ -1628,6 +1628,11 @@ FrontendDebugCallback( &Frontend->DebugInterface, "State: %s\n", __XenvbdStateName(Frontend->State)); + XENBUS_DEBUG(Printf, + &Frontend->DebugInterface, + "Queues: u / %u\n", + __FrontendGetNumQueues(Frontend), + __FrontendGetMaxQueues(Frontend)); XENBUS_DEBUG(Printf, &Frontend->DebugInterface, diff --git a/src/xenvbd/ring.c b/src/xenvbd/ring.c index 66dcfec..5886482 100644 --- a/src/xenvbd/ring.c +++ b/src/xenvbd/ring.c @@ -2085,6 +2085,7 @@ BlkifRingDisable( ListEntry = RemoveHeadList(&BlkifRing->State.List); ASSERT3P(ListEntry, != , &BlkifRing->State.List); + --BlkifRing->State.Count; Request = CONTAINING_RECORD(ListEntry, XENVBD_REQUEST, @@ -2504,16 +2505,6 @@ RingStoreWrite( ++Index; } - status = XENBUS_STORE(Printf, - &Ring->StoreInterface, - Transaction, - FrontendGetFrontendPath(Ring->Frontend), - "multi-queue-num-queues", - "%u", - NumQueues); - if (!NT_SUCCESS(status)) - goto fail2; - if (Ring->Order != 0) { status = XENBUS_STORE(Printf, &Ring->StoreInterface, @@ -2523,7 +2514,7 @@ RingStoreWrite( "%u", Ring->Order); if (!NT_SUCCESS(status)) - goto fail3; + goto fail2; } status = XENBUS_STORE(Printf, @@ -2533,11 +2524,10 @@ RingStoreWrite( "protocol", XEN_IO_PROTO_ABI); if (!NT_SUCCESS(status)) - goto fail4; + goto fail3; return STATUS_SUCCESS; -fail4: fail3: fail2: fail1: -- 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 |