> > The purpose of separate stacks for NMI, #DB and #MC *in the kernel* > > (remember that user space faults are always taken on stack level 0) is > > to avoid overflowing the kernel stack. #DB in the kernel would imply > > the use of a kernel debugger. > > Perf (and through it bpf) also has access to #DB. They can set > breakpoints on kernel instructions/memory just fine provided permission > etc. So they are still *kernel* debuggers :)