[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] credit scheduler svc->flags access race?

hi, all
I run 8 vms in HP DL380G7 server. These vms run fine if vm's schedule cap
value is 0(default).But most of vms stop running about one minute later if
their schedule cap values is 42 or other value.
After a few weeks tracking, I find that when I modify sched_credit.c as
follows, vms run fine again:
      1. in csched_acct function:
        - svc->flags |= CSCHED_FLAG_VCPU_PARKED; 
        + set_bit(0, &svc->flags);       // set CSCHED_FLAG_VCPU_PARKED
      2. in csched_vcpu_yield function:
        - sv->flags |= CSCHED_FLAG_VCPU_YIELD;
        + set_bit(1, &svc->flags);       // set CSCHED_FLAG_VCPU_YIELD
      3. in csched_vcpu struct:
        - uint16_t flags;
        + uint32_t flags;      // set_bit ask
Vms don't stop running either if sched_credit_default_yield = 1 in grub
So, what I modified is correct? Is there access race when xen access
svc->flags from csched_acct and csched_vcpu_yield?
Another interesting things is that vms don't stop running in other server
even if vms's schedule cap values is not 0, just on this HP DL380G7 server.
I don't know why.
My xen version is 4.1.0, dom0 kernel version is from jeremy's git
a few months before.

View this message in context: 
Sent from the Xen - Dev mailing list archive at Nabble.com.

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.