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] [xen-unstable] Turn some simple softirqs into tasklets.

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] Turn some simple softirqs into tasklets.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 11 Apr 2008 08:10:10 -0700
Delivery-date: Fri, 11 Apr 2008 08:10:08 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1207925742 -3600
# Node ID d2010614d9f1cfa8b7accc9c324cb1ef49edf1e2
# Parent  96b099ad04973e26944b8ef8196be0fd2ffdabfa
Turn some simple softirqs into tasklets.

TRACE_SOFTIRQ does not appear to be necessary at all.

Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
---
 xen/arch/x86/traps.c      |    8 ++++----
 xen/common/keyhandler.c   |    8 ++++----
 xen/common/trace.c        |    9 +--------
 xen/include/xen/softirq.h |    3 ---
 4 files changed, 9 insertions(+), 19 deletions(-)

diff -r 96b099ad0497 -r d2010614d9f1 xen/arch/x86/traps.c
--- a/xen/arch/x86/traps.c      Fri Apr 11 15:37:48 2008 +0100
+++ b/xen/arch/x86/traps.c      Fri Apr 11 15:55:42 2008 +0100
@@ -2637,12 +2637,14 @@ asmlinkage void do_general_protection(st
     panic("GENERAL PROTECTION FAULT\n[error_code=%04x]\n", regs->error_code);
 }
 
-static void nmi_softirq(void)
+static void nmi_action(unsigned long unused)
 {
     /* Only used to defer wakeup of dom0,vcpu0 to a safe (non-NMI) context. */
     vcpu_kick(dom0->vcpu[0]);
 }
 
+static DECLARE_TASKLET(nmi_tasklet, nmi_action, 0);
+
 static void nmi_dom0_report(unsigned int reason_idx)
 {
     struct domain *d;
@@ -2654,7 +2656,7 @@ static void nmi_dom0_report(unsigned int
     set_bit(reason_idx, nmi_reason(d));
 
     if ( !test_and_set_bool(v->nmi_pending) )
-        raise_softirq(NMI_SOFTIRQ); /* not safe to wake up a vcpu here */
+        tasklet_schedule(&nmi_tasklet); /* not safe to wake a vcpu here */
 }
 
 asmlinkage void mem_parity_error(struct cpu_user_regs *regs)
@@ -2932,8 +2934,6 @@ void __init trap_init(void)
     percpu_traps_init();
 
     cpu_init();
-
-    open_softirq(NMI_SOFTIRQ, nmi_softirq);
 }
 
 long register_guest_nmi_callback(unsigned long address)
diff -r 96b099ad0497 -r d2010614d9f1 xen/common/keyhandler.c
--- a/xen/common/keyhandler.c   Fri Apr 11 15:37:48 2008 +0100
+++ b/xen/common/keyhandler.c   Fri Apr 11 15:55:42 2008 +0100
@@ -32,7 +32,7 @@ static struct {
 
 static unsigned char keypress_key;
 
-static void keypress_softirq(void)
+static void keypress_action(unsigned long unused)
 {
     keyhandler_t *h;
     unsigned char key = keypress_key;
@@ -42,6 +42,8 @@ static void keypress_softirq(void)
     console_end_log_everything();
 }
 
+static DECLARE_TASKLET(keypress_tasklet, keypress_action, 0);
+
 void handle_keypress(unsigned char key, struct cpu_user_regs *regs)
 {
     irq_keyhandler_t *h;
@@ -56,7 +58,7 @@ void handle_keypress(unsigned char key, 
     else
     {
         keypress_key = key;
-        raise_softirq(KEYPRESS_SOFTIRQ);
+        tasklet_schedule(&keypress_tasklet);
     }
 }
 
@@ -284,8 +286,6 @@ static void do_debug_key(unsigned char k
 
 void __init initialize_keytable(void)
 {
-    open_softirq(KEYPRESS_SOFTIRQ, keypress_softirq);
-
     register_irq_keyhandler(
         'd', dump_registers, "dump registers");
     register_keyhandler(
diff -r 96b099ad0497 -r d2010614d9f1 xen/common/trace.c
--- a/xen/common/trace.c        Fri Apr 11 15:37:48 2008 +0100
+++ b/xen/common/trace.c        Fri Apr 11 15:55:42 2008 +0100
@@ -69,12 +69,6 @@ static cpumask_t tb_cpu_mask = CPU_MASK_
 /* which tracing events are enabled */
 static u32 tb_event_mask = TRC_ALL;
 
-static void trace_notify_guest(void)
-{
-    send_guest_global_virq(dom0, VIRQ_TBUF);
-}
-
-
 /**
  * alloc_trace_bufs - performs initialization of the per-cpu trace buffers.
  *
@@ -120,7 +114,6 @@ static int alloc_trace_bufs(void)
     }
 
     t_buf_highwater = data_size >> 1; /* 50% high water */
-    open_softirq(TRACE_SOFTIRQ, trace_notify_guest);
 
     return 0;
 }
@@ -513,7 +506,7 @@ void __trace_var(u32 event, int cycles, 
     /* Notify trace buffer consumer that we've crossed the high water mark. */
     if ( started_below_highwater &&
          (calc_unconsumed_bytes(buf) >= t_buf_highwater) )
-        raise_softirq(TRACE_SOFTIRQ);
+        send_guest_global_virq(dom0, VIRQ_TBUF);
 }
 
 /*
diff -r 96b099ad0497 -r d2010614d9f1 xen/include/xen/softirq.h
--- a/xen/include/xen/softirq.h Fri Apr 11 15:37:48 2008 +0100
+++ b/xen/include/xen/softirq.h Fri Apr 11 15:55:42 2008 +0100
@@ -6,10 +6,7 @@ enum {
     TIMER_SOFTIRQ = 0,
     SCHEDULE_SOFTIRQ,
     NEW_TLBFLUSH_CLOCK_PERIOD_SOFTIRQ,
-    KEYPRESS_SOFTIRQ,
-    NMI_SOFTIRQ,
     PAGE_SCRUB_SOFTIRQ,
-    TRACE_SOFTIRQ,
     RCU_SOFTIRQ,
     STOPMACHINE_SOFTIRQ,
     TASKLET_SOFTIRQ,

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] Turn some simple softirqs into tasklets., Xen patchbot-unstable <=