|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [win-pv-devel] [PATCH 3/5] Add override for MaxRingPageOrder
From: Owen Smith <owen.smith@xxxxxxxxxx>
Allow a Windows admin to limit the ring page count without
affecting any other VMs on the host. The override can be used
to restrict blkback's generous 16 page ring to a smaller value.
Signed-off-by: Owen Smith <owen.smith@xxxxxxxxxx>
---
src/xenvbd/driver.c | 3 ++-
src/xenvbd/driver.h | 1 +
src/xenvbd/ring.c | 12 ++++++++++--
3 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/src/xenvbd/driver.c b/src/xenvbd/driver.c
index e7a3d3a..59b380c 100644
--- a/src/xenvbd/driver.c
+++ b/src/xenvbd/driver.c
@@ -266,7 +266,8 @@ __DriverInitializeOverrides(
{ "discard-enable", FeatureDiscardEnable },
{ "discard-secure", FeatureDiscardSecure },
{ "discard-alignment", FeatureDiscardAlignment },
- { "discard-granularity", FeatureDiscardGranularity }
+ { "discard-granularity", FeatureDiscardGranularity },
+ { "max-ring-page-order", FeatureMaxRingPageOrder }
};
for (Index = 0; Index < ARRAYSIZE(Mapping); Index++) {
diff --git a/src/xenvbd/driver.h b/src/xenvbd/driver.h
index 940968e..d99c09a 100644
--- a/src/xenvbd/driver.h
+++ b/src/xenvbd/driver.h
@@ -79,6 +79,7 @@ typedef enum _XENVBD_FEATURE {
FeatureDiscardSecure,
FeatureDiscardAlignment,
FeatureDiscardGranularity,
+ FeatureMaxRingPageOrder,
// Add any new features before this enum
NumberOfFeatures
diff --git a/src/xenvbd/ring.c b/src/xenvbd/ring.c
index 77eee54..033975b 100644
--- a/src/xenvbd/ring.c
+++ b/src/xenvbd/ring.c
@@ -1711,9 +1711,17 @@ RingConnect(
"max-ring-page-order",
&Buffer);
if (NT_SUCCESS(status)) {
+ ULONG MaxOrder;
+
+ if (DriverGetFeatureOverride(FeatureMaxRingPageOrder,
+ &MaxOrder)) {
+ MaxOrder = min(MaxOrder, XENVBD_MAX_RING_PAGE_ORDER);
+ } else {
+ MaxOrder = XENVBD_MAX_RING_PAGE_ORDER;
+ }
+
Ring->Order = strtoul(Buffer, NULL, 10);
- if (Ring->Order > XENVBD_MAX_RING_PAGE_ORDER)
- Ring->Order = XENVBD_MAX_RING_PAGE_ORDER;
+ Ring->Order = min(Ring->Order, MaxOrder);
XENBUS_STORE(Free,
&Ring->StoreInterface,
--
2.8.3
_______________________________________________
win-pv-devel mailing list
win-pv-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/cgi-bin/mailman/listinfo/win-pv-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |