[PATCH] sched: Fix tracepoint called from set_tsk_need_resched() more

Phil Auld posted 1 patch 1 week, 1 day ago
kernel/sched/core.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
[PATCH] sched: Fix tracepoint called from set_tsk_need_resched() more
Posted by Phil Auld 1 week, 1 day ago
This raw tracepoint is added to set_tsk_need_resched() which introduces
two symbols which were then exported GPL-only. While generally better
to add new symbols GPL-only, set_tsk_need_resched() is called from places
that are exported without that restriction. This includes things like
wake_up_process(). Export these new symbols without the added restriction.

Fixes: 8d737320166b ("sched: Fix build for modules using set_tsk_need_resched()")
Fixes: 6c125b85f3c8 ("sched: Export hidden tracepoints to modules")
Fixes: adcc3bfa8806 ("sched: Adapt sched tracepoints for RV task model")

Signed-off-by: Phil Auld <pauld@redhat.com>
---

This is against tip:sched/core (377521af0341).



 kernel/sched/core.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index c5431afe23b0..2871369c05fa 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -121,7 +121,8 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(sched_update_nr_running_tp);
 EXPORT_TRACEPOINT_SYMBOL_GPL(sched_compute_energy_tp);
 EXPORT_TRACEPOINT_SYMBOL_GPL(sched_entry_tp);
 EXPORT_TRACEPOINT_SYMBOL_GPL(sched_exit_tp);
-EXPORT_TRACEPOINT_SYMBOL_GPL(sched_set_need_resched_tp);
+/* This needs non-GPL-only. It's called from other non-GPL-only exports (e.g. wake_up_process()) */
+EXPORT_TRACEPOINT_SYMBOL(sched_set_need_resched_tp);
 
 DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
 DEFINE_PER_CPU(struct rnd_state, sched_rnd_state);
@@ -1139,7 +1140,8 @@ void __trace_set_need_resched(struct task_struct *curr, int tif)
 {
 	trace_sched_set_need_resched_tp(curr, smp_processor_id(), tif);
 }
