Re: [PATCH 4/8] sched,rcu,tracing: Mark preempt_count_{add,sub}() notrace

From: Steven Rostedt
Date: Wed Feb 12 2020 - 09:24:23 EST


On Wed, 12 Feb 2020 10:32:14 +0100
Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> Because of the requirement that no tracing happens until after we've
> incremented preempt_count, see nmi_enter() / trace_rcu_enter(), mark
> these functions as notrace.

I actually depend on these function being traced. We do have
"preempt_enable_notrace()" and "preempt_disable_notrace()" for places
that shouldn't be traced. Can't we use those? (or simply
__preempt_count_add()) in the nmi_enter() code instead? (perhaps create
a preempt_count_add_notrace()).

-- Steve



>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> ---
> kernel/sched/core.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> --- a/kernel/sched/core.c
> +++ b/kernel/sched/core.c
> @@ -3781,7 +3781,7 @@ static inline void preempt_latency_start
> }
> }
>
> -void preempt_count_add(int val)
> +void notrace preempt_count_add(int val)
> {
> #ifdef CONFIG_DEBUG_PREEMPT
> /*
> @@ -3813,7 +3813,7 @@ static inline void preempt_latency_stop(
> trace_preempt_on(CALLER_ADDR0, get_lock_parent_ip());
> }
>
> -void preempt_count_sub(int val)
> +void notrace preempt_count_sub(int val)
> {
> #ifdef CONFIG_DEBUG_PREEMPT
> /*
>