aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/xen/softirq.h
diff options
context:
space:
mode:
authorack@kneesa.uk.xensource.com <ack@kneesa.uk.xensource.com>2006-05-26 11:14:36 +0100
committerack@kneesa.uk.xensource.com <ack@kneesa.uk.xensource.com>2006-05-26 11:14:36 +0100
commit46ecd270567816a478f639058a450bb6b4ae0552 (patch)
tree148d942fa06e721e6a47ba477599a877443a2f06 /xen/include/xen/softirq.h
parent9acd07250181fa24f1bc4a4679c1ee7a52def2a5 (diff)
downloadxen-46ecd270567816a478f639058a450bb6b4ae0552.tar.gz
xen-46ecd270567816a478f639058a450bb6b4ae0552.tar.bz2
xen-46ecd270567816a478f639058a450bb6b4ae0552.zip
New weighted fair-share CPU scheduler w/ automatic SMP load balancing
Signed-off-by: Emmanuel Ackaouy <ack@xensource.com>
Diffstat (limited to 'xen/include/xen/softirq.h')
-rw-r--r--xen/include/xen/softirq.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/xen/include/xen/softirq.h b/xen/include/xen/softirq.h
index f4d484f43b..00e561dc86 100644
--- a/xen/include/xen/softirq.h
+++ b/xen/include/xen/softirq.h
@@ -26,6 +26,19 @@ typedef void (*softirq_handler)(void);
asmlinkage void do_softirq(void);
extern void open_softirq(int nr, softirq_handler handler);
+static inline void cpumask_raise_softirq(cpumask_t mask, unsigned int nr)
+{
+ int cpu;
+
+ for_each_cpu_mask(cpu, mask)
+ {
+ if ( test_and_set_bit(nr, &softirq_pending(cpu)) )
+ cpu_clear(cpu, mask);
+ }
+
+ smp_send_event_check_mask(mask);
+}
+
static inline void cpu_raise_softirq(unsigned int cpu, unsigned int nr)
{
if ( !test_and_set_bit(nr, &softirq_pending(cpu)) )