diff options
author | ack@kneesa.uk.xensource.com <ack@kneesa.uk.xensource.com> | 2006-05-26 11:14:36 +0100 |
---|---|---|
committer | ack@kneesa.uk.xensource.com <ack@kneesa.uk.xensource.com> | 2006-05-26 11:14:36 +0100 |
commit | 46ecd270567816a478f639058a450bb6b4ae0552 (patch) | |
tree | 148d942fa06e721e6a47ba477599a877443a2f06 /xen/include/xen/softirq.h | |
parent | 9acd07250181fa24f1bc4a4679c1ee7a52def2a5 (diff) | |
download | xen-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.h | 13 |
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)) ) |