On Tue, Mar 29, 2011 at 02:32:25PM +0800, Osier Yang wrote: > Not sure if it's the correct way to add cputune xml for xend driver, > and besides, seems "xm driver" and "xen hypervisor" also support > vcpu affinity, do we need to add support for them too? > --- > src/xen/xend_internal.c | 30 ++++++++++++++++++++++++++---- > 1 files changed, 26 insertions(+), 4 deletions(-) > > diff --git a/src/xen/xend_internal.c b/src/xen/xend_internal.c > index bfaed65..8859373 100644 > --- a/src/xen/xend_internal.c > +++ b/src/xen/xend_internal.c > @@ -2233,11 +2233,12 @@ xenDaemonDomainSetVcpusFlags(virDomainPtr domain, unsigned int vcpus, > */ > int > xenDaemonDomainPinVcpu(virDomainPtr domain, unsigned int vcpu, > - unsigned char *cpumap, int maplen) > + unsigned char *cpumap, int maplen) > { > char buf[VIR_UUID_BUFLEN], mapstr[sizeof(cpumap_t) * 64]; > - int i, j; > + int i, j, ret; > xenUnifiedPrivatePtr priv; > + virDomainDefPtr def = NULL; > > if ((domain == NULL) || (domain->conn == NULL) || (domain->name == NULL) > || (cpumap == NULL) || (maplen < 1) || (maplen > (int)sizeof(cpumap_t))) { > @@ -2265,8 +2266,29 @@ xenDaemonDomainPinVcpu(virDomainPtr domain, unsigned int vcpu, > mapstr[strlen(mapstr) - 1] = 0; > > snprintf(buf, sizeof(buf), "%d", vcpu); > - return(xend_op(domain->conn, domain->name, "op", "pincpu", "vcpu", buf, > - "cpumap", mapstr, NULL)); > + > + ret = xend_op(domain->conn, domain->name, "op", "pincpu", "vcpu", buf, > + "cpumap", mapstr, NULL); > + > + if (!(def = xenDaemonDomainFetch(domain->conn, > + domain->id, > + domain->name, > + NULL))) > + goto cleanup; > + > + if (ret == 0) { > + if (virDomainVcpupinAdd(def, cpumap, maplen, vcpu) < 0) { > + virXendError(VIR_ERR_INTERNAL_ERROR, > + "%s", _("failed to add vcpupin xml entry")); > + return (-1); > + } > + } > + > + return ret; > + > +cleanup: > + virDomainDefFree(def); > + return -1; > } ACK, Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@xxxxxxxxxxxx | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list