On Sat, Oct 24, 2020 at 3:29 AM Colin Ian King <colin.king@xxxxxxxxxxxxx> wrote: > > On 21/10/2020 08:38, Zong Li wrote: > > Like the commit cb9d7fd51d9f ("watchdog: Mark watchdog touch functions > > as notrace"), some architectures assume that the stopped CPUs don't make > > function calls to traceable functions when they are in the stopped > > state. For example, it causes unexpected kernel crashed when switching > > tracer on RISC-V. > > > > The following patches added calls to these two functions, fix it by > > adding the notrace annotations. > > > > Fixes: 4ecf0a43e729 ("processor: get rid of cpu_relax_yield") > > Fixes: 366237e7b083 ("stop_machine: Provide RCU quiescent state in > > multi_cpu_stop()") > > > > Signed-off-by: Zong Li <zong.li@xxxxxxxxxx> > > --- > > kernel/rcu/tree.c | 2 +- > > kernel/stop_machine.c | 2 +- > > 2 files changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c > > index 06895ef85d69..2a52f42f64b6 100644 > > --- a/kernel/rcu/tree.c > > +++ b/kernel/rcu/tree.c > > @@ -409,7 +409,7 @@ bool rcu_eqs_special_set(int cpu) > > * > > * The caller must have disabled interrupts and must not be idle. > > */ > > -void rcu_momentary_dyntick_idle(void) > > +notrace void rcu_momentary_dyntick_idle(void) > > { > > int special; > > > > diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c > > index 865bb0228ab6..890b79cf0e7c 100644 > > --- a/kernel/stop_machine.c > > +++ b/kernel/stop_machine.c > > @@ -178,7 +178,7 @@ static void ack_state(struct multi_stop_data *msdata) > > set_state(msdata, msdata->state + 1); > > } > > > > -void __weak stop_machine_yield(const struct cpumask *cpumask) > > +notrace void __weak stop_machine_yield(const struct cpumask *cpumask) > > { > > cpu_relax(); > > } > > > > Apologies for taking so long to reply, I needed to test this on several > devices. > > This not only fixes the ftrace issue I see on RISC-V but also a ftrace > hang issue on ARM64 in 5.8 too. > > Tested-by: Colin Ian King <colin.king@xxxxxxxxxxxxx> > > Many thanks! Many thanks all for reviewing and testing. Hi Palmer, As Steven suggested, could you help to pick up this patch in RISC-V tree?