Re: [RFC v3 2/2] arm64: kprobes: Allow reentering kprobes while single-stepping

Pu Hu <[email protected]>
Newsgroups org.kernel.vger.linux-trace-kernel,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On 7/10/2026 5:38 PM, Masami Hiramatsu wrote:
> On Fri, 10 Jul 2026 06:32:55 +0000
> Pu Hu <[email protected]> wrote:
> 
>> From: Pu Hu <[email protected]>
>>
>> A kprobe can be hit while another kprobe is in KPROBE_HIT_SS state. This
>> can happen when tracing or perf code runs from the debug exception path
>> while the first kprobe is preparing or executing its out-of-line
>> single-step instruction.
>>
>> Currently arm64 treats a kprobe hit in KPROBE_HIT_SS as unrecoverable,
>> the same as a hit in KPROBE_REENTER. This is too strict. A hit in
>> KPROBE_HIT_SS is still a one-level reentry and can be handled by saving
>> the current kprobe state and setting up single-step for the new probe,
>> just like reentry from KPROBE_HIT_ACTIVE or KPROBE_HIT_SSDONE.
>>
>> The truly unrecoverable case is hitting another kprobe while already in
>> KPROBE_REENTER, because the reentry save area has already been consumed.
>>
>> Move KPROBE_HIT_SS to the recoverable reentry cases and leave
>> KPROBE_REENTER as the unrecoverable nested reentry case.
>>
>> This change also requires saving saved_irqflag in struct prev_kprobe.
>> When a nested kprobe calls kprobes_save_local_irqflag(), it overwrites
>> kcb->saved_irqflag with the currently masked DAIF value, losing the
>> outer kprobe's original DAIF state. Without this fix, when the outer
>> kprobe's single-step finishes, kprobes_restore_local_irqflag() applies
>> the wrong DAIF mask and leaves interrupts permanently disabled.
>>
>> Extend struct prev_kprobe with a saved_irqflag field and save/restore it
>> alongside kp and status. This ensures the outer kprobe's original
>> interrupt state is preserved across reentry.
>>
>> This mirrors the x86 fix in commit 6a5022a56ac3
>> ("kprobes/x86: Allow to handle reentered kprobe on single-stepping").
>>
> 
> OK, this looks good to me.
> 
> Reviewed-by: Masami Hiramatsu (Google) <[email protected]>
> 
> for this series.
> 
> Will, Catalin, can you pick this series?
> 
> Thanks!
> 

Hi Will, Catalin,

Just a gentle ping on this series.

Masami has kindly reviewed it and provided his Reviewed-by tag.
I was wondering if you had a chance to take a look, or if there is
anything else I should address before it can be picked up.

No rush, and apologies for the reminder if this is already on your radar.

Thanks a lot for your time!

Thanks,
Pu Hu
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.