Re: [PATCH] seqlock: serialize against writers

From: Gregory Haskins
Date: Fri Aug 29 2008 - 13:03:18 EST


Steven Rostedt wrote:
> The subject forgot to add "RT" in the brackets.
>
> On Fri, 29 Aug 2008, Andi Kleen wrote:
>
>
>>> I could just force all of the seqbegins to hit the slowpath by hacking
>>> the code and see what happens (aside from slowing down, of course ;)
>>>
>> Only if you don't believe it will really crash? I think it's pretty
>> clear even without trying it.
>>
>>
>>> Question: Which seqlock_t does userspace use? I assume it uses
>>> seqlock_t and not raw_seqlock_t.
>>>
>>> But the only reason that I ask is that
>>> I converted raw_seqlock_t to use the new style as well to be consistent,
>>>
>> There's no raw_seqlock_t anywhere in mainline?
>>
>
> Nope, raw_seqlock_t in -rt is equivelant to seqlock_t in mainline.
>
>
>> Anyways the variable is declared (in mainline) in asm-x86/vgtod.h
>>
>>
>>> even though it is not strictly necessary for the same reasons. So if
>>> perchance userspace uses the raw variant, I could solve this issue by
>>> only re-working the seqlock_t variant. Kind of a long shot, but figured
>>> I would mention it :)
>>>
>> I guess you could define a new seqlock_t which is explicitely user space
>> safe. That might avoid such issues in the future. But then
>> that would likely require some code duplication and be ugly.
>>
>> On the other hand whatever problem you fixing in the kernel
>> (to be honest it's still unclear to me what the problem is)
>> needs to be likely fixed for the userland lock too.
>>
>
> I'm not convinced that the raw_seqlocks (mainline normal seqlocks) has a
> problem anyway.
>
(continuing from IRC)

Agreed. I converted them to be consistent. Steve just told me that
userspace actually uses the raw_seqlock_t variant, so the answer is
simple. Just leave raw_seqlock_t alone and the patch will work fine.

Thoughts?

-Greg


Attachment: signature.asc
Description: OpenPGP digital signature