Hi Daniel-san,
Thank you for your reply.
virsh doesn't place any restrictions on whether those commands
can
be run on inactive guests. It should just try the API regardless
and be prepared for any errors.
I see.
I think that I should remove the following check from xend_internal.c
PinVcpu method.
Because the latest Xen supports this.
So, I made the patch that corrected the following problem.
"virsh vcpupin" and "virsh vcpuinfo" can not be executed to inactive
domains.
If XenD supports this then it should be just a matter of removing
the
check from xend_internal.c PinVcpu method
if (domain->id < 0) {
virXendError(domain->conn, VIR_ERR_INVALID_ARG,
_("Domain %s isn't running."), domain->name);
return(-1);
}
Signed-off-by: Tomohiro Takahashi <takatom(a)jp.fujitsu.com>
Thanks,
Tomohiro Takahashi
Daniel P. Berrange wrote:
On Wed, Apr 01, 2009 at 03:53:16PM +0900, Takahashi Tomohiro wrote:
> Hi,
>
> I have questions.
>
> I would like to know the specification of "virsh vcpupin" and "virsh
> vcpuinfo" in libvirt-0.6.1.
> "virsh vcpupin" and "virsh vcpuinfo" can not be executed to
inactive
> domains.
> I think it is the specification.
> Is it correct ?
virsh doesn't place any restrictions on whether those commands can
be run on inactive guests. It should just try the API regardless
and be prepared for any errors.
> I would like to know whether the libvirt-community have a support plan
> for pinning inactive domains or not.
> Because "xm vcpu-pin" and "vcpu-list" can be excuted to inactive
> domains in Xen3.3.
If XenD supports this then it should be just a matter of removing the
check from xend_internal.c PinVcpu method
if (domain->id < 0) {
virXendError(domain->conn, VIR_ERR_INVALID_ARG,
_("Domain %s isn't running."), domain->name);
return(-1);
}
Daniel
--- xend_internal.c.orig 2009-04-07 21:50:17.000000000 +0900
+++ xend_internal.c 2009-04-11 00:53:48.000000000 +0900
@@ -3776,11 +3776,6 @@ xenDaemonDomainPinVcpu(virDomainPtr doma
return (-1);
}
- if (domain->id < 0) {
- virXendError(domain->conn, VIR_ERR_INVALID_ARG,
- _("Domain %s isn't running."), domain->name);
- return(-1);
- }
/* from bit map, build character string of mapped CPU numbers */
for (i = 0; i < maplen; i++) for (j = 0; j < 8; j++)
@@ -3834,8 +3829,6 @@ xenDaemonDomainGetVcpus(virDomainPtr dom
__FUNCTION__);
return (-1);
}
- if (domain->id < 0)
- return(-1);
root = sexpr_get(domain->conn, "/xend/domain/%s?op=vcpuinfo",
domain->name);
if (root == NULL)