* [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 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 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 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
* 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
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