On Mon, Apr 16, 2018 at 11:35 AM, Mathieu Desnoyers
<mathieu.desnoy...@efficios.com> wrote:
> Specifically for single-stepping, the __rseq_table section introduced
> at user-level will allow newer debuggers and tools which do line and
> instruction-level single-stepping to skip over rseq critical sections.
> However, this breaks existing debuggers and tools.

I really don't think single-stepping is a valid argument.

Even if the cpu_opv() allows you to "single step", you're not actually
single stepping the same thing that you're using. So you are literally
debugging something else than the real code.

At that point, you don't need "cpu_opv()", you need to just load
/dev/urandom in a buffer, and single-step that. Ta-daa! No new kernel
functionality needed.

So if the main argument for cpu_opv is single-stepping, then just rip
it out. It's not useful.

Anybody who cares deeply about single-stepping shouldn't be using
optimistic algorithms, and they shouldn't be doing multi-threaded
stuff either. They won't be able to use things like transactional
memory either.

You can't single-step into the kernel to see what the kernel does
either when you're debugging something.

News at 11: "single stepping isn't always viable".

                Linus

Reply via email to