* [PATCH 1/2] v3.2-rc1-52e4c2a05-rt1 fix for compile break
@ 2011-11-14 1:44 John Kacur
2011-11-14 1:44 ` [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y John Kacur
` (2 more replies)
0 siblings, 3 replies; 14+ messages in thread
From: John Kacur @ 2011-11-14 1:44 UTC (permalink / raw)
To: Thomas Gleixner, lkml; +Cc: rt-users, Paul McKenney, John Kacur
kernel/rcutorture.c:492: error: ‘synchronize_rcu_bh’ undeclared here (not in a function)
In CONFIG_PREEMPT_RT_FULL
doesn't cover function pointer assignment unless we remove the brackets.
Compile-tested.
Signed-off-by: John Kacur <jkacur@redhat.com>
---
include/linux/rcutree.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h
index 800b840..6e503a3 100644
--- a/include/linux/rcutree.h
+++ b/include/linux/rcutree.h
@@ -60,7 +60,7 @@ static inline void exit_rcu(void)
#ifndef CONFIG_PREEMPT_RT_FULL
extern void synchronize_rcu_bh(void);
#else
-# define synchronize_rcu_bh() synchronize_rcu()
+# define synchronize_rcu_bh synchronize_rcu
#endif
extern void synchronize_sched_expedited(void);
extern void synchronize_rcu_expedited(void);
--
1.7.2.3
^ permalink raw reply related [flat|nested] 14+ messages in thread* [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y 2011-11-14 1:44 [PATCH 1/2] v3.2-rc1-52e4c2a05-rt1 fix for compile break John Kacur @ 2011-11-14 1:44 ` John Kacur 2011-11-14 16:51 ` Paul E. McKenney 2011-11-14 16:50 ` [PATCH 1/2] v3.2-rc1-52e4c2a05-rt1 fix for compile break Paul E. McKenney 2011-11-14 20:57 ` Steven Rostedt 2 siblings, 1 reply; 14+ messages in thread From: John Kacur @ 2011-11-14 1:44 UTC (permalink / raw) To: Thomas Gleixner, lkml; +Cc: rt-users, Paul McKenney, John Kacur ERROR: "in_serving_softirq" [net/sched/cls_cgroup.ko] undefined! The above can be fixed by exporting in_serving_softirq Signed-off-by: John Kacur <jkacur@redhat.com> The above patch was originally for 3.0.9-rt25 But I also needed to cherry-pick it for 3.2-rc1-rt1 --- kernel/softirq.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/kernel/softirq.c b/kernel/softirq.c index 3db1d6f..5452432 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -447,6 +447,7 @@ int in_serving_softirq(void) preempt_enable(); return res; } +EXPORT_SYMBOL(in_serving_softirq); /* * Called with bh and local interrupts disabled. For full RT cpu must -- 1.7.2.3 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y 2011-11-14 1:44 ` [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y John Kacur @ 2011-11-14 16:51 ` Paul E. McKenney 2011-11-14 17:39 ` John Kacur 0 siblings, 1 reply; 14+ messages in thread From: Paul E. McKenney @ 2011-11-14 16:51 UTC (permalink / raw) To: John Kacur; +Cc: Thomas Gleixner, lkml, rt-users On Mon, Nov 14, 2011 at 02:44:43AM +0100, John Kacur wrote: > ERROR: "in_serving_softirq" [net/sched/cls_cgroup.ko] undefined! > > The above can be fixed by exporting in_serving_softirq > > Signed-off-by: John Kacur <jkacur@redhat.com> > > The above patch was originally for 3.0.9-rt25 > But I also needed to cherry-pick it for 3.2-rc1-rt1 > --- > kernel/softirq.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/kernel/softirq.c b/kernel/softirq.c > index 3db1d6f..5452432 100644 > --- a/kernel/softirq.c > +++ b/kernel/softirq.c > @@ -447,6 +447,7 @@ int in_serving_softirq(void) > preempt_enable(); > return res; > } > +EXPORT_SYMBOL(in_serving_softirq); Why not EXPORT_SYMBOL_GPL? With that change, Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Not yet ready for mainline, because mainline does not yet have in_serving_softirq(). Therefore not queued for -rcu. Thanx, Paul > /* > * Called with bh and local interrupts disabled. For full RT cpu must > -- > 1.7.2.3 > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y 2011-11-14 16:51 ` Paul E. McKenney @ 2011-11-14 17:39 ` John Kacur 2011-11-14 17:57 ` Paul E. McKenney 2011-11-14 20:51 ` Steven Rostedt 0 siblings, 2 replies; 14+ messages in thread From: John Kacur @ 2011-11-14 17:39 UTC (permalink / raw) To: Paul E. McKenney; +Cc: Thomas Gleixner, lkml, rt-users On Mon, 14 Nov 2011, Paul E. McKenney wrote: > On Mon, Nov 14, 2011 at 02:44:43AM +0100, John Kacur wrote: > > ERROR: "in_serving_softirq" [net/sched/cls_cgroup.ko] undefined! > > > > The above can be fixed by exporting in_serving_softirq > > > > Signed-off-by: John Kacur <jkacur@redhat.com> > > > > The above patch was originally for 3.0.9-rt25 > > But I also needed to cherry-pick it for 3.2-rc1-rt1 > > --- > > kernel/softirq.c | 1 + > > 1 files changed, 1 insertions(+), 0 deletions(-) > > > > diff --git a/kernel/softirq.c b/kernel/softirq.c > > index 3db1d6f..5452432 100644 > > --- a/kernel/softirq.c > > +++ b/kernel/softirq.c > > @@ -447,6 +447,7 @@ int in_serving_softirq(void) > > preempt_enable(); > > return res; > > } > > +EXPORT_SYMBOL(in_serving_softirq); > > Why not EXPORT_SYMBOL_GPL? I have no problem with that, note however that the upstream file has EXPORT_SYMBOL(irq_stat); EXPORT_SYMBOL(local_bh_disable); EXPORT_SYMBOL(_local_bh_enable); EXPORT_SYMBOL(local_bh_enable); EXPORT_SYMBOL(local_bh_enable_ip); EXPORT_SYMBOL(__tasklet_schedule); EXPORT_SYMBOL(__tasklet_hi_schedule); EXPORT_SYMBOL(__tasklet_hi_schedule_first); EXPORT_SYMBOL(tasklet_init); EXPORT_SYMBOL(tasklet_kill); EXPORT_SYMBOL(__send_remote_softirq); EXPORT_SYMBOL(send_remote_softirq); Any reason we can't change all of those to EXPORT_SYMBOL_GPL? > > With that change, > > Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > Not yet ready for mainline, because mainline does not yet have > in_serving_softirq(). Therefore not queued for -rcu. > > Thanx, Paul > > > /* > > * Called with bh and local interrupts disabled. For full RT cpu must ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y 2011-11-14 17:39 ` John Kacur @ 2011-11-14 17:57 ` Paul E. McKenney 2011-11-14 20:51 ` Steven Rostedt 1 sibling, 0 replies; 14+ messages in thread From: Paul E. McKenney @ 2011-11-14 17:57 UTC (permalink / raw) To: John Kacur; +Cc: Thomas Gleixner, lkml, rt-users On Mon, Nov 14, 2011 at 06:39:47PM +0100, John Kacur wrote: > > > On Mon, 14 Nov 2011, Paul E. McKenney wrote: > > > On Mon, Nov 14, 2011 at 02:44:43AM +0100, John Kacur wrote: > > > ERROR: "in_serving_softirq" [net/sched/cls_cgroup.ko] undefined! > > > > > > The above can be fixed by exporting in_serving_softirq > > > > > > Signed-off-by: John Kacur <jkacur@redhat.com> > > > > > > The above patch was originally for 3.0.9-rt25 > > > But I also needed to cherry-pick it for 3.2-rc1-rt1 > > > --- > > > kernel/softirq.c | 1 + > > > 1 files changed, 1 insertions(+), 0 deletions(-) > > > > > > diff --git a/kernel/softirq.c b/kernel/softirq.c > > > index 3db1d6f..5452432 100644 > > > --- a/kernel/softirq.c > > > +++ b/kernel/softirq.c > > > @@ -447,6 +447,7 @@ int in_serving_softirq(void) > > > preempt_enable(); > > > return res; > > > } > > > +EXPORT_SYMBOL(in_serving_softirq); > > > > Why not EXPORT_SYMBOL_GPL? > > I have no problem with that, note however that the upstream file has > > EXPORT_SYMBOL(irq_stat); > EXPORT_SYMBOL(local_bh_disable); > EXPORT_SYMBOL(_local_bh_enable); > EXPORT_SYMBOL(local_bh_enable); > EXPORT_SYMBOL(local_bh_enable_ip); > EXPORT_SYMBOL(__tasklet_schedule); > EXPORT_SYMBOL(__tasklet_hi_schedule); > EXPORT_SYMBOL(__tasklet_hi_schedule_first); > EXPORT_SYMBOL(tasklet_init); > EXPORT_SYMBOL(tasklet_kill); > EXPORT_SYMBOL(__send_remote_softirq); > EXPORT_SYMBOL(send_remote_softirq); > > Any reason we can't change all of those to EXPORT_SYMBOL_GPL? No idea. But I do suggest making new ones EXPORT_SYMBOL_GPL. Thanx, Paul > > With that change, > > > > Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > > > > Not yet ready for mainline, because mainline does not yet have > > in_serving_softirq(). Therefore not queued for -rcu. > > > > Thanx, Paul > > > > > /* > > > * Called with bh and local interrupts disabled. For full RT cpu must > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y 2011-11-14 17:39 ` John Kacur 2011-11-14 17:57 ` Paul E. McKenney @ 2011-11-14 20:51 ` Steven Rostedt 2011-11-14 21:07 ` John Kacur 2011-11-15 5:22 ` Mike Galbraith 1 sibling, 2 replies; 14+ messages in thread From: Steven Rostedt @ 2011-11-14 20:51 UTC (permalink / raw) To: John Kacur; +Cc: Paul E. McKenney, Thomas Gleixner, lkml, rt-users On Mon, 2011-11-14 at 18:39 +0100, John Kacur wrote: > > On Mon, 14 Nov 2011, Paul E. McKenney wrote: > > > On Mon, Nov 14, 2011 at 02:44:43AM +0100, John Kacur wrote: > > > ERROR: "in_serving_softirq" [net/sched/cls_cgroup.ko] undefined! > > > > > > The above can be fixed by exporting in_serving_softirq > > > > > > Signed-off-by: John Kacur <jkacur@redhat.com> > > > > > > The above patch was originally for 3.0.9-rt25 > > > But I also needed to cherry-pick it for 3.2-rc1-rt1 > > > --- > > > kernel/softirq.c | 1 + > > > 1 files changed, 1 insertions(+), 0 deletions(-) > > > > > > diff --git a/kernel/softirq.c b/kernel/softirq.c > > > index 3db1d6f..5452432 100644 > > > --- a/kernel/softirq.c > > > +++ b/kernel/softirq.c > > > @@ -447,6 +447,7 @@ int in_serving_softirq(void) > > > preempt_enable(); > > > return res; > > > } > > > +EXPORT_SYMBOL(in_serving_softirq); > > > > Why not EXPORT_SYMBOL_GPL? > > I have no problem with that, note however that the upstream file has > > EXPORT_SYMBOL(irq_stat); > EXPORT_SYMBOL(local_bh_disable); > EXPORT_SYMBOL(_local_bh_enable); > EXPORT_SYMBOL(local_bh_enable); > EXPORT_SYMBOL(local_bh_enable_ip); > EXPORT_SYMBOL(__tasklet_schedule); > EXPORT_SYMBOL(__tasklet_hi_schedule); > EXPORT_SYMBOL(__tasklet_hi_schedule_first); > EXPORT_SYMBOL(tasklet_init); > EXPORT_SYMBOL(tasklet_kill); > EXPORT_SYMBOL(__send_remote_softirq); > EXPORT_SYMBOL(send_remote_softirq); > > Any reason we can't change all of those to EXPORT_SYMBOL_GPL?\\ IIRC, the point behind EXPORT_SYMBOL_GPL() is that, by using the call you are using something that is a derivative of the code. Basically all new functionality of the kernel is Linux specific and symbols exported should be EXPORT_SYMBOL_GPL(). But, I also recall that we did not want to make things that are normal OS operations under the EXPORT_SYMBOL_GPL(). This would include the local_bh_enable/disable(), or anything that is called by generic operations. For example, spin_lock() is not a GPL symbol, and if we add some new functionality that causes all spin_locks() to call foo_bar(), we must also make sure foo_bar() is also under just EXPORT_SYMBOL(), otherwise, we just forced EXPORT_SYMBOL_GPL() on spin_lock(). Some of the above is probably just simple OS operations or are called by static OS operation functions. If we go that route, we might as well make everything EXPORT_SYMBOL_GPL(), and be damn to those that use nVidia. -- Steve ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y 2011-11-14 20:51 ` Steven Rostedt @ 2011-11-14 21:07 ` John Kacur 2011-11-15 5:22 ` Mike Galbraith 1 sibling, 0 replies; 14+ messages in thread From: John Kacur @ 2011-11-14 21:07 UTC (permalink / raw) To: Steven Rostedt; +Cc: Paul E. McKenney, Thomas Gleixner, lkml, rt-users On Mon, Nov 14, 2011 at 9:51 PM, Steven Rostedt <rostedt@goodmis.org> wrote: > > On Mon, 2011-11-14 at 18:39 +0100, John Kacur wrote: > > > > On Mon, 14 Nov 2011, Paul E. McKenney wrote: > > > > > On Mon, Nov 14, 2011 at 02:44:43AM +0100, John Kacur wrote: > > > > ERROR: "in_serving_softirq" [net/sched/cls_cgroup.ko] undefined! > > > > > > > > The above can be fixed by exporting in_serving_softirq > > > > > > > > Signed-off-by: John Kacur <jkacur@redhat.com> > > > > > > > > The above patch was originally for 3.0.9-rt25 > > > > But I also needed to cherry-pick it for 3.2-rc1-rt1 > > > > --- > > > > kernel/softirq.c | 1 + > > > > 1 files changed, 1 insertions(+), 0 deletions(-) > > > > > > > > diff --git a/kernel/softirq.c b/kernel/softirq.c > > > > index 3db1d6f..5452432 100644 > > > > --- a/kernel/softirq.c > > > > +++ b/kernel/softirq.c > > > > @@ -447,6 +447,7 @@ int in_serving_softirq(void) > > > > preempt_enable(); > > > > return res; > > > > } > > > > +EXPORT_SYMBOL(in_serving_softirq); > > > > > > Why not EXPORT_SYMBOL_GPL? > > > > I have no problem with that, note however that the upstream file has > > > > EXPORT_SYMBOL(irq_stat); > > EXPORT_SYMBOL(local_bh_disable); > > EXPORT_SYMBOL(_local_bh_enable); > > EXPORT_SYMBOL(local_bh_enable); > > EXPORT_SYMBOL(local_bh_enable_ip); > > EXPORT_SYMBOL(__tasklet_schedule); > > EXPORT_SYMBOL(__tasklet_hi_schedule); > > EXPORT_SYMBOL(__tasklet_hi_schedule_first); > > EXPORT_SYMBOL(tasklet_init); > > EXPORT_SYMBOL(tasklet_kill); > > EXPORT_SYMBOL(__send_remote_softirq); > > EXPORT_SYMBOL(send_remote_softirq); > > > > Any reason we can't change all of those to EXPORT_SYMBOL_GPL?\\ > > IIRC, the point behind EXPORT_SYMBOL_GPL() is that, by using the call > you are using something that is a derivative of the code. Basically all > new functionality of the kernel is Linux specific and symbols exported > should be EXPORT_SYMBOL_GPL(). > > But, I also recall that we did not want to make things that are normal > OS operations under the EXPORT_SYMBOL_GPL(). This would include the > local_bh_enable/disable(), or anything that is called by generic > operations. For example, spin_lock() is not a GPL symbol, and if we add > some new functionality that causes all spin_locks() to call foo_bar(), > we must also make sure foo_bar() is also under just EXPORT_SYMBOL(), > otherwise, we just forced EXPORT_SYMBOL_GPL() on spin_lock(). > > Some of the above is probably just simple OS operations or are called by > static OS operation functions. > > If we go that route, we might as well make everything > EXPORT_SYMBOL_GPL(), and be damn to those that use nVidia. > > -- Steve That's a great explanation - thanks John Kacur ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y 2011-11-14 20:51 ` Steven Rostedt 2011-11-14 21:07 ` John Kacur @ 2011-11-15 5:22 ` Mike Galbraith 2011-11-15 12:23 ` Steven Rostedt 1 sibling, 1 reply; 14+ messages in thread From: Mike Galbraith @ 2011-11-15 5:22 UTC (permalink / raw) To: Steven Rostedt Cc: John Kacur, Paul E. McKenney, Thomas Gleixner, lkml, rt-users On Mon, 2011-11-14 at 15:51 -0500, Steven Rostedt wrote: > On Mon, 2011-11-14 at 18:39 +0100, John Kacur wrote: > > > > On Mon, 14 Nov 2011, Paul E. McKenney wrote: > > > > > On Mon, Nov 14, 2011 at 02:44:43AM +0100, John Kacur wrote: > > > > ERROR: "in_serving_softirq" [net/sched/cls_cgroup.ko] undefined! > > > > > > > > The above can be fixed by exporting in_serving_softirq > > > > > > > > Signed-off-by: John Kacur <jkacur@redhat.com> > > > > > > > > The above patch was originally for 3.0.9-rt25 > > > > But I also needed to cherry-pick it for 3.2-rc1-rt1 > > > > --- > > > > kernel/softirq.c | 1 + > > > > 1 files changed, 1 insertions(+), 0 deletions(-) > > > > > > > > diff --git a/kernel/softirq.c b/kernel/softirq.c > > > > index 3db1d6f..5452432 100644 > > > > --- a/kernel/softirq.c > > > > +++ b/kernel/softirq.c > > > > @@ -447,6 +447,7 @@ int in_serving_softirq(void) > > > > preempt_enable(); > > > > return res; > > > > } > > > > +EXPORT_SYMBOL(in_serving_softirq); > > > > > > Why not EXPORT_SYMBOL_GPL? > > > > I have no problem with that, note however that the upstream file has > > > > EXPORT_SYMBOL(irq_stat); > > EXPORT_SYMBOL(local_bh_disable); > > EXPORT_SYMBOL(_local_bh_enable); > > EXPORT_SYMBOL(local_bh_enable); > > EXPORT_SYMBOL(local_bh_enable_ip); > > EXPORT_SYMBOL(__tasklet_schedule); > > EXPORT_SYMBOL(__tasklet_hi_schedule); > > EXPORT_SYMBOL(__tasklet_hi_schedule_first); > > EXPORT_SYMBOL(tasklet_init); > > EXPORT_SYMBOL(tasklet_kill); > > EXPORT_SYMBOL(__send_remote_softirq); > > EXPORT_SYMBOL(send_remote_softirq); > > > > Any reason we can't change all of those to EXPORT_SYMBOL_GPL?\\ > > IIRC, the point behind EXPORT_SYMBOL_GPL() is that, by using the call > you are using something that is a derivative of the code. Basically all > new functionality of the kernel is Linux specific and symbols exported > should be EXPORT_SYMBOL_GPL(). > > But, I also recall that we did not want to make things that are normal > OS operations under the EXPORT_SYMBOL_GPL(). This would include the > local_bh_enable/disable(), or anything that is called by generic > operations. For example, spin_lock() is not a GPL symbol, and if we add > some new functionality that causes all spin_locks() to call foo_bar(), > we must also make sure foo_bar() is also under just EXPORT_SYMBOL(), > otherwise, we just forced EXPORT_SYMBOL_GPL() on spin_lock(). > > Some of the above is probably just simple OS operations or are called by > static OS operation functions. > > If we go that route, we might as well make everything > EXPORT_SYMBOL_GPL(), and be damn to those that use nVidia. EXPORT_SYMBOL_GPL(migrate_disable) alone screws nVidia users, no? I have an RT user who has no other viable choice than nVidia. If the above is true, that user will end up stuck at 2.6.33-rt until we get a driver that actually works... or they deem linux to be a non-solution. -Mike ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y 2011-11-15 5:22 ` Mike Galbraith @ 2011-11-15 12:23 ` Steven Rostedt 2011-11-15 13:27 ` Mike Galbraith 0 siblings, 1 reply; 14+ messages in thread From: Steven Rostedt @ 2011-11-15 12:23 UTC (permalink / raw) To: Mike Galbraith Cc: John Kacur, Paul E. McKenney, Thomas Gleixner, lkml, rt-users On Tue, 2011-11-15 at 06:22 +0100, Mike Galbraith wrote: > > If we go that route, we might as well make everything > > EXPORT_SYMBOL_GPL(), and be damn to those that use nVidia. > > EXPORT_SYMBOL_GPL(migrate_disable) alone screws nVidia users, no? > > I have an RT user who has no other viable choice than nVidia. If the > above is true, that user will end up stuck at 2.6.33-rt until we get a > driver that actually works... or they deem linux to be a non-solution. Right, migrate_disable() should not have been an EXPORT_SYMBOL_GPL(), as it is a helper functions that is also exported as EXPORT_SYMBOL(). It shouldn't be called directly anyway, even by code in the kernel proper. -- Steve ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y 2011-11-15 12:23 ` Steven Rostedt @ 2011-11-15 13:27 ` Mike Galbraith 2011-11-15 13:45 ` Mike Galbraith 2011-11-16 14:21 ` Mike Galbraith 0 siblings, 2 replies; 14+ messages in thread From: Mike Galbraith @ 2011-11-15 13:27 UTC (permalink / raw) To: Steven Rostedt Cc: John Kacur, Paul E. McKenney, Thomas Gleixner, lkml, rt-users On Tue, 2011-11-15 at 07:23 -0500, Steven Rostedt wrote: > Right, migrate_disable() should not have been an EXPORT_SYMBOL_GPL(), as > it is a helper functions that is also exported as EXPORT_SYMBOL(). It > shouldn't be called directly anyway, even by code in the kernel proper. Ah. Doesn't matter though. I downloaded their latest, tried to build it with EXPORT_SYMBOL(migrate_enable/disable) .. FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol '__rt_mutex_init' With that exported, the thing builds and runs, but rt_mutex_foo exports appear to be intentionally GPL only, so it's "go fish" for nVidia. -Mike ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y 2011-11-15 13:27 ` Mike Galbraith @ 2011-11-15 13:45 ` Mike Galbraith 2011-11-16 14:21 ` Mike Galbraith 1 sibling, 0 replies; 14+ messages in thread From: Mike Galbraith @ 2011-11-15 13:45 UTC (permalink / raw) To: Steven Rostedt Cc: John Kacur, Paul E. McKenney, Thomas Gleixner, lkml, rt-users On Tue, 2011-11-15 at 14:27 +0100, Mike Galbraith wrote: > With that exported, the thing builds and runs, but rt_mutex_foo exports > appear to be intentionally GPL only, so it's "go fish" for nVidia. BTW, if you poke that nVidia beast right, it'll keep you locked in kernel IPI-ing every CPU as fast as we can do that for up to a full second :> The only thing I ever found that can match that is ext4. -Mike ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y 2011-11-15 13:27 ` Mike Galbraith 2011-11-15 13:45 ` Mike Galbraith @ 2011-11-16 14:21 ` Mike Galbraith 1 sibling, 0 replies; 14+ messages in thread From: Mike Galbraith @ 2011-11-16 14:21 UTC (permalink / raw) To: Steven Rostedt Cc: John Kacur, Paul E. McKenney, Thomas Gleixner, lkml, rt-users On Tue, 2011-11-15 at 14:27 +0100, Mike Galbraith wrote: > On Tue, 2011-11-15 at 07:23 -0500, Steven Rostedt wrote: > > > Right, migrate_disable() should not have been an EXPORT_SYMBOL_GPL(), as > > it is a helper functions that is also exported as EXPORT_SYMBOL(). It > > shouldn't be called directly anyway, even by code in the kernel proper. > > Ah. Doesn't matter though. I downloaded their latest, tried to build > it with EXPORT_SYMBOL(migrate_enable/disable) .. > > FATAL: modpost: GPL-incompatible module nvidia.ko uses GPL-only symbol '__rt_mutex_init' > > With that exported, the thing builds and runs, but rt_mutex_foo exports > appear to be intentionally GPL only, so it's "go fish" for nVidia. Bah. I checked the crusty old hack for crusty old driver, and it still works just fine with a trivial define. It'd probably work better if it didn't need cheezy raw_* hacks, but then it'd probably work better if it was GPL too ;-) -Mike ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/2] v3.2-rc1-52e4c2a05-rt1 fix for compile break 2011-11-14 1:44 [PATCH 1/2] v3.2-rc1-52e4c2a05-rt1 fix for compile break John Kacur 2011-11-14 1:44 ` [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y John Kacur @ 2011-11-14 16:50 ` Paul E. McKenney 2011-11-14 20:57 ` Steven Rostedt 2 siblings, 0 replies; 14+ messages in thread From: Paul E. McKenney @ 2011-11-14 16:50 UTC (permalink / raw) To: John Kacur; +Cc: Thomas Gleixner, lkml, rt-users On Mon, Nov 14, 2011 at 02:44:42AM +0100, John Kacur wrote: > kernel/rcutorture.c:492: error: ‘synchronize_rcu_bh’ undeclared here (not in a function) > > In CONFIG_PREEMPT_RT_FULL > doesn't cover function pointer assignment unless we remove the brackets. > > Compile-tested. Reviewed-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> I have not yet queued this because mainline does not yet fold RCU and RCU-bh together. Thanx, Paul > Signed-off-by: John Kacur <jkacur@redhat.com> > --- > include/linux/rcutree.h | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h > index 800b840..6e503a3 100644 > --- a/include/linux/rcutree.h > +++ b/include/linux/rcutree.h > @@ -60,7 +60,7 @@ static inline void exit_rcu(void) > #ifndef CONFIG_PREEMPT_RT_FULL > extern void synchronize_rcu_bh(void); > #else > -# define synchronize_rcu_bh() synchronize_rcu() > +# define synchronize_rcu_bh synchronize_rcu > #endif > extern void synchronize_sched_expedited(void); > extern void synchronize_rcu_expedited(void); > -- > 1.7.2.3 > ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/2] v3.2-rc1-52e4c2a05-rt1 fix for compile break 2011-11-14 1:44 [PATCH 1/2] v3.2-rc1-52e4c2a05-rt1 fix for compile break John Kacur 2011-11-14 1:44 ` [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y John Kacur 2011-11-14 16:50 ` [PATCH 1/2] v3.2-rc1-52e4c2a05-rt1 fix for compile break Paul E. McKenney @ 2011-11-14 20:57 ` Steven Rostedt 2 siblings, 0 replies; 14+ messages in thread From: Steven Rostedt @ 2011-11-14 20:57 UTC (permalink / raw) To: John Kacur; +Cc: Thomas Gleixner, lkml, rt-users, Paul McKenney On Mon, 2011-11-14 at 02:44 +0100, John Kacur wrote: > kernel/rcutorture.c:492: error: ‘synchronize_rcu_bh’ undeclared here (not in a function) > > In CONFIG_PREEMPT_RT_FULL > doesn't cover function pointer assignment unless we remove the brackets. John, Please write better change logs. Do not assume that people are looking at the patch while looking at the logs. I mostly read change logs as "git log" which doesn't include the changes, and most other developers do this too. The above sentence does not make any real sense. Something like: synchronize_rcu_bh() is not just called as a normal function, but can also be referenced as a function pointer. When CONFIG_PREEMPT_RT_FULL is enabled, synchronize_rcu_bh() is defined as synchronize_rcu(), but needs to be defined without the parenthesis because the compiler will complain when synchronize_rcu_bh is referenced as a function pointer and not a function. -- Steve > > Compile-tested. > > Signed-off-by: John Kacur <jkacur@redhat.com> > --- > include/linux/rcutree.h | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h > index 800b840..6e503a3 100644 > --- a/include/linux/rcutree.h > +++ b/include/linux/rcutree.h > @@ -60,7 +60,7 @@ static inline void exit_rcu(void) > #ifndef CONFIG_PREEMPT_RT_FULL > extern void synchronize_rcu_bh(void); > #else > -# define synchronize_rcu_bh() synchronize_rcu() > +# define synchronize_rcu_bh synchronize_rcu > #endif > extern void synchronize_sched_expedited(void); > extern void synchronize_rcu_expedited(void); ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2011-11-16 14:21 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-11-14 1:44 [PATCH 1/2] v3.2-rc1-52e4c2a05-rt1 fix for compile break John Kacur 2011-11-14 1:44 ` [PATCH 2/2] Compile error with allmodconfig and CONFIG_PREEMPT_RT_FULL=y John Kacur 2011-11-14 16:51 ` Paul E. McKenney 2011-11-14 17:39 ` John Kacur 2011-11-14 17:57 ` Paul E. McKenney 2011-11-14 20:51 ` Steven Rostedt 2011-11-14 21:07 ` John Kacur 2011-11-15 5:22 ` Mike Galbraith 2011-11-15 12:23 ` Steven Rostedt 2011-11-15 13:27 ` Mike Galbraith 2011-11-15 13:45 ` Mike Galbraith 2011-11-16 14:21 ` Mike Galbraith 2011-11-14 16:50 ` [PATCH 1/2] v3.2-rc1-52e4c2a05-rt1 fix for compile break Paul E. McKenney 2011-11-14 20:57 ` Steven Rostedt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox