From: Steven Rostedt <rostedt@goodmis.org>
To: paulmck@linux.vnet.ibm.com
Cc: john stultz <johnstul@us.ibm.com>, Ingo Molnar <mingo@elte.hu>,
Thomas Gleixner <tglx@linutronix.de>,
Oleg Nesterov <oleg@tv-sign.ru>,
LKML <linux-kernel@vger.kernel.org>,
Dipankar Sarma <dipankar@in.ibm.com>,
RT <linux-rt-users@vger.kernel.org>
Subject: [PATCH RT] convert RCU Preempt tasklet into softirq.
Date: Thu, 07 Jun 2007 14:26:59 -0400 [thread overview]
Message-ID: <1181240819.10408.14.camel@localhost.localdomain> (raw)
In-Reply-To: <20070607161754.GA11941@linux.vnet.ibm.com>
Following Dipankar's lead, I converted the tasklet in rcupreempt.c into
a softirq.
I've compiled and booted with this patch, but ran no other tests.
Paul, I'm disappointed, this was so trivial I didn't get a chance to
learn anything ;-)
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Index: linux-2.6.21-rt9/include/linux/rcupreempt.h
===================================================================
--- linux-2.6.21-rt9.orig/include/linux/rcupreempt.h
+++ linux-2.6.21-rt9/include/linux/rcupreempt.h
@@ -63,7 +63,9 @@ extern void rcu_check_callbacks(int cpu,
extern void rcu_restart_cpu(int cpu);
extern long rcu_batches_completed(void);
-extern void rcu_process_callbacks(unsigned long unused);
+struct softirq_action;
+
+extern void rcu_process_callbacks(struct softirq_action *unused);
#endif /* __KERNEL__ */
#endif /* __LINUX_RCUPREEMPT_H */
Index: linux-2.6.21-rt9/kernel/rcupreempt.c
===================================================================
--- linux-2.6.21-rt9.orig/kernel/rcupreempt.c
+++ linux-2.6.21-rt9/kernel/rcupreempt.c
@@ -57,7 +57,6 @@
struct rcu_data {
raw_spinlock_t lock;
long completed; /* Number of last completed batch. */
- struct tasklet_struct rcu_tasklet;
struct rcu_head *nextlist;
struct rcu_head **nexttail;
struct rcu_head *waitlist;
@@ -255,7 +254,7 @@ void rcu_check_callbacks(int cpu, int us
spin_unlock_irqrestore(&rcu_data.lock, oldirq);
} else {
spin_unlock_irqrestore(&rcu_data.lock, oldirq);
- tasklet_schedule(&rcu_data.rcu_tasklet);
+ raise_softirq(RCU_SOFTIRQ);
}
}
@@ -279,7 +278,7 @@ void rcu_advance_callbacks(int cpu, int
spin_unlock_irqrestore(&rcu_data.lock, oldirq);
}
-void rcu_process_callbacks(unsigned long unused)
+void rcu_process_callbacks(struct softirq_action *unused)
{
unsigned long flags;
struct rcu_head *next, *list;
@@ -367,7 +366,7 @@ void __init __rcu_init(void)
rcu_data.waittail = &rcu_data.waitlist;
rcu_data.donelist = NULL;
rcu_data.donetail = &rcu_data.donelist;
- tasklet_init(&rcu_data.rcu_tasklet, rcu_process_callbacks, 0UL);
+ open_softirq(RCU_SOFTIRQ, rcu_process_callbacks, NULL);
}
/*
next parent reply other threads:[~2007-06-07 18:28 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1181180051.18444.31.camel@localhost.localdomain>
[not found] ` <20070607041411.GB1783@linux.vnet.ibm.com>
[not found] ` <1181226138.18444.54.camel@localhost.localdomain>
[not found] ` <20070607161754.GA11941@linux.vnet.ibm.com>
2007-06-07 18:26 ` Steven Rostedt [this message]
2007-06-07 18:51 ` Steven Rostedt
2007-06-07 20:16 ` Steven Rostedt
2007-06-08 4:16 ` Paul E. McKenney
2007-06-08 15:00 ` Paul E. McKenney
2007-06-07 21:02 ` Paul E. McKenney
2007-06-08 15:27 ` Steven Rostedt
2007-06-08 19:36 ` Paul E. McKenney
2007-06-08 19:43 ` Steven Rostedt
2007-06-08 20:00 ` Paul E. McKenney
2007-09-06 17:52 ` Clark Williams
2007-09-06 18:06 ` Paul E. McKenney
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1181240819.10408.14.camel@localhost.localdomain \
--to=rostedt@goodmis.org \
--cc=dipankar@in.ibm.com \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rt-users@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=oleg@tv-sign.ru \
--cc=paulmck@linux.vnet.ibm.com \
--cc=tglx@linutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®