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
single-stepping.

>
> 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.

Thanks,

Mathieu

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com