[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Various softirq cleanups:
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 3838105ab03b9c8c7f024cc44159d8232b1285c1 # Parent f6a7f2657ff3d3e5a8e93949c39c632402d5b668 Various softirq cleanups: 1. Make __softirq_pending a long, since PPC borrows the file hardirq.h from us and they only do atomic ops on longs. 2. do_softirq() explicitly takes a void param list. 3. Remove idle_timestamp field from irq_cpustat. It's unused and lets us simplify the idle loop a little bit. Part 1 based on a patch from Hollis Blanchard at IBM. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> diff -r f6a7f2657ff3 -r 3838105ab03b xen/arch/x86/domain.c --- a/xen/arch/x86/domain.c Fri Mar 31 10:04:42 2006 +++ b/xen/arch/x86/domain.c Fri Mar 31 11:03:42 2006 @@ -79,15 +79,12 @@ for ( ; ; ) { - irq_stat[cpu].idle_timestamp = jiffies; - - while ( !softirq_pending(cpu) ) - { - page_scrub_schedule_work(); - default_idle(); - } - - do_softirq(); + page_scrub_schedule_work(); + + default_idle(); + + if ( softirq_pending(cpu) ) + do_softirq(); } } diff -r f6a7f2657ff3 -r 3838105ab03b xen/common/softirq.c --- a/xen/common/softirq.c Fri Mar 31 10:04:42 2006 +++ b/xen/common/softirq.c Fri Mar 31 11:03:42 2006 @@ -21,9 +21,10 @@ static softirq_handler softirq_handlers[NR_SOFTIRQS]; -asmlinkage void do_softirq() +asmlinkage void do_softirq(void) { - unsigned int i, pending, cpu = smp_processor_id(); + unsigned int i, cpu = smp_processor_id(); + unsigned long pending; pending = softirq_pending(cpu); ASSERT(pending != 0); diff -r f6a7f2657ff3 -r 3838105ab03b xen/include/asm-x86/hardirq.h --- a/xen/include/asm-x86/hardirq.h Fri Mar 31 10:04:42 2006 +++ b/xen/include/asm-x86/hardirq.h Fri Mar 31 11:03:42 2006 @@ -5,10 +5,9 @@ #include <xen/cache.h> typedef struct { - unsigned int __softirq_pending; + unsigned long __softirq_pending; unsigned int __local_irq_count; unsigned int __nmi_count; - unsigned long idle_timestamp; } __cacheline_aligned irq_cpustat_t; #include <xen/irq_cpustat.h> /* Standard mappings for irq_cpustat_t above */ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |