|
[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 |