Christian,

sys_fairsched_chwt() can return ENOENT in the only case:
when fairsched node ID was not found in the list.
but VE0 node is always on the list.
So I guess there is something wrong with syscall args in your case.

Please apply the attached patch to the kernel and vzctl
recompile/reboot and report the output of both.

Thanks,
Kirill


> When, where and what should return "-ENOSYS"?
> 
> I rechecked my .config file and I've seen that
> CONFIG_SCHED_VCPU=y
> CONFIG_FAIRSCHED=y
> is already in it. But I cannot find it in the menuconfig. The menu of
> powerpc architecture is a bit different than i386. So perhaps I just
> haven't seen it... where should I find it then?
> 
> So what I posted before is perhaps wrong. CONFIG_FAIRSCHED _was set_ in
> .config file. But I got the error "fairsched_chwt: No such file or
> directory".
> 
> Mit freundlichen Grüßen / Best Regards
> Christian Kaiser
> --
> IBM Deutschland Entwicklung GmbH
> Open Systems Firmware Development
> mail: [EMAIL PROTECTED]
> 
> IBM Deutschland Entwicklung GmbH
> Vorsitzender des Aufsichtsrats: Martin Jetter
> Geschäftsführung: Herbert Kircher
> Sitz der Gesellschaft: Böblingen
> Registergericht: Amtsgericht Stuttgart, HRB 243294
> 
> 
> 

--- ./kernel/fairsched.c.ve2350 2007-05-24 11:48:18.000000000 +0400
+++ ./kernel/fairsched.c        2007-05-25 16:36:36.000000000 +0400
@@ -618,6 +618,7 @@ static struct fairsched_node *fairsched_
        struct fairsched_node *p;
 
        for_each_fairsched_node(p) {
+               printk("  fairsched_find: search %u, node: %d/%u\n", id, p->id, 
p->id);
                if (p->id == id)
                        return p;
        }
@@ -734,9 +735,13 @@ int do_fairsched_chwt(unsigned int id, u
        if (weight < 1 || weight > FSCHWEIGHT_MAX)
                return -EINVAL;
 
+       printk("do_fairsched_chwt: node %u, w %u\n", id, weight);
        node = fairsched_find(id);
-       if (node == NULL)
+       if (node == NULL) {
+               printk("do_fairsched_chwt: ENOENT\n");
                return -ENOENT;
+       }
+       printk("do_fairsched_chwt: found\n");
 
        spin_lock_irq(&fairsched_lock);
        node->weight = weight;
diff --git a/src/lib/cpu.c b/src/lib/cpu.c
index 947d973..b0b53a7 100644
--- a/src/lib/cpu.c
+++ b/src/lib/cpu.c
@@ -74,7 +74,7 @@ static int set_cpulimit(envid_t veid, un
 
 static int set_cpuweight(envid_t veid, unsigned int cpuweight)
 {
-
+       logger(0, 0, "vzctl: fairsched_chwt(%u, %u)", veid, cpuweight);
        if (fairsched_chwt(veid, cpuweight)) {
                logger(-1, errno, "fairsched_chwt");
                return VZ_SETFSHD_ERROR;
_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to