* [PATCH RT] convert RCU Preempt tasklet into softirq. [not found] ` <20070607161754.GA11941@linux.vnet.ibm.com> @ 2007-06-07 18:26 ` Steven Rostedt 2007-06-07 18:51 ` Steven Rostedt 2007-06-07 21:02 ` Paul E. McKenney 0 siblings, 2 replies; 13+ messages in thread From: Steven Rostedt @ 2007-06-07 18:26 UTC (permalink / raw) To: paulmck Cc: john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT 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); } /* ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH RT] convert RCU Preempt tasklet into softirq. 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-07 21:02 ` Paul E. McKenney 1 sibling, 1 reply; 13+ messages in thread From: Steven Rostedt @ 2007-06-07 18:51 UTC (permalink / raw) To: paulmck Cc: john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT On Thu, 2007-06-07 at 14:26 -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. There might still be an issue here. With the patch I'm getting a really slow response time on networking. But that be because of other patches I have applied. I'll remove those other patches and see if this is still an issue. /me booting with noapic to avoid the IO APIC issues. -- Steve ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH RT] convert RCU Preempt tasklet into softirq. 2007-06-07 18:51 ` Steven Rostedt @ 2007-06-07 20:16 ` Steven Rostedt 2007-06-08 4:16 ` Paul E. McKenney 0 siblings, 1 reply; 13+ messages in thread From: Steven Rostedt @ 2007-06-07 20:16 UTC (permalink / raw) To: paulmck Cc: john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT On Thu, 2007-06-07 at 14:51 -0400, Steven Rostedt wrote: > There might still be an issue here. With the patch I'm getting a really > slow response time on networking. But that be because of other patches I > have applied. I removed this patch and I can still get the network slowdown/hang. So this patch is unrelated to this issue. RCU on the otherhand has not been cleared of suspicion. -- Steve ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH RT] convert RCU Preempt tasklet into softirq. 2007-06-07 20:16 ` Steven Rostedt @ 2007-06-08 4:16 ` Paul E. McKenney 2007-06-08 15:00 ` Paul E. McKenney 0 siblings, 1 reply; 13+ messages in thread From: Paul E. McKenney @ 2007-06-08 4:16 UTC (permalink / raw) To: Steven Rostedt Cc: john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT On Thu, Jun 07, 2007 at 04:16:09PM -0400, Steven Rostedt wrote: > On Thu, 2007-06-07 at 14:51 -0400, Steven Rostedt wrote: > > > There might still be an issue here. With the patch I'm getting a really > > slow response time on networking. But that be because of other patches I > > have applied. > > I removed this patch and I can still get the network slowdown/hang. So > this patch is unrelated to this issue. RCU on the otherhand has not been > cleared of suspicion. Might the slowdown be due to different kernel threads running at different priorities? I could easily believe that changing the priority of the kernel thread processing RCU callbacks could have a noticeable effect on performance in some cases. In other news, passed a set of kernbenches at this end, so starting an rcutorture. Thanx, Paul ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH RT] convert RCU Preempt tasklet into softirq. 2007-06-08 4:16 ` Paul E. McKenney @ 2007-06-08 15:00 ` Paul E. McKenney 0 siblings, 0 replies; 13+ messages in thread From: Paul E. McKenney @ 2007-06-08 15:00 UTC (permalink / raw) To: Steven Rostedt Cc: john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT On Thu, Jun 07, 2007 at 09:16:51PM -0700, Paul E. McKenney wrote: > On Thu, Jun 07, 2007 at 04:16:09PM -0400, Steven Rostedt wrote: > > On Thu, 2007-06-07 at 14:51 -0400, Steven Rostedt wrote: > > > > > There might still be an issue here. With the patch I'm getting a really > > > slow response time on networking. But that be because of other patches I > > > have applied. > > > > I removed this patch and I can still get the network slowdown/hang. So > > this patch is unrelated to this issue. RCU on the otherhand has not been > > cleared of suspicion. > > Might the slowdown be due to different kernel threads running at different > priorities? I could easily believe that changing the priority of the > kernel thread processing RCU callbacks could have a noticeable effect > on performance in some cases. > > In other news, passed a set of kernbenches at this end, so starting > an rcutorture. And rcutorture passed 8 hours on a 4-CPU Opteron box. Thanx, Paul ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH RT] convert RCU Preempt tasklet into softirq. 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 21:02 ` Paul E. McKenney 2007-06-08 15:27 ` Steven Rostedt 1 sibling, 1 reply; 13+ messages in thread From: Paul E. McKenney @ 2007-06-07 21:02 UTC (permalink / raw) To: Steven Rostedt Cc: john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT 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 ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH RT] convert RCU Preempt tasklet into softirq. 2007-06-07 21:02 ` Paul E. McKenney @ 2007-06-08 15:27 ` Steven Rostedt 2007-06-08 19:36 ` Paul E. McKenney 0 siblings, 1 reply; 13+ messages in thread From: Steven Rostedt @ 2007-06-08 15:27 UTC (permalink / raw) To: paulmck Cc: john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT On Thu, 2007-06-07 at 14:02 -0700, Paul E. McKenney wrote: > 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 */ The first time I compiled it, I forgot the ';' and got a warning there. But the warning also included "declaring structure softirq_action in prototype", so I fixed both the ';' and added the struct. I can try compile without it. But I also know that adding #include <interrupt.h> in rcupreempt.h caused issues too. -- Steve ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH RT] convert RCU Preempt tasklet into softirq. 2007-06-08 15:27 ` Steven Rostedt @ 2007-06-08 19:36 ` Paul E. McKenney 2007-06-08 19:43 ` Steven Rostedt 0 siblings, 1 reply; 13+ messages in thread From: Paul E. McKenney @ 2007-06-08 19:36 UTC (permalink / raw) To: Steven Rostedt Cc: john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT On Fri, Jun 08, 2007 at 11:27:08AM -0400, Steven Rostedt wrote: > On Thu, 2007-06-07 at 14:02 -0700, Paul E. McKenney wrote: > > > 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 */ > > The first time I compiled it, I forgot the ';' and got a warning there. > But the warning also included "declaring structure softirq_action in > prototype", so I fixed both the ';' and added the struct. I can try > compile without it. But I also know that adding #include <interrupt.h> > in rcupreempt.h caused issues too. If I leave out both the "struct softirq_action" and the rcu_process_callbacks() declaration,, it compiles for me. So I guess the rcu_process_callbacks() should be declared static... Thanx, Paul ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH RT] convert RCU Preempt tasklet into softirq. 2007-06-08 19:36 ` Paul E. McKenney @ 2007-06-08 19:43 ` Steven Rostedt 2007-06-08 20:00 ` Paul E. McKenney 0 siblings, 1 reply; 13+ messages in thread From: Steven Rostedt @ 2007-06-08 19:43 UTC (permalink / raw) To: paulmck Cc: john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT On Fri, 2007-06-08 at 12:36 -0700, Paul E. McKenney wrote: > On Fri, Jun 08, 2007 at 11:27:08AM -0400, Steven Rostedt wrote: > > The first time I compiled it, I forgot the ';' and got a warning there. > > But the warning also included "declaring structure softirq_action in > > prototype", so I fixed both the ';' and added the struct. I can try > > compile without it. But I also know that adding #include <interrupt.h> > > in rcupreempt.h caused issues too. > > If I leave out both the "struct softirq_action" and the > rcu_process_callbacks() declaration,, it compiles for me. > > So I guess the rcu_process_callbacks() should be declared static... OK, I can update the patch to reflect that. Remember, I didn't learn anything from doing this patch, so I have no idea why rcu_procell_callbacks was global. I was just keeping to the norm. :-) Actually, I'll make a separate patch for this change. This is a different issue. -- Steve ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH RT] convert RCU Preempt tasklet into softirq. 2007-06-08 19:43 ` Steven Rostedt @ 2007-06-08 20:00 ` Paul E. McKenney 2007-09-06 17:52 ` Clark Williams 0 siblings, 1 reply; 13+ messages in thread From: Paul E. McKenney @ 2007-06-08 20:00 UTC (permalink / raw) To: Steven Rostedt Cc: john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT On Fri, Jun 08, 2007 at 03:43:48PM -0400, Steven Rostedt wrote: > On Fri, 2007-06-08 at 12:36 -0700, Paul E. McKenney wrote: > > On Fri, Jun 08, 2007 at 11:27:08AM -0400, Steven Rostedt wrote: > > > > The first time I compiled it, I forgot the ';' and got a warning there. > > > But the warning also included "declaring structure softirq_action in > > > prototype", so I fixed both the ';' and added the struct. I can try > > > compile without it. But I also know that adding #include <interrupt.h> > > > in rcupreempt.h caused issues too. > > > > If I leave out both the "struct softirq_action" and the > > rcu_process_callbacks() declaration,, it compiles for me. > > > > So I guess the rcu_process_callbacks() should be declared static... > > OK, I can update the patch to reflect that. Remember, I didn't learn > anything from doing this patch, so I have no idea why > rcu_procell_callbacks was global. I was just keeping to the norm. :-) Hey, -I- learned something from your doing the patch -- namely that rcu_process_callbacks() was needlessly non-static. ;-) > Actually, I'll make a separate patch for this change. This is a > different issue. Sounds good! Thanx, Paul ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH RT] convert RCU Preempt tasklet into softirq. 2007-06-08 20:00 ` Paul E. McKenney @ 2007-09-06 17:52 ` Clark Williams 2007-09-06 18:06 ` Paul E. McKenney 0 siblings, 1 reply; 13+ messages in thread From: Clark Williams @ 2007-09-06 17:52 UTC (permalink / raw) To: paulmck Cc: Steven Rostedt, john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Paul E. McKenney wrote: > On Fri, Jun 08, 2007 at 03:43:48PM -0400, Steven Rostedt wrote: >> On Fri, 2007-06-08 at 12:36 -0700, Paul E. McKenney wrote: >>> On Fri, Jun 08, 2007 at 11:27:08AM -0400, Steven Rostedt wrote: >>>> The first time I compiled it, I forgot the ';' and got a warning there. >>>> But the warning also included "declaring structure softirq_action in >>>> prototype", so I fixed both the ';' and added the struct. I can try >>>> compile without it. But I also know that adding #include <interrupt.h> >>>> in rcupreempt.h caused issues too. >>> If I leave out both the "struct softirq_action" and the >>> rcu_process_callbacks() declaration,, it compiles for me. >>> >>> So I guess the rcu_process_callbacks() should be declared static... >> OK, I can update the patch to reflect that. Remember, I didn't learn >> anything from doing this patch, so I have no idea why >> rcu_procell_callbacks was global. I was just keeping to the norm. :-) > > Hey, -I- learned something from your doing the patch -- namely that > rcu_process_callbacks() was needlessly non-static. ;-) > >> Actually, I'll make a separate patch for this change. This is a >> different issue. > > Sounds good! > Paul, I had a test run of a kernel using Steven's patch (RCU using tasklets) going over the weekend. It looks like it made it through running racer for 24hrs without a panic, but I'm not entirely convinced (since my reservation of the test system expired on Saturday and I didn't look at it until Wednesday; bad Clark, no doughnut). I've got another test running now and I'll be able to poke around on the system tomorrow morning to see if in fact there were no RCU related Oops'en. I'll let you know what we find. Clark -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org iD8DBQFG4D5AHyuj/+TTEp0RAkfxAKDmGHLgTEaVrclCPQfytJZbF9hf3QCfZdct Hjr1PgUP6U8X4dLAdd3vXQk= =T7lw -----END PGP SIGNATURE----- ^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: [PATCH RT] convert RCU Preempt tasklet into softirq. 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 0 siblings, 1 reply; 13+ messages in thread From: Paul E. McKenney @ 2007-09-06 18:06 UTC (permalink / raw) To: Clark Williams Cc: Steven Rostedt, john stultz, Ingo Molnar, Thomas Gleixner, Oleg Nesterov, LKML, Dipankar Sarma, RT On Thu, Sep 06, 2007 at 12:52:00PM -0500, Clark Williams wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Paul E. McKenney wrote: > > On Fri, Jun 08, 2007 at 03:43:48PM -0400, Steven Rostedt wrote: > >> On Fri, 2007-06-08 at 12:36 -0700, Paul E. McKenney wrote: > >>> On Fri, Jun 08, 2007 at 11:27:08AM -0400, Steven Rostedt wrote: > >>>> The first time I compiled it, I forgot the ';' and got a warning there. > >>>> But the warning also included "declaring structure softirq_action in > >>>> prototype", so I fixed both the ';' and added the struct. I can try > >>>> compile without it. But I also know that adding #include <interrupt.h> > >>>> in rcupreempt.h caused issues too. > >>> If I leave out both the "struct softirq_action" and the > >>> rcu_process_callbacks() declaration,, it compiles for me. > >>> > >>> So I guess the rcu_process_callbacks() should be declared static... > >> OK, I can update the patch to reflect that. Remember, I didn't learn > >> anything from doing this patch, so I have no idea why > >> rcu_procell_callbacks was global. I was just keeping to the norm. :-) > > > > Hey, -I- learned something from your doing the patch -- namely that > > rcu_process_callbacks() was needlessly non-static. ;-) > > > >> Actually, I'll make a separate patch for this change. This is a > >> different issue. > > > > Sounds good! > > > > Paul, > > I had a test run of a kernel using Steven's patch (RCU using tasklets) going over the > weekend. It looks like it made it through running racer for 24hrs without a panic, > but I'm not entirely convinced (since my reservation of the test system expired on > Saturday and I didn't look at it until Wednesday; bad Clark, no doughnut). > > I've got another test running now and I'll be able to poke around on the system > tomorrow morning to see if in fact there were no RCU related Oops'en. I'll let you > know what we find. Thank you for the info, Clark! Of course, this all begs the question of why the heck switching from tasklets to softirqs should make any difference at all... Thanx, Paul ^ permalink raw reply [flat|nested] 13+ messages in thread
* BUG: unable to handle kernel paging... 2007-09-06 18:06 ` Paul E. McKenney @ 2007-09-07 12:30 ` joel silvestre 0 siblings, 0 replies; 13+ messages in thread From: joel silvestre @ 2007-09-07 12:30 UTC (permalink / raw) To: linux-rt-users Hi , is this of any use for you? kernel is 2.6.22.1-rt9 Sep 6 07:35:11 pcazick kernel: BUG: unable to handle kernel paging request at virtual address 28000000 Sep 6 07:35:11 pcazick kernel: printing eip: Sep 6 07:35:11 pcazick kernel: c017a26a Sep 6 07:35:11 pcazick kernel: *pde = 00000000 Sep 6 07:35:11 pcazick kernel: stopped custom tracer. Sep 6 07:35:11 pcazick kernel: Oops: 0000 [#1] Sep 6 07:35:11 pcazick kernel: PREEMPT SMP Sep 6 07:35:12 pcazick kernel: Modules linked in: fuse snd_seq_midi snd_seq_midi_event snd_seq_dummy nfs lockd nfs_acl sunrpc capability commoncap evdev button ac battery ipv6 dm_snapshot dm_mirror dm_mod snd_seq i2c_savage4 savagefb fb_ddc i2c_algo_bit snd_ice1724 snd_ice17xx_ak4xxx snd_ac97_codec ac97_bus snd_ak4114 snd_pcm snd_timer snd_page_alloc i2c_viapro snd_pt2258 snd_i2c snd_ak4xxx_adda snd_mpu401_uart snd_rawmidi via686a snd_seq_device i2c_isa snd shpchp parport_pc via_agp soundcore i2c_core rt2500 parport pci_hotplug agpgart ext3 jbd mbcache raid10 raid456 xor raid1 raid0 multipath linear md_mod ide_disk ata_generic libata scsi_mod via82cxxx generic ide_core thermal processor fan vga16fb vgastate Sep 6 07:35:12 pcazick kernel: CPU: 0 Sep 6 07:35:12 pcazick kernel: EIP: 0060:[<c017a26a>] Not tainted VLI Sep 6 07:35:12 pcazick kernel: EFLAGS: 00010206 (2.6.22.1-rt9 #1) Sep 6 07:35:12 pcazick kernel: EIP is at __d_lookup+0xd2/0xfa Sep 6 07:35:12 pcazick kernel: eax: 28000000 ebx: c1720a75 ecx: e4251084 edx: d8874c10 Sep 6 07:35:12 pcazick kernel: esi: d2e510e8 edi: 28000000 ebp: ce5e3f04 esp: ce5e3dc4 Sep 6 07:35:12 pcazick kernel: ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068 preempt:00000001 Sep 6 07:35:12 pcazick kernel: Process find (pid: 3451, ti=ce5e2000 task=d8874c10 task.ti=ce5e2000) Sep 6 07:35:12 pcazick kernel: Stack: ce5e3e3c c3e5e9dc 00000009 e4251084 c97d8000 e4251084 d2e510e8 c97d8000 Sep 6 07:35:12 pcazick kernel: ce5e3f04 c01714b8 ce5e3e48 ce5e3e3c ce5e3f04 dfadbf20 e4251084 d2e510e8 Sep 6 07:35:12 pcazick kernel: c97d8000 ce5e3f04 c01731c1 c97d8009 00000000 00000000 dfadbf20 c017dba5 Sep 6 07:35:12 pcazick kernel: Call Trace: Sep 6 07:35:12 pcazick kernel: [<c01714b8>] do_lookup+0x24/0x143 Sep 6 07:35:12 pcazick kernel: [<c01731c1>] __link_path_walk +0x7d4/0xc12 Sep 6 07:35:12 pcazick kernel: [<c017dba5>] mntput_no_expire+0x11/0x6e Sep 6 07:35:12 pcazick kernel: [<c01736a8>] link_path_walk+0xa9/0xb3 Sep 6 07:35:12 pcazick kernel: [<c0173643>] link_path_walk+0x44/0xb3 Sep 6 07:35:12 pcazick kernel: [<c017393a>] do_path_lookup+0x162/0x17d Sep 6 07:35:12 pcazick kernel: [<c017275e>] getname+0x59/0x8f Sep 6 07:35:12 pcazick kernel: [<c0174106>] __user_walk_fd+0x2f/0x45 Sep 6 07:35:12 pcazick kernel: [<c016df47>] vfs_lstat_fd+0x16/0x3d Sep 6 07:35:12 pcazick kernel: [<c016dfb3>] sys_lstat64+0xf/0x23 Sep 6 07:35:12 pcazick kernel: [<c0103e1a>] syscall_call+0x7/0xb Sep 6 07:35:12 pcazick kernel: ======================= Sep 6 07:35:12 pcazick kernel: Code: 6f 77 05 00 85 c0 75 16 31 f6 f6 43 04 10 75 05 90 ff 03 89 de 89 e8 e8 4d 11 13 00 eb 26 89 e8 e8 44 11 13 00 8b 3f 85 ff 74 17 <8b> 07 0f 18 00 90 8d 5f d4 8b 4c 24 0c 39 4b 38 75 e8 e9 71 ff Sep 6 07:35:12 pcazick kernel: EIP: [<c017a26a>] __d_lookup+0xd2/0xfa SS:ESP 0068:ce5e3dc4 Sep 7 14:15:35 pcazick kernel: BUG: unable to handle kernel paging request at virtual address ff7eff00 Sep 7 14:15:35 pcazick kernel: printing eip: Sep 7 14:15:35 pcazick kernel: c017a26a Sep 7 14:15:35 pcazick kernel: *pde = 00000000 Sep 7 14:15:35 pcazick kernel: Oops: 0000 [#2] Sep 7 14:15:35 pcazick kernel: PREEMPT SMP Sep 7 14:15:35 pcazick kernel: Modules linked in: fuse snd_seq_midi snd_seq_midi_event snd_seq_dummy nfs lockd nfs_acl sunrpc capability commoncap evdev button ac battery ipv6 dm_snapshot dm_mirror dm_mod snd_seq i2c_savage4 savagefb fb_ddc i2c_algo_bit snd_ice1724 snd_ice17xx_ak4xxx snd_ac97_codec ac97_bus snd_ak4114 snd_pcm snd_timer snd_page_alloc i2c_viapro snd_pt2258 snd_i2c snd_ak4xxx_adda snd_mpu401_uart snd_rawmidi via686a snd_seq_device i2c_isa snd shpchp parport_pc via_agp soundcore i2c_core rt2500 parport pci_hotplug agpgart ext3 jbd mbcache raid10 raid456 xor raid1 raid0 multipath linear md_mod ide_disk ata_generic libata scsi_mod via82cxxx generic ide_core thermal processor fan vga16fb vgastate Sep 7 14:15:35 pcazick kernel: CPU: 0 Sep 7 14:15:35 pcazick kernel: EIP: 0060:[<c017a26a>] Not tainted VLI Sep 7 14:15:35 pcazick kernel: EFLAGS: 00010286 (2.6.22.1-rt9 #1) Sep 7 14:15:35 pcazick kernel: EIP is at __d_lookup+0xd2/0xfa Sep 7 14:15:35 pcazick kernel: eax: ff7eff00 ebx: c3700e5c ecx: b8a04b79 edx: d1b3e740 Sep 7 14:15:35 pcazick kernel: esi: df48a388 edi: ff7eff00 ebp: d4ddbf04 esp: d4ddbdc4 Sep 7 14:15:35 pcazick kernel: ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068 preempt:00000001 Sep 7 14:15:35 pcazick kernel: Process find (pid: 4155, ti=d4dda000 task=d1b3e740 task.ti=d4dda000) Sep 7 14:15:35 pcazick kernel: Stack: d4ddbe3c dee70edc 00000006 b8a04b79 d4d21000 b8a04b79 df48a388 d4d21000 Sep 7 14:15:35 pcazick kernel: d4ddbf04 c01714b8 d4ddbe48 d4ddbe3c d4ddbf04 dfadbf20 b8a04b79 df48a388 Sep 7 14:15:35 pcazick kernel: d4d21000 d4ddbf04 c01731c1 d4d21006 00000000 d4ddbe94 c032c960 00010000 Sep 7 14:15:35 pcazick kernel: Call Trace: Sep 7 14:15:35 pcazick kernel: [<c01714b8>] do_lookup+0x24/0x143 Sep 7 14:15:35 pcazick kernel: [<c01731c1>] __link_path_walk +0x7d4/0xc12 Sep 7 14:15:35 pcazick kernel: [<c01070f3>] timer_interrupt+0x2e/0x34 Sep 7 14:15:35 pcazick kernel: [<c0173643>] link_path_walk+0x44/0xb3 Sep 7 14:15:35 pcazick kernel: [<c017393a>] do_path_lookup+0x162/0x17d Sep 7 14:15:35 pcazick kernel: [<c017275e>] getname+0x59/0x8f Sep 7 14:15:35 pcazick kernel: [<c0174106>] __user_walk_fd+0x2f/0x45 Sep 7 14:15:35 pcazick kernel: [<c016df47>] vfs_lstat_fd+0x16/0x3d Sep 7 14:15:35 pcazick kernel: [<c016dfb3>] sys_lstat64+0xf/0x23 Sep 7 14:15:35 pcazick kernel: [<c0103e1a>] syscall_call+0x7/0xb Sep 7 14:15:35 pcazick kernel: [<c02a0000>] __ipv6_addr_type+0xc/0xb8 Sep 7 14:15:35 pcazick kernel: ======================= Sep 7 14:15:35 pcazick kernel: Code: 6f 77 05 00 85 c0 75 16 31 f6 f6 43 04 10 75 05 90 ff 03 89 de 89 e8 e8 4d 11 13 00 eb 26 89 e8 e8 44 11 13 00 8b 3f 85 ff 74 17 <8b> 07 0f 18 00 90 8d 5f d4 8b 4c 24 0c 39 4b 38 75 e8 e9 71 ff Sep 7 14:15:35 pcazick kernel: EIP: [<c017a26a>] __d_lookup+0xd2/0xfa SS:ESP 0068:d4ddbdc4 Le jeudi 06 septembre 2007 à 11:06 -0700, Paul E. McKenney a écrit : > On Thu, Sep 06, 2007 at 12:52:00PM -0500, Clark Williams wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > > > > Paul E. McKenney wrote: > > > On Fri, Jun 08, 2007 at 03:43:48PM -0400, Steven Rostedt wrote: > > >> On Fri, 2007-06-08 at 12:36 -0700, Paul E. McKenney wrote: > > >>> On Fri, Jun 08, 2007 at 11:27:08AM -0400, Steven Rostedt wrote: > > >>>> The first time I compiled it, I forgot the ';' and got a warning there. > > >>>> But the warning also included "declaring structure softirq_action in > > >>>> prototype", so I fixed both the ';' and added the struct. I can try > > >>>> compile without it. But I also know that adding #include <interrupt.h> > > >>>> in rcupreempt.h caused issues too. > > >>> If I leave out both the "struct softirq_action" and the > > >>> rcu_process_callbacks() declaration,, it compiles for me. > > >>> > > >>> So I guess the rcu_process_callbacks() should be declared static... > > >> OK, I can update the patch to reflect that. Remember, I didn't learn > > >> anything from doing this patch, so I have no idea why > > >> rcu_procell_callbacks was global. I was just keeping to the norm. :-) > > > > > > Hey, -I- learned something from your doing the patch -- namely that > > > rcu_process_callbacks() was needlessly non-static. ;-) > > > > > >> Actually, I'll make a separate patch for this change. This is a > > >> different issue. > > > > > > Sounds good! > > > > > > > Paul, > > > > I had a test run of a kernel using Steven's patch (RCU using tasklets) going over the > > weekend. It looks like it made it through running racer for 24hrs without a panic, > > but I'm not entirely convinced (since my reservation of the test system expired on > > Saturday and I didn't look at it until Wednesday; bad Clark, no doughnut). > > > > I've got another test running now and I'll be able to poke around on the system > > tomorrow morning to see if in fact there were no RCU related Oops'en. I'll let you > > know what we find. > > Thank you for the info, Clark! > > Of course, this all begs the question of why the heck switching from > tasklets to softirqs should make any difference at all... > > Thanx, Paul > - > 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 > ^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2007-09-07 12:45 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[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
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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).