Hi, Daniel
Thank you for reviewing.
About xenHypervisorSetSchedulerParameters() in case of credit scheduler.
I just set not changed parameter at first.
I guess no problem on this.
Any problem?
+ /* credit scheduler parameters
+ * following values do not change the parameters
+ */
+ op_dom.u.getschedinfo.u.credit.weight = 0;
+ op_dom.u.getschedinfo.u.credit.cap = (uint16_t)~0U;
Thanks
Atsushi SAKAI
Daniel Veillard <veillard(a)redhat.com> wrote:
On Tue, Jun 05, 2007 at 11:23:43AM +0900, Atsushi SAKAI wrote:
> Hi, Daniel
>
> I confirmed to work Xen3.1.0 only.
> And not run on Xen3.0.4.(I guess domctl hypercall problem.)
> And not tested yet for Xen3.0.3.
>
> This is the reason I limit to work this command.
Okay, I will double check on a 3.0.3 box.
I also surprized in xenHypervisorSetSchedulerParameters(), in the
XEN_SCHEDULER_CREDIT, you loop on the params to extract the values for
weight and cap, but you never error:
- if you can't interpret one of the parameters
- if no parameters is actually found.
The memset at the beginning set to 0 those 2 values. I wonder what the
result of calling the hypercall with (0, 0) means (or if one of the values
is 0), I'm afraid it could actually hang the domain, without any error being
raise if there is a missing parameter. I could see 2 ways to fix this:
- either prepopulate the weight and cap values by an earlier hypercall
XEN_V2_OP_SCHEDULER
- or fail if while going through the loop we don't get the 2 values.
The second option seems nicer. The current error handling there is not
okay, especially since there is no indication in the documentation on
what the parameters needed might be (i.e. basically the only way to get
this to work for someone else is by trial and no error is ever raised,
so that really need to be fixed).
Daniel
--
Red Hat Virtualization group
http://redhat.com/virtualization/
Daniel Veillard | virtualization library
http://libvirt.org/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/