-EXPORT_SYMBOL_GPL(__trace_set_need_resched);
+/* This needs non-GPL-only. It's called from other non-GPL-only exports (e.g. wake_up_process()) */
+EXPORT_SYMBOL(__trace_set_need_resched);
 
 void resched_curr(struct rq *rq)
 {
-- 
2.52.0
Re: [PATCH] sched: Fix tracepoint called from set_tsk_need_resched() more
Posted by gmonaco@redhat.com 1 week, 1 day ago
On Thu, 2026-01-29 at 11:05 -0500, Phil Auld wrote:
> This raw tracepoint is added to set_tsk_need_resched() which
> introduces
> two symbols which were then exported GPL-only. While generally better
> to add new symbols GPL-only, set_tsk_need_resched() is called from
> places
> that are exported without that restriction. This includes things like
> wake_up_process(). Export these new symbols without the added
> restriction.
> 
> Fixes: 8d737320166b ("sched: Fix build for modules using
> set_tsk_need_resched()")
> Fixes: 6c125b85f3c8 ("sched: Export hidden tracepoints to modules")
> Fixes: adcc3bfa8806 ("sched: Adapt sched tracepoints for RV task
> model")

Looks good to me, thanks!

Reviewed-by: Gabriele Monaco <gmonaco@redhat.com>

> 
> Signed-off-by: Phil Auld <pauld@redhat.com>
> ---
> 
> This is against tip:sched/core (377521af0341).
> 
> 
> 
>  kernel/sched/core.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index c5431afe23b0..2871369c05fa 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -121,7 +121,8 @@
> EXPORT_TRACEPOINT_SYMBOL_GPL(sched_update_nr_running_tp);
>  EXPORT_TRACEPOINT_SYMBOL_GPL(sched_compute_energy_tp);
>  EXPORT_TRACEPOINT_SYMBOL_GPL(sched_entry_tp);
>  EXPORT_TRACEPOINT_SYMBOL_GPL(sched_exit_tp);
> -EXPORT_TRACEPOINT_SYMBOL_GPL(sched_set_need_resched_tp);
> +/* This needs non-GPL-only. It's called from other non-GPL-only
> exports (e.g. wake_up_process()) */
> +EXPORT_TRACEPOINT_SYMBOL(sched_set_need_resched_tp);
>  
>  DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
>  DEFINE_PER_CPU(struct rnd_state, sched_rnd_state);
> @@ -1139,7 +1140,8 @@ void __trace_set_need_resched(struct
> task_struct *curr, int tif)
>  {
>  	trace_sched_set_need_resched_tp(curr, smp_processor_id(),
> tif);
>  }
> -EXPORT_SYMBOL_GPL(__trace_set_need_resched);
> +/* This needs non-GPL-only. It's called from other non-GPL-only
> exports (e.g. wake_up_process()) */
> +EXPORT_SYMBOL(__trace_set_need_resched);
>  
>  void resched_curr(struct rq *rq)
>  {
Re: [PATCH] sched: Fix tracepoint called from set_tsk_need_resched() more
Posted by Phil Auld 3 days, 23 hours ago
Hi Peter,

On Thu, Jan 29, 2026 at 05:09:25PM +0100 gmonaco@redhat.com wrote:
> On Thu, 2026-01-29 at 11:05 -0500, Phil Auld wrote:
> > This raw tracepoint is added to set_tsk_need_resched() which
> > introduces
> > two symbols which were then exported GPL-only. While generally better
> > to add new symbols GPL-only, set_tsk_need_resched() is called from
> > places
> > that are exported without that restriction. This includes things like
> > wake_up_process(). Export these new symbols without the added
> > restriction.
> > 
> > Fixes: 8d737320166b ("sched: Fix build for modules using
> > set_tsk_need_resched()")
> > Fixes: 6c125b85f3c8 ("sched: Export hidden tracepoints to modules")
> > Fixes: adcc3bfa8806 ("sched: Adapt sched tracepoints for RV task
> > model")
> 
> Looks good to me, thanks!
> 
> Reviewed-by: Gabriele Monaco <gmonaco@redhat.com>


Thoughts on this one?


Thanks,
Phil

> 
> > 
> > Signed-off-by: Phil Auld <pauld@redhat.com>
> > ---
> > 
> > This is against tip:sched/core (377521af0341).
> > 
> > 
> > 
> >  kernel/sched/core.c | 6 ++++--
> >  1 file changed, 4 insertions(+), 2 deletions(-)
> > 
> > diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> > index c5431afe23b0..2871369c05fa 100644
> > --- a/kernel/sched/core.c
> > +++ b/kernel/sched/core.c
> > @@ -121,7 +121,8 @@
> > EXPORT_TRACEPOINT_SYMBOL_GPL(sched_update_nr_running_tp);
> >  EXPORT_TRACEPOINT_SYMBOL_GPL(sched_compute_energy_tp);
> >  EXPORT_TRACEPOINT_SYMBOL_GPL(sched_entry_tp);
> >  EXPORT_TRACEPOINT_SYMBOL_GPL(sched_exit_tp);
> > -EXPORT_TRACEPOINT_SYMBOL_GPL(sched_set_need_resched_tp);
> > +/* This needs non-GPL-only. It's called from other non-GPL-only
> > exports (e.g. wake_up_process()) */
> > +EXPORT_TRACEPOINT_SYMBOL(sched_set_need_resched_tp);
> >  
> >  DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
> >  DEFINE_PER_CPU(struct rnd_state, sched_rnd_state);
> > @@ -1139,7 +1140,8 @@ void __trace_set_need_resched(struct
> > task_struct *curr, int tif)
> >  {
> >  	trace_sched_set_need_resched_tp(curr, smp_processor_id(),
> > tif);
> >  }
> > -EXPORT_SYMBOL_GPL(__trace_set_need_resched);
> > +/* This needs non-GPL-only. It's called from other non-GPL-only
> > exports (e.g. wake_up_process()) */
> > +EXPORT_SYMBOL(__trace_set_need_resched);
> >  
> >  void resched_curr(struct rq *rq)
> >  {
> 

--