Got it! :) I will improve the commit message and send v3 ASAP. BTW, which tree should I rebase those patches onto? Is that the for-next branch of git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace.git. I saw Jiri had troubles applying those since these works are based on v6.4.0. THX, Ze On Wed, May 17, 2023 at 10:54 AM Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote: > > On Wed, 17 May 2023 09:54:53 +0800 > Ze Gao <zegao2021@xxxxxxxxx> wrote: > > > Oops, I misunderstood your comments before. > > > > Yes, it's not necessary to do this reordering as regards to kprobe. > > Let me confirm, I meant that your current patch is correct. I just mentioned > that kprobe_busy_{begin,end} will continue use standard version because > kprobe itself handles that. Please update only the patch description and > add my ack. > > Acked-by: Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> > > If you add Steve's call graph for the explanation, it will help us to > understand what will be fixed. > > Thank you, > > > > > Thanks for your review. > > > > I'll rebase onto the latest tree and send v3 ASAP. > > > > Regards, > > Ze > > > > On Wed, May 17, 2023 at 12:03 AM Masami Hiramatsu <mhiramat@xxxxxxxxxx> wrote: > > > > > > On Tue, 16 May 2023 17:47:52 +0800 > > > Ze Gao <zegao2021@xxxxxxxxx> wrote: > > > > > > > Precisely, these that are called within kprobe_busy_{begin, end}, > > > > which the previous patch does not resolve. > > > > > > Note that kprobe_busy_{begin,end} don't need to use notrace version > > > because kprobe itself prohibits probing on preempt_count_{add,sub}. > > > > > > Thank you, > > > > > > > I will refine the commit message to make it clear. > > > > > > > > FYI, details can checked out here: > > > > Link: https://lore.kernel.org/linux-trace-kernel/20230516132516.c902edcf21028874a74fb868@xxxxxxxxxx/ > > > > > > > > Regards, > > > > Ze > > > > > > > > On Tue, May 16, 2023 at 5:18 PM Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > > > > > > > > > > On Tue, May 16, 2023 at 03:18:28PM +0800, Ze Gao wrote: > > > > > > Current implementation calls kprobe related functions before doing > > > > > > ftrace recursion check in fprobe_kprobe_handler, which opens door > > > > > > to kernel crash due to stack recursion if preempt_count_{add, sub} > > > > > > is traceable. > > > > > > > > > > Which preempt_count*() are you referring to? The ones you just made > > > > > _notrace in the previous patch? > > > > > > > > > -- > > > Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx> > > > -- > Masami Hiramatsu (Google) <mhiramat@xxxxxxxxxx>