[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH 8/9] Move query of "multi-queue-max-queues" to driver.c
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx> --- src/xenvbd/driver.c | 22 ++++++++++++++++++++++ src/xenvbd/driver.h | 5 +++++ src/xenvbd/frontend.c | 30 +++++------------------------- 3 files changed, 32 insertions(+), 25 deletions(-) diff --git a/src/xenvbd/driver.c b/src/xenvbd/driver.c index 2e9ba54..fc1c169 100644 --- a/src/xenvbd/driver.c +++ b/src/xenvbd/driver.c @@ -320,6 +320,28 @@ DriverGetFeatureName( NULL; } +ULONG +DriverGetMaxQueues( + VOID + ) +{ + ULONG Override; + ULONG MaxQueues; + + MaxQueues = KeQueryActiveProcessorCountEx(ALL_PROCESSOR_GROUPS); + + if (DriverGetFeatureOverride(FeatureMultiQueueMaxQueues, + &Override)) { + if (Override < MaxQueues) + MaxQueues = Override; + } + + if (MaxQueues == 0) + MaxQueues = 1; + + return MaxQueues; +} + DRIVER_INITIALIZE DriverEntry; NTSTATUS diff --git a/src/xenvbd/driver.h b/src/xenvbd/driver.h index 5a24c4a..c2fd44a 100644 --- a/src/xenvbd/driver.h +++ b/src/xenvbd/driver.h @@ -100,4 +100,9 @@ DriverGetFeatureName( IN XENVBD_FEATURE Feature ); +extern ULONG +DriverGetMaxQueues( + VOID + ); + #endif // _XENVBD_DRIVER_H diff --git a/src/xenvbd/frontend.c b/src/xenvbd/frontend.c index fd2c247..f6bd30c 100644 --- a/src/xenvbd/frontend.c +++ b/src/xenvbd/frontend.c @@ -1867,29 +1867,6 @@ fail1: return status; } -static VOID -FrontendSetMaxQueues( - IN PXENVBD_FRONTEND Frontend - ) -{ - ULONG FrontendMaxQueues; - - Frontend->MaxQueues = KeQueryActiveProcessorCountEx(ALL_PROCESSOR_GROUPS); - - if (DriverGetFeatureOverride(FeatureMultiQueueMaxQueues, - &FrontendMaxQueues)) { - if (FrontendMaxQueues < Frontend->MaxQueues) - Frontend->MaxQueues = FrontendMaxQueues; - } - - if (Frontend->MaxQueues == 0) - Frontend->MaxQueues = 1; - - Verbose("Target[%u] MaxQueues %u\n", - __FrontendGetTargetId(Frontend), - Frontend->MaxQueues); -} - NTSTATUS FrontendCreate( IN PXENVBD_TARGET Target, @@ -1917,8 +1894,11 @@ FrontendCreate( Frontend->DiskInfo.SectorSize = 512; // default sector size Frontend->BackendDomain = DOMID_INVALID; - FrontendSetMaxQueues(Frontend); - + Frontend->MaxQueues = DriverGetMaxQueues(); + Verbose("Target[%u] MaxQueues %u\n", + __FrontendGetTargetId(Frontend), + Frontend->MaxQueues); + status = RtlStringCbPrintfA(Frontend->FrontendPath, sizeof(Frontend->FrontendPath), "device/vbd/%u", -- 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 |