This patch enables the ability to define a QoS policy for a specific guest. As
an example,
consider the following vbd table:
vbd = [
'phy:/dev/skylar/guest1-disk,xvda1:tokens-max=500000:tokens-refill=512,w',
'phy:/dev/skylar/guest1-swap,xvda2:tokens-max=140000:tokens-refill=128,w',
]
This patch would cause the system to give less credit to accesses for xvda2 than
xvda1, meaning that guests heavily into swap will degrade system performance
less.
Since the QoS settings are guest specific, each guest can have it's own credit
allotments, which may be considered useful to somebody.
This patch only affects the kernel side, changes to xend will be necessary and
will be covered in another patch against 3.4.
Signed-off-by: William Pitcock <nenolod@xxxxxxxxxxxxxxxx>
---
drivers/xen/blkback/xenbus.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/xen/blkback/xenbus.c b/drivers/xen/blkback/xenbus.c
index 650f4b3..66357af 100644
--- a/drivers/xen/blkback/xenbus.c
+++ b/drivers/xen/blkback/xenbus.c
@@ -311,6 +311,11 @@ static void backend_changed(struct xenbus_watch *watch,
kfree(device_type);
}
+ /* gather information about QoS policy for this device. */
+ err = xenbus_gather(XBT_NIL, dev->otherend, "tokens-max", "%d",
&be->blkif->reqmax,
+ "tokens-refill", "%d", &be->blkif->reqrate, NULL);
+ be->blkif->reqtime = jiffies;
+
if (be->major == 0 && be->minor == 0) {
/* Front end dir is a number, which is used as the handle. */
--
1.6.1.3
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|