Re: [RFC PATCH 0/3] restartable sequences v2: fast user-space percpu critical sections

From: Linus Torvalds
Date: Fri Apr 08 2016 - 17:25:56 EST


On Fri, Apr 8, 2016 at 10:46 AM, Mathieu Desnoyers
<mathieu.desnoyers@xxxxxxxxxxxx> wrote:
>
> By the way, the debugger can always decide to single-step through the
> first iteration of the rseq, and then after it loops, decide to skip
> single-stepping until the exit points are reached.

A _human_ debugger may decide to do that yes.

But the the debugger _program_ may not be that smart. For example,
let's say that you - as a human - set a few watchpoints. The debugger
will use hardware breakpoints for the first few, but in more complex
cases the debugger will actually say "oops, no more hw breakpoints,
I'll just start single-stepping instead".

The human operator may not even be aware that the debugger has gone
into that slower mode. Normally it's just slower. But you'd want it to
be _only_ slower, not "oops, the program no longer makes any forward
progress at all, because a library that the user didn't even know or
care about - and never sees, because the single-stepping is all
internal = happened to use a code sequence that doesn't work under
single-stepping".

Linus