From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Steven Rostedt <rostedt@goodmis.org>
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: Re: [PATCH RT] convert RCU Preempt tasklet into softirq.
Date: Thu, 7 Jun 2007 14:02:47 -0700 [thread overview]
Message-ID: <20070607210247.GA9390@linux.vnet.ibm.com> (raw)
In-Reply-To: <1181240819.10408.14.camel@localhost.localdomain>
On Thu, Jun 07, 2007 at 02:26:59PM -0400, Steven Rostedt wrote:
> 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.
I should be able to run rcutorture on it.
> Paul, I'm disappointed, this was so trivial I didn't get a chance to
> learn anything ;-)
;-)
Some nits below.
Thanx, Paul
> 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);
I don't understand why the above is needed -- interrupt.h is included,
and the use of rcu_process_callbacks() follows the definition.
> #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);
> }
>
> /*
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2007-06-07 21:02 UTC|newest]
Thread overview: 13+ 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 ` [PATCH RT] convert RCU Preempt tasklet into softirq Steven Rostedt
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 [this message]
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
2007-09-07 12:30 ` BUG: unable to handle kernel paging joel silvestre
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=20070607210247.GA9390@linux.vnet.ibm.com \
--to=paulmck@linux.vnet.ibm.com \
--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=rostedt@goodmis.org \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.