lkml.org 
[lkml]   [2023]   [Jan]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: Internal vs. external barriers (was: Re: Interesting LKMM litmus test)
From


On 1/20/2023 4:32 PM, Paul E. McKenney wrote:
> On Fri, Jan 20, 2023 at 01:51:01PM +0100, Jonas Oberhauser wrote:
>> I'm not going to get it right today, am I?
> Believe me, I know that feeling! Open-source development is therefore
> an extremely good character-building exercise. At least that is what
> I keep telling myself. ;-)

"Calvin, go do something you hate! Being miserable builds character!"

>
>> +let srcu-rscs = ([Srcu-lock] ; (data ; [~ Srcu-unlock] ; rfe) * ; data ;
>> [Srcu-unlock]) & loc
>>
>> I see now that I copied the format from your message but without realizing
>> the original had a `|` where I have a `;`.
>> I hope this version is finally right and perhaps more natural than the (data
>> | rf) version, considering rf can't actually appear in most places and this
>> more closely matches carry-dep;data.
>> But of course feel free to use
>> +let srcu-rscs = ([Srcu-lock] ; (data  | [~ Srcu-unlock] ; rf)+ ;
>> [Srcu-unlock]) & loc
>> instead if you prefer.
>
> The reason for favoring "rf" over "rfe" is the possibility of a litmus
> test where the process containing the srcu_down_read() sometimes but
> not always also has the matching srcu_up_read(). Perhaps a pair of "if"
> statements control which process does the matching srcu_up_read().

If you put the redefinition of data early enough to affect this
definition, the rfi option should be covered by the carry-dep in the
redefinition of data, so I left it out.

> And thank you!!!

always ;-)

jonas

\
 
 \ /
  Last update: 2023-03-26 23:50    [W:0.155 / U:0.416 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site