kernel/sched/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
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
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)
> {
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)
> > {
>
--
© 2016 - 2026 Red Hat, Inc.