
On Wed, 18 Jul 2007 04:16:36 -0400 Daniel Veillard wrote:
On Wed, Jul 18, 2007 at 09:11:42AM +0900, Atsushi SAKAI wrote:
Hi, Daniel
uint16(weight and cap) is copyied in src/virsh.c so It cannot rewrite on src/xen_internal.c.
xenHypervisorSetSchedulerParameters() do get the int values in the case XEN_SCHEDULER_CREDIT : op_dom.u.getschedinfo.u.credit.weight = params[i].value.ui; and op_dom.u.getschedinfo.u.credit.cap = params[i].value.ui;
the ui field is an unsigned long. the test against the value 1 to USHRT_MAX can be done there and the case where one have a negative value at the virsh level would correspond to an extremely large integer in xenHypervisorSetSchedulerParameters() after the unsigned cast.
See the enclosed patch, please check,
Hi, The schedinfo command said strange message. # virsh schedinfo 25 --weight 0 libvir: Xen error : invalid argument in xenHypervisorSetSchedulerParameters: Credit scheduler weight parameter (%d) is out of range (1-65535) ^^^^here # virsh schedinfo 25 --cap -1 libvir: Xen error : invalid argument in xenHypervisorSetSchedulerParameters: Credit scheduler cap parameter (%d) is out of range (0-65535) ^^^^here I think we do not need to print the specified number, so I removed "(%d)" from the code to solve this problem. If you want to print the specified number, I will remake this patch ! And I found some wrong code when I was checking about error message. So I fix them, but if I have a misunderstanding of them, please tell me. :-) o I guess 10th argument of __virRaiseError should be specified the number of the line. But the value, for example which is number of heypercall, is sometimes specified. --- xen_internal.c-673- errmsg = __virErrorMsg(error, info); xen_internal.c:674: __virRaiseError(NULL, NULL, NULL, VIR_FROM_XEN, error, VIR_ERR_ERROR, xen_internal.c-675- errmsg, info, NULL, value, 0, errmsg, info); xen_internal.c-676-} There is same mistake at xml.c, xmlrpc.c and xend_internal.c, too. Thanks, Saori Fukuta