On Mon, Mar 1, 2021 at 6:22 PM Masami Hiramatsu <mhira...@kernel.org> wrote: > > Hi Oleg and Andy, > > On Mon, 1 Mar 2021 17:51:31 +0100 > Oleg Nesterov <o...@redhat.com> wrote: > > > Hi Andy, > > > > sorry for delay. > > > > On 02/23, Andy Lutomirski wrote: > > > > > > A while back, I let myself be convinced that kprobes genuinely need to > > > single-step the kernel on occasion, and I decided that this sucked but > > > I could live with it. it would, however, be Really Really Nice (tm) > > > if we could have a rule that anyone running x86 Linux who single-steps > > > the kernel (e.g. kgdb and nothing else) gets to keep all the pieces > > > when the system falls apart around them. Specifically, if we don't > > > allow kernel single-stepping and if we suitably limit kernel > > > instruction breakpoints (the latter isn't actually a major problem), > > > then we don't really really need to use IRET to return to the kernel, > > > and that means we can avoid some massive NMI nastiness. > > > > Not sure I understand you correctly, I know almost nothing about low-level > > x86 magic. > > x86 has normal interrupt and NMI. When an NMI occurs the CPU masks NMI > (the mask itself is hidden status) and IRET releases the mask. The problem > is that if an INT3 is hit in the NMI handler and does a single-stepping, > it has to use IRET for atomically setting TF and return. > > > > > But I guess this has nothing to do with uprobes, they do not single-step > > in kernel mode, right? > > Agreed, if the problematic case is IRET from NMI handler, uprobes doesn't > hit because it only invoked from user-space. > Andy, what would you think?
Indeed, this isn't a problem for uprobes. The problem for uprobes is that all the notifiers from #DB are kind of messy, and I would like to get rid of them if possible.