diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-02-16 09:27:45 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-02-16 09:27:45 +0000 |
commit | 8a85ee5b553427d80bb959697ff1e8f382e9594b (patch) | |
tree | bdc59fff7425870bd319e18fe1dff054d24b3adc /xen/include/xen/sched-if.h | |
parent | 82dc4c9fd8b278972528b70fdfdf3d316e413642 (diff) | |
download | xen-8a85ee5b553427d80bb959697ff1e8f382e9594b.tar.gz xen-8a85ee5b553427d80bb959697ff1e8f382e9594b.tar.bz2 xen-8a85ee5b553427d80bb959697ff1e8f382e9594b.zip |
cpuidle: do not enter deep C state if there is urgent VCPU
when VCPU is polling on event channel, it usually has urgent task
running, e.g. spin_lock, in this case, it is better for cpuidle driver
not to enter deep C state.
This patch fix the issue that SLES 11 SP1 domain0 hangs in the box of
large number of CPUs (>= 64 CPUs).
Signed-off-by: Yu Ke <ke.yu@intel.com>
Signed-off-by: Tian Kevin <kevin.tian@intel.com>
Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
Diffstat (limited to 'xen/include/xen/sched-if.h')
-rw-r--r-- | xen/include/xen/sched-if.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/xen/include/xen/sched-if.h b/xen/include/xen/sched-if.h index 5caf8245d2..ed05757730 100644 --- a/xen/include/xen/sched-if.h +++ b/xen/include/xen/sched-if.h @@ -16,6 +16,7 @@ struct schedule_data { struct vcpu *idle; /* idle task for this cpu */ void *sched_priv; struct timer s_timer; /* scheduling timer */ + atomic_t urgent_count; /* how many urgent vcpus */ } __cacheline_aligned; DECLARE_PER_CPU(struct schedule_data, schedule_data); |