Re: [RFC PATCH for 4.15 v12 00/22] Restartable sequences and CPU op vector

From: Mathieu Desnoyers
Date: Wed Nov 22 2017 - 11:42:48 EST

----- On Nov 22, 2017, at 10:28 AM, Andy Lutomirski luto@xxxxxxxxxxxxxx wrote:

> On Tue, Nov 21, 2017 at 2:05 PM, Mathieu Desnoyers
> <mathieu.desnoyers@xxxxxxxxxxxx> wrote:
>> ----- On Nov 21, 2017, at 12:21 PM, Andi Kleen andi@xxxxxxxxxxxxxx wrote:
>>> On Tue, Nov 21, 2017 at 09:18:38AM -0500, Mathieu Desnoyers wrote:
>>>> Hi,
>>>> Following changes based on a thorough coding style and patch changelog
>>>> review from Thomas Gleixner and Peter Zijlstra, I'm respinning this
>>>> series for another RFC.
>>> My suggestion would be that you also split out the opv system call.
>>> That seems to be main contention point currently, and the restartable
>>> sequences should be useful without it.
>> I consider rseq to be incomplete and a pain to use in various scenarios
>> without cpu_opv.
>> About the contention point you refer to:
>> Using vDSO as an example of how things should be done is just wrong: the
>> vDSO interaction with debugger instruction single-stepping is broken,
>> as I detailed in my previous email.
> If anyone ever reports that as a problem, I'll gladly fix it in the
> kernel. That's doable without an ABI change. If rseq-like things
> started breaking single-stepping, we can't just fix it in the kernel.

Very true. And rseq does break both line-level and instruction-level

> Also, there is one and only one vclock_gettime. Debuggers can easily
> special-case it. For all I know, they already do.

As my tests demonstrate, they don't. clock_gettime() vDSO currently
breaks instruction-level single-stepping (istep) with gdb. I'll
forward you the writeup I did on that a few days ago.



Mathieu Desnoyers
EfficiOS Inc.