From c9fb82a6a21b51c4f72a907a447194fc0e57a806 Mon Sep 17 00:00:00 2001 From: Owen Smith Date: Fri, 7 Feb 2014 10:55:00 +0000 Subject: [PATCH] Reduce calls to BlockRingPush and NotifierSend during PdoSubmitPrepared Remove ListContains assertions Signed-off-by: Owen Smith --- src/xenvbd/pdo.c | 6 +++--- src/xenvbd/queue.c | 24 ------------------------ 2 files changed, 3 insertions(+), 27 deletions(-) diff --git a/src/xenvbd/pdo.c b/src/xenvbd/pdo.c index 326748e..30afe35 100644 --- a/src/xenvbd/pdo.c +++ b/src/xenvbd/pdo.c @@ -1235,10 +1235,10 @@ PdoSubmitPrepared( QueueAppend(&Pdo->SubmittedReqs, &Request->Entry); Request->Srb->SrbStatus = SRB_STATUS_SUCCESS; + } - if (BlockRingPush(BlockRing)) { - NotifierSend(Notifier); - } + if (BlockRingPush(BlockRing)) { + NotifierSend(Notifier); } } diff --git a/src/xenvbd/queue.c b/src/xenvbd/queue.c index 4cf3eed..9616489 100644 --- a/src/xenvbd/queue.c +++ b/src/xenvbd/queue.c @@ -51,27 +51,6 @@ QueueCount( return Queue->Current; } -static FORCEINLINE BOOLEAN -__ListContains( - IN PLIST_ENTRY Head, - IN PLIST_ENTRY List - ) -{ - PLIST_ENTRY Entry; - - for (Entry = Head->Flink; - Entry != Head; - Entry = Entry->Flink) - { - if (Entry == List) - return TRUE; - } - - return FALSE; -} - -#define ListContains(_h, _l) __ListContains(_h, _l) - __checkReturn PLIST_ENTRY QueuePop( @@ -104,7 +83,6 @@ QueueUnPop( KeAcquireSpinLock(&Queue->Lock, &Irql); - ASSERT(!ListContains(&Queue->List, Entry)); InsertHeadList(&Queue->List, Entry); if (++Queue->Current > Queue->Maximum) Queue->Maximum = Queue->Current; @@ -122,7 +100,6 @@ QueueAppend( KeAcquireSpinLock(&Queue->Lock, &Irql); - ASSERT(!ListContains(&Queue->List, Entry)); InsertTailList(&Queue->List, Entry); if (++Queue->Current > Queue->Maximum) Queue->Maximum = Queue->Current; @@ -140,7 +117,6 @@ QueueRemove( KeAcquireSpinLock(&Queue->Lock, &Irql); - ASSERT(ListContains(&Queue->List, Entry)); RemoveEntryList(Entry); --Queue->Current; -- 2.39.5