aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/xen/sched-if.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-02-16 09:27:45 +0000
committerKeir Fraser <keir.fraser@citrix.com>2010-02-16 09:27:45 +0000
commit8a85ee5b553427d80bb959697ff1e8f382e9594b (patch)
treebdc59fff7425870bd319e18fe1dff054d24b3adc /xen/include/xen/sched-if.h
parent82dc4c9fd8b278972528b70fdfdf3d316e413642 (diff)
downloadxen-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.h1
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);