WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] Various softirq cleanups:, Xen patchbot -unstable <=