From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: Re: [PATCH v2 for Xen 4.6 1/4] xen: enabling XL to set per-VCPU parameters of a domain for RTDS scheduler Date: Fri, 29 May 2015 14:51:02 +0100 Message-ID: <1432907462.5077.42.camel@citrix.com> References: <1432598752-20826-1-git-send-email-chong.li@wustl.edu> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============3065304773285022586==" Return-path: In-Reply-To: <1432598752-20826-1-git-send-email-chong.li@wustl.edu> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Chong Li Cc: Chong Li , Sisu Xi , george.dunlap@eu.citrix.com, xen-devel@lists.xen.org, mengxu@cis.upenn.edu, jbeulich@suse.com, dgolomb@seas.upenn.edu List-Id: xen-devel@lists.xenproject.org --===============3065304773285022586== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-nYGieVLWNj8H18gGjPTC" --=-nYGieVLWNj8H18gGjPTC Content-Type: multipart/mixed; boundary="=-LIlJuOUItgdvjS+POrv7" --=-LIlJuOUItgdvjS+POrv7 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, 2015-05-25 at 19:05 -0500, Chong Li wrote: > diff --git a/xen/common/domctl.c b/xen/common/domctl.c > index 28aea55..8143c44 100644 > --- a/xen/common/domctl.c > +++ b/xen/common/domctl.c > @@ -841,6 +841,11 @@ long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) = u_domctl) > copyback =3D 1; > break; > =20 > + case XEN_DOMCTL_scheduler_vcpu_op: > + ret =3D sched_adjust_vcpu(d, &op->u.scheduler_vcpu_op); > + copyback =3D 1; > + break; > + > So, thinking more about this, do we really want a full new DOMCTL, or do we want to instrument XEN_DOMCTL_scheduler_op? That would mean adding two operations there, and fiddling with struct xen_domctl_scheduler_op? The problem I see is that, whatever I imagine putting this, there would be some redundancy. Quick-&-dirty, I put together the below... would it possibly make sense? typedef struct xen_domctl_sched_credit { uint16_t weight; uint16_t cap; } xen_domctl_sched_credit_t; typedef struct xen_domctl_sched_credit2 { uint16_t weight; } xen_domctl_sched_credit2_t; typedef struct xen_domctl_sched_rtds { uint32_t period; = =20 uint32_t budget; } xen_domctl_sched_rtds_t; typedef union xen_domctl_schedparam { =20 xen_domctl_sched_credit_t credit; =20 xen_domctl_sched_credit2_t credit2; xen_domctl_sched_rtds_t rtds; } xen_domctl_schedparam_t; =20 typedef struct xen_domctl_schedparam_vcpu { union { xen_domctl_sched_credit_t credit; xen_domctl_sched_credit2_t credit2; xen_domctl_sched_rtds_t rtds; } s; =20 uint16_t vcpuid;=20 } xen_domctl_schedparam_vcpu_t; DEFINE_XEN_GUEST_HANDLE(xen_domctl_schedparam_vcpu_t); =20 /* Set or get info? */ #define XEN_DOMCTL_SCHEDOP_putinfo 0 #define XEN_DOMCTL_SCHEDOP_getinfo 1 #define XEN_DOMCTL_SCHEDOP_putvcpuinfo 2 #define XEN_DOMCTL_SCHEDOP_getvcpuinfo 3=20 struct xen_domctl_scheduler_op { uint32_t sched_id; /* XEN_SCHEDULER_* */ uint32_t cmd; /* XEN_DOMCTL_SCHEDOP_* */=20 union { xen_domctl_schedparam_t d; struct { XEN_GUEST_HANDLE_64(xen_domctl_schedparam_vcpu_t) vcpus; uint16_t nr_vcpus; } v; =20 } u; =20 };=20 typedef struct xen_domctl_scheduler_op xen_domctl_scheduler_op_t; DEFINE_XEN_GUEST_HANDLE(xen_domctl_scheduler_op_t); I'm also attaching a (build-tested only) patch to that effect (I'm killing SEDF in there, so I don't have to care about it, as it's going away anyway). Thoughts? > /* > - * set/get each vcpu info of each domain > + * set/get per-domain params of a domain > */ > static int > rt_dom_cntl( > @@ -1115,6 +1115,74 @@ rt_dom_cntl( > return rc; > } > =20 > +/* > + * set/get per-vcpu params of a domain > + */ > +static int > +rt_vcpu_cntl( > + const struct scheduler *ops, > + struct domain *d, > + struct xen_domctl_scheduler_vcpu_op *op) > +{ > I commented this function already, while replying to Jan. =20 > +/* Adjust scheduling parameter for the vcpus of a given domain. */ > +long sched_adjust_vcpu( > + struct domain *d, > + struct xen_domctl_scheduler_vcpu_op *op) > +{ > Actually, I don't think you even need this function. Especially if we take the path of doing all this as subops of DOMCTL_scheduler_op, you can just use sched_adjust, do some more multiplexing in there, and the call the proper scheduler hook. Thanks and Regards, Dario --=20 <> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) --=-LIlJuOUItgdvjS+POrv7 Content-Disposition: attachment; filename="vcpuparams.patch" Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="vcpuparams.patch"; charset="UTF-8" ZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vTWFrZWZpbGUgYi94ZW4vY29tbW9uL01ha2VmaWxlCmlu ZGV4IDFjZGRlYmMuLjNmZGY5MzEgMTAwNjQ0Ci0tLSBhL3hlbi9jb21tb24vTWFrZWZpbGUKKysr IGIveGVuL2NvbW1vbi9NYWtlZmlsZQpAQCAtMzEsNyArMzEsNiBAQCBvYmoteSArPSByYnRyZWUu bwogb2JqLXkgKz0gcmN1cGRhdGUubwogb2JqLXkgKz0gc2NoZWRfY3JlZGl0Lm8KIG9iai15ICs9 IHNjaGVkX2NyZWRpdDIubwotb2JqLXkgKz0gc2NoZWRfc2VkZi5vCiBvYmoteSArPSBzY2hlZF9h cmluYzY1My5vCiBvYmoteSArPSBzY2hlZF9ydC5vCiBvYmoteSArPSBzY2hlZHVsZS5vCmRpZmYg LS1naXQgYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdC5jIGIveGVuL2NvbW1vbi9zY2hlZF9jcmVk aXQuYwppbmRleCA5NTNlY2IwLi40M2IwODZiIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVk X2NyZWRpdC5jCisrKyBiL3hlbi9jb21tb24vc2NoZWRfY3JlZGl0LmMKQEAgLTEwMzksMjUgKzEw MzksMjUgQEAgY3NjaGVkX2RvbV9jbnRsKAogCiAgICAgaWYgKCBvcC0+Y21kID09IFhFTl9ET01D VExfU0NIRURPUF9nZXRpbmZvICkKICAgICB7Ci0gICAgICAgIG9wLT51LmNyZWRpdC53ZWlnaHQg PSBzZG9tLT53ZWlnaHQ7Ci0gICAgICAgIG9wLT51LmNyZWRpdC5jYXAgPSBzZG9tLT5jYXA7Cisg ICAgICAgIG9wLT51LmQuY3JlZGl0LndlaWdodCA9IHNkb20tPndlaWdodDsKKyAgICAgICAgb3At PnUuZC5jcmVkaXQuY2FwID0gc2RvbS0+Y2FwOwogICAgIH0KICAgICBlbHNlCiAgICAgewogICAg ICAgICBBU1NFUlQob3AtPmNtZCA9PSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5mbyk7CiAKLSAg ICAgICAgaWYgKCBvcC0+dS5jcmVkaXQud2VpZ2h0ICE9IDAgKQorICAgICAgICBpZiAoIG9wLT51 LmQuY3JlZGl0LndlaWdodCAhPSAwICkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKCAhbGlz dF9lbXB0eSgmc2RvbS0+YWN0aXZlX3Nkb21fZWxlbSkgKQogICAgICAgICAgICAgewogICAgICAg ICAgICAgICAgIHBydi0+d2VpZ2h0IC09IHNkb20tPndlaWdodCAqIHNkb20tPmFjdGl2ZV92Y3B1 X2NvdW50OwotICAgICAgICAgICAgICAgIHBydi0+d2VpZ2h0ICs9IG9wLT51LmNyZWRpdC53ZWln aHQgKiBzZG9tLT5hY3RpdmVfdmNwdV9jb3VudDsKKyAgICAgICAgICAgICAgICBwcnYtPndlaWdo dCArPSBvcC0+dS5kLmNyZWRpdC53ZWlnaHQgKiBzZG9tLT5hY3RpdmVfdmNwdV9jb3VudDsKICAg ICAgICAgICAgIH0KLSAgICAgICAgICAgIHNkb20tPndlaWdodCA9IG9wLT51LmNyZWRpdC53ZWln aHQ7CisgICAgICAgICAgICBzZG9tLT53ZWlnaHQgPSBvcC0+dS5kLmNyZWRpdC53ZWlnaHQ7CiAg ICAgICAgIH0KIAotICAgICAgICBpZiAoIG9wLT51LmNyZWRpdC5jYXAgIT0gKHVpbnQxNl90KX4w VSApCi0gICAgICAgICAgICBzZG9tLT5jYXAgPSBvcC0+dS5jcmVkaXQuY2FwOworICAgICAgICBp ZiAoIG9wLT51LmQuY3JlZGl0LmNhcCAhPSAodWludDE2X3QpfjBVICkKKyAgICAgICAgICAgIHNk b20tPmNhcCA9IG9wLT51LmQuY3JlZGl0LmNhcDsKIAogICAgIH0KIApkaWZmIC0tZ2l0IGEveGVu L2NvbW1vbi9zY2hlZF9jcmVkaXQyLmMgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwppbmRl eCA3NWUwMzIxLi44OTkyNDIzIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIu YworKysgYi94ZW4vY29tbW9uL3NjaGVkX2NyZWRpdDIuYwpAQCAtMTQzOCwyMCArMTQzOCwyMCBA QCBjc2NoZWQyX2RvbV9jbnRsKAogCiAgICAgaWYgKCBvcC0+Y21kID09IFhFTl9ET01DVExfU0NI RURPUF9nZXRpbmZvICkKICAgICB7Ci0gICAgICAgIG9wLT51LmNyZWRpdDIud2VpZ2h0ID0gc2Rv bS0+d2VpZ2h0OworICAgICAgICBvcC0+dS5kLmNyZWRpdDIud2VpZ2h0ID0gc2RvbS0+d2VpZ2h0 OwogICAgIH0KICAgICBlbHNlCiAgICAgewogICAgICAgICBBU1NFUlQob3AtPmNtZCA9PSBYRU5f RE9NQ1RMX1NDSEVET1BfcHV0aW5mbyk7CiAKLSAgICAgICAgaWYgKCBvcC0+dS5jcmVkaXQyLndl aWdodCAhPSAwICkKKyAgICAgICAgaWYgKCBvcC0+dS5kLmNyZWRpdDIud2VpZ2h0ICE9IDAgKQog ICAgICAgICB7CiAgICAgICAgICAgICBzdHJ1Y3QgbGlzdF9oZWFkICppdGVyOwogICAgICAgICAg ICAgaW50IG9sZF93ZWlnaHQ7CiAKICAgICAgICAgICAgIG9sZF93ZWlnaHQgPSBzZG9tLT53ZWln aHQ7CiAKLSAgICAgICAgICAgIHNkb20tPndlaWdodCA9IG9wLT51LmNyZWRpdDIud2VpZ2h0Owor ICAgICAgICAgICAgc2RvbS0+d2VpZ2h0ID0gb3AtPnUuZC5jcmVkaXQyLndlaWdodDsKIAogICAg ICAgICAgICAgLyogVXBkYXRlIHdlaWdodHMgZm9yIHZjcHVzLCBhbmQgbWF4X3dlaWdodCBmb3Ig cnVucXVldWVzIG9uIHdoaWNoIHRoZXkgcmVzaWRlICovCiAgICAgICAgICAgICBsaXN0X2Zvcl9l YWNoICggaXRlciwgJnNkb20tPnZjcHUgKQpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zY2hlZF9y dC5jIGIveGVuL2NvbW1vbi9zY2hlZF9ydC5jCmluZGV4IDdjMzlhOWUuLmM3ZWZkYTMgMTAwNjQ0 Ci0tLSBhL3hlbi9jb21tb24vc2NoZWRfcnQuYworKysgYi94ZW4vY29tbW9uL3NjaGVkX3J0LmMK QEAgLTEwOTEsMTIgKzEwOTEsMTIgQEAgcnRfZG9tX2NudGwoCiAgICAgY2FzZSBYRU5fRE9NQ1RM X1NDSEVET1BfZ2V0aW5mbzoKICAgICAgICAgc3Bpbl9sb2NrX2lycXNhdmUoJnBydi0+bG9jaywg ZmxhZ3MpOwogICAgICAgICBzdmMgPSBsaXN0X2VudHJ5KHNkb20tPnZjcHUubmV4dCwgc3RydWN0 IHJ0X3ZjcHUsIHNkb21fZWxlbSk7Ci0gICAgICAgIG9wLT51LnJ0ZHMucGVyaW9kID0gc3ZjLT5w ZXJpb2QgLyBNSUNST1NFQ1MoMSk7IC8qIHRyYW5zZmVyIHRvIHVzICovCi0gICAgICAgIG9wLT51 LnJ0ZHMuYnVkZ2V0ID0gc3ZjLT5idWRnZXQgLyBNSUNST1NFQ1MoMSk7CisgICAgICAgIG9wLT51 LmQucnRkcy5wZXJpb2QgPSBzdmMtPnBlcmlvZCAvIE1JQ1JPU0VDUygxKTsgLyogdHJhbnNmZXIg dG8gdXMgKi8KKyAgICAgICAgb3AtPnUuZC5ydGRzLmJ1ZGdldCA9IHN2Yy0+YnVkZ2V0IC8gTUlD Uk9TRUNTKDEpOwogICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZwcnYtPmxvY2ssIGZs YWdzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5m bzoKLSAgICAgICAgaWYgKCBvcC0+dS5ydGRzLnBlcmlvZCA9PSAwIHx8IG9wLT51LnJ0ZHMuYnVk Z2V0ID09IDAgKQorICAgICAgICBpZiAoIG9wLT51LmQucnRkcy5wZXJpb2QgPT0gMCB8fCBvcC0+ dS5kLnJ0ZHMuYnVkZ2V0ID09IDAgKQogICAgICAgICB7CiAgICAgICAgICAgICByYyA9IC1FSU5W QUw7CiAgICAgICAgICAgICBicmVhazsKQEAgLTExMDUsOCArMTEwNSw4IEBAIHJ0X2RvbV9jbnRs KAogICAgICAgICBsaXN0X2Zvcl9lYWNoKCBpdGVyLCAmc2RvbS0+dmNwdSApCiAgICAgICAgIHsK ICAgICAgICAgICAgIHN0cnVjdCBydF92Y3B1ICogc3ZjID0gbGlzdF9lbnRyeShpdGVyLCBzdHJ1 Y3QgcnRfdmNwdSwgc2RvbV9lbGVtKTsKLSAgICAgICAgICAgIHN2Yy0+cGVyaW9kID0gTUlDUk9T RUNTKG9wLT51LnJ0ZHMucGVyaW9kKTsgLyogdHJhbnNmZXIgdG8gbmFub3NlYyAqLwotICAgICAg ICAgICAgc3ZjLT5idWRnZXQgPSBNSUNST1NFQ1Mob3AtPnUucnRkcy5idWRnZXQpOworICAgICAg ICAgICAgc3ZjLT5wZXJpb2QgPSBNSUNST1NFQ1Mob3AtPnUuZC5ydGRzLnBlcmlvZCk7IC8qIHRy YW5zZmVyIHRvIG5hbm9zZWMgKi8KKyAgICAgICAgICAgIHN2Yy0+YnVkZ2V0ID0gTUlDUk9TRUNT KG9wLT51LmQucnRkcy5idWRnZXQpOwogICAgICAgICB9CiAgICAgICAgIHNwaW5fdW5sb2NrX2ly cXJlc3RvcmUoJnBydi0+bG9jaywgZmxhZ3MpOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBh L3hlbi9jb21tb24vc2NoZWR1bGUuYyBiL3hlbi9jb21tb24vc2NoZWR1bGUuYwppbmRleCBmNWEy ZTU1Li4yOWY0MDNjIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL3NjaGVkdWxlLmMKKysrIGIveGVu L2NvbW1vbi9zY2hlZHVsZS5jCkBAIC02NSw3ICs2NSw2IEBAIERFRklORV9QRVJfQ1BVKHN0cnVj dCBzY2hlZHVsZV9kYXRhLCBzY2hlZHVsZV9kYXRhKTsKIERFRklORV9QRVJfQ1BVKHN0cnVjdCBz Y2hlZHVsZXIgKiwgc2NoZWR1bGVyKTsKIAogc3RhdGljIGNvbnN0IHN0cnVjdCBzY2hlZHVsZXIg KnNjaGVkdWxlcnNbXSA9IHsKLSAgICAmc2NoZWRfc2VkZl9kZWYsCiAgICAgJnNjaGVkX2NyZWRp dF9kZWYsCiAgICAgJnNjaGVkX2NyZWRpdDJfZGVmLAogICAgICZzY2hlZF9hcmluYzY1M19kZWYs CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvZG9tY3RsLmggYi94ZW4vaW5jbHVkZS9w dWJsaWMvZG9tY3RsLmgKaW5kZXggODhmODAwMi4uYzFlMjVmNCAxMDA2NDQKLS0tIGEveGVuL2lu Y2x1ZGUvcHVibGljL2RvbWN0bC5oCisrKyBiL3hlbi9pbmNsdWRlL3B1YmxpYy9kb21jdGwuaApA QCAtMzMwLDMxICszMzAsNTAgQEAgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX2RvbWN0bF9t YXhfdmNwdXNfdCk7CiAjZGVmaW5lIFhFTl9TQ0hFRFVMRVJfQVJJTkM2NTMgNwogI2RlZmluZSBY RU5fU0NIRURVTEVSX1JURFMgICAgIDgKIAordHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hl ZF9jcmVkaXQgeworICAgIHVpbnQxNl90IHdlaWdodDsKKyAgICB1aW50MTZfdCBjYXA7Cit9IHhl bl9kb21jdGxfc2NoZWRfY3JlZGl0X3Q7CisKK3R5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfc2No ZWRfY3JlZGl0MiB7CisgICAgdWludDE2X3Qgd2VpZ2h0OworfSB4ZW5fZG9tY3RsX3NjaGVkX2Ny ZWRpdDJfdDsKKwordHlwZWRlZiBzdHJ1Y3QgeGVuX2RvbWN0bF9zY2hlZF9ydGRzIHsKKyAgICB1 aW50MzJfdCBwZXJpb2Q7CisgICAgdWludDMyX3QgYnVkZ2V0OworfSB4ZW5fZG9tY3RsX3NjaGVk X3J0ZHNfdDsKKwordHlwZWRlZiB1bmlvbiB4ZW5fZG9tY3RsX3NjaGVkcGFyYW0geworICAgIHhl bl9kb21jdGxfc2NoZWRfY3JlZGl0X3QgY3JlZGl0OworICAgIHhlbl9kb21jdGxfc2NoZWRfY3Jl ZGl0Ml90IGNyZWRpdDI7CisgICAgeGVuX2RvbWN0bF9zY2hlZF9ydGRzX3QgcnRkczsKK30geGVu X2RvbWN0bF9zY2hlZHBhcmFtX3Q7CisKK3R5cGVkZWYgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRw YXJhbV92Y3B1IHsKKyAgICB1bmlvbiB7CisgICAgICAgIHhlbl9kb21jdGxfc2NoZWRfY3JlZGl0 X3QgY3JlZGl0OworICAgICAgICB4ZW5fZG9tY3RsX3NjaGVkX2NyZWRpdDJfdCBjcmVkaXQyOwor ICAgICAgICB4ZW5fZG9tY3RsX3NjaGVkX3J0ZHNfdCBydGRzOworICAgIH0gczsKKyAgICB1aW50 MTZfdCB2Y3B1aWQ7Cit9IHhlbl9kb21jdGxfc2NoZWRwYXJhbV92Y3B1X3Q7CitERUZJTkVfWEVO X0dVRVNUX0hBTkRMRSh4ZW5fZG9tY3RsX3NjaGVkcGFyYW1fdmNwdV90KTsKKwogLyogU2V0IG9y IGdldCBpbmZvPyAqLwogI2RlZmluZSBYRU5fRE9NQ1RMX1NDSEVET1BfcHV0aW5mbyAwCiAjZGVm aW5lIFhFTl9ET01DVExfU0NIRURPUF9nZXRpbmZvIDEKKyNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hF RE9QX3B1dHZjcHVpbmZvIDIKKyNkZWZpbmUgWEVOX0RPTUNUTF9TQ0hFRE9QX2dldHZjcHVpbmZv IDMKIHN0cnVjdCB4ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcCB7CiAgICAgdWludDMyX3Qgc2NoZWRf aWQ7ICAvKiBYRU5fU0NIRURVTEVSXyogKi8KICAgICB1aW50MzJfdCBjbWQ7ICAgICAgIC8qIFhF Tl9ET01DVExfU0NIRURPUF8qICovCiAgICAgdW5pb24gewotICAgICAgICBzdHJ1Y3QgeGVuX2Rv bWN0bF9zY2hlZF9zZWRmIHsKLSAgICAgICAgICAgIHVpbnQ2NF9hbGlnbmVkX3QgcGVyaW9kOwot ICAgICAgICAgICAgdWludDY0X2FsaWduZWRfdCBzbGljZTsKLSAgICAgICAgICAgIHVpbnQ2NF9h bGlnbmVkX3QgbGF0ZW5jeTsKLSAgICAgICAgICAgIHVpbnQzMl90IGV4dHJhdGltZTsKLSAgICAg ICAgICAgIHVpbnQzMl90IHdlaWdodDsKLSAgICAgICAgfSBzZWRmOwotICAgICAgICBzdHJ1Y3Qg eGVuX2RvbWN0bF9zY2hlZF9jcmVkaXQgewotICAgICAgICAgICAgdWludDE2X3Qgd2VpZ2h0Owot ICAgICAgICAgICAgdWludDE2X3QgY2FwOwotICAgICAgICB9IGNyZWRpdDsKLSAgICAgICAgc3Ry dWN0IHhlbl9kb21jdGxfc2NoZWRfY3JlZGl0MiB7Ci0gICAgICAgICAgICB1aW50MTZfdCB3ZWln aHQ7Ci0gICAgICAgIH0gY3JlZGl0MjsKLSAgICAgICAgc3RydWN0IHhlbl9kb21jdGxfc2NoZWRf cnRkcyB7Ci0gICAgICAgICAgICB1aW50MzJfdCBwZXJpb2Q7Ci0gICAgICAgICAgICB1aW50MzJf dCBidWRnZXQ7Ci0gICAgICAgIH0gcnRkczsKKyAgICAgICAgeGVuX2RvbWN0bF9zY2hlZHBhcmFt X3QgZDsKKyAgICAgICAgc3RydWN0IHsKKyAgICAgICAgICAgIFhFTl9HVUVTVF9IQU5ETEVfNjQo eGVuX2RvbWN0bF9zY2hlZHBhcmFtX3ZjcHVfdCkgdmNwdXM7CisgICAgICAgICAgICB1aW50MTZf dCBucl92Y3B1czsKKyAgICAgICAgfSB2OwogICAgIH0gdTsKIH07CiB0eXBlZGVmIHN0cnVjdCB4 ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcCB4ZW5fZG9tY3RsX3NjaGVkdWxlcl9vcF90Owo= --=-LIlJuOUItgdvjS+POrv7-- --=-nYGieVLWNj8H18gGjPTC Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iEYEABECAAYFAlVobsYACgkQk4XaBE3IOsRxUQCfRyN9zWxKkhJhDEz7jCqGbCKr QB4An2HGXv4H5vigsXZh9ONtjFq0F98T =RP6T -----END PGP SIGNATURE----- --=-nYGieVLWNj8H18gGjPTC-- --===============3065304773285022586== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel --===============3065304773285022586==--