Messages in this thread | | | Date | Thu, 8 Apr 2021 19:23:48 +0800 | From | Jisheng Zhang <> | Subject | Re: [PATCH] riscv: keep interrupts disabled for BREAKPOINT exception |
| |
On Sat, 3 Apr 2021 20:30:53 +0200 (CEST) "Maciej W. Rozycki" <macro@orcam.me.uk> wrote:
> CAUTION: Email originated externally, do not click links or open attachments unless you recognize the sender and know the content is safe. > > > On Thu, 1 Apr 2021, Masami Hiramatsu wrote: > > > > > > Current riscv's kprobe handlers are run with both preemption and > > > > > interrupt enabled, this violates kprobe requirements. Fix this issue > > > > > by keeping interrupts disabled for BREAKPOINT exception. > > > > > > > > Not only while the breakpoint exception but also until the end of > > > > the single step (maybe you are using __BUG_INSN_32 ??) need to be > > > > disable interrupts. Can this do that? > > > > > > > > > > interrupt is disabled during "single step" by kprobes_save_local_irqflag() > > > and kprobes_restore_local_irqflag(). The code flow looks like: > > > > > > do_trap_break() // for bp > > > kprobe_breakpoint_handler() > > > setup_singlestep() > > > kprobes_restore_local_irqflag() > > > > > > do_trap_break() // for ss > > > kprobe_single_step_handler() > > > kprobes_restore_local_irqflag() > > > > OK, thanks for the confirmation! > > Is this approach guaranteed to keep interrupt handling latency low enough > for the system not to be negatively affected, e.g. for the purpose of NTP > timekeeping?
IMHO, interrupt latency can't be ensured if kprobes is triggered.
thanks
| |