[PATCH v3 08/13] sched: Export hidden tracepoints to modules

Gabriele Monaco posted 13 patches 1 week, 6 days ago
[PATCH v3 08/13] sched: Export hidden tracepoints to modules
Posted by Gabriele Monaco 1 week, 6 days ago
The tracepoints sched_entry, sched_exit and sched_set_need_resched
are not exported to tracefs as trace events, this allows only kernel
code to access them. Helper modules like [1] can be used to still have
the tracepoints available to ftrace for debugging purposes, but they do
rely on the tracepoints being exported.

Export the 3 not exported tracepoints.
Note that sched_set_state is already exported as the macro is called
from modules.

[1] - https://github.com/qais-yousef/sched_tp.git

Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
---
 kernel/sched/core.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 41ba0be16911..5516778c19eb 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -119,6 +119,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(sched_util_est_cfs_tp);
 EXPORT_TRACEPOINT_SYMBOL_GPL(sched_util_est_se_tp);
 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);
 
 DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
 DEFINE_PER_CPU(struct rnd_state, sched_rnd_state);
-- 
2.52.0
Re: [PATCH v3 08/13] sched: Export hidden tracepoints to modules
Posted by Phil Auld 1 week, 6 days ago
On Fri, Dec 05, 2025 at 02:16:16PM +0100 Gabriele Monaco wrote:
> The tracepoints sched_entry, sched_exit and sched_set_need_resched
> are not exported to tracefs as trace events, this allows only kernel
> code to access them. Helper modules like [1] can be used to still have
> the tracepoints available to ftrace for debugging purposes, but they do
> rely on the tracepoints being exported.
> 
> Export the 3 not exported tracepoints.
> Note that sched_set_state is already exported as the macro is called
> from modules.
> 
> [1] - https://github.com/qais-yousef/sched_tp.git
> 
> Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>

This makes sense.

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


Cheers,
Phil

> ---
>  kernel/sched/core.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> index 41ba0be16911..5516778c19eb 100644
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -119,6 +119,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(sched_util_est_cfs_tp);
>  EXPORT_TRACEPOINT_SYMBOL_GPL(sched_util_est_se_tp);
>  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);
>  
>  DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
>  DEFINE_PER_CPU(struct rnd_state, sched_rnd_state);
> -- 
> 2.52.0
> 
> 

--
Re: [PATCH v3 08/13] sched: Export hidden tracepoints to modules
Posted by Phil Auld 1 week ago
Hi Peter,

On Fri, Dec 05, 2025 at 08:35:52AM -0500 Phil Auld wrote:
> On Fri, Dec 05, 2025 at 02:16:16PM +0100 Gabriele Monaco wrote:
> > The tracepoints sched_entry, sched_exit and sched_set_need_resched
> > are not exported to tracefs as trace events, this allows only kernel
> > code to access them. Helper modules like [1] can be used to still have
> > the tracepoints available to ftrace for debugging purposes, but they do
> > rely on the tracepoints being exported.
> > 
> > Export the 3 not exported tracepoints.
> > Note that sched_set_state is already exported as the macro is called
> > from modules.
> > 
> > [1] - https://github.com/qais-yousef/sched_tp.git
> > 
> > Signed-off-by: Gabriele Monaco <gmonaco@redhat.com>
> 
> This makes sense.
> 
> Reviewed-by: Phil Auld <pauld@redhat.com>
> 

Any chance we can get this one in even if the rest of the series
needs more time?

Without this, out of tree modules fail to link.

I don't know if it's worth adding:

Fixes: adcc3bfa8806 ("sched: Adapt sched tracepoints for RV task model")


Cheers,
Phil

> 
> Cheers,
> Phil
> 
> > ---
> >  kernel/sched/core.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/kernel/sched/core.c b/kernel/sched/core.c
> > index 41ba0be16911..5516778c19eb 100644
> > --- a/kernel/sched/core.c
> > +++ b/kernel/sched/core.c
> > @@ -119,6 +119,9 @@ EXPORT_TRACEPOINT_SYMBOL_GPL(sched_util_est_cfs_tp);
> >  EXPORT_TRACEPOINT_SYMBOL_GPL(sched_util_est_se_tp);
> >  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);
> >  
> >  DEFINE_PER_CPU_SHARED_ALIGNED(struct rq, runqueues);
> >  DEFINE_PER_CPU(struct rnd_state, sched_rnd_state);
> > -- 
> > 2.52.0
> > 
> > 
> 
> -- 
> 

--