Deutsch   English   Français   Italiano  
<vfh4dh$3bnuq$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Newsgroups: comp.lang.c++
Subject: Re: smrproxy v2
Date: Fri, 25 Oct 2024 15:00:15 -0700
Organization: A noiseless patient Spider
Lines: 65
Message-ID: <vfh4dh$3bnuq$1@dont-email.me>
References: <vequrc$2o7qc$1@dont-email.me> <verr04$2stfq$1@dont-email.me>
 <verubk$2t9bs$1@dont-email.me> <ves78h$2ugvm$2@dont-email.me>
 <vetj1f$39iuv$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 26 Oct 2024 00:00:17 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="8fd9edeffa64a10600130af9cd1a89e6";
	logging-data="3530714"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19S4394iB+jqXw4QHJD+6p+gsJWFZ2s8jU="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:xtkDG+1osMRIciZuhXxPuUT3sy4=
Content-Language: en-US
In-Reply-To: <vetj1f$39iuv$1@dont-email.me>
Bytes: 3924

On 10/18/2024 5:07 AM, jseigh wrote:
> On 10/17/24 19:40, Chris M. Thomasson wrote:
>> On 10/17/2024 2:08 PM, jseigh wrote:
>>> On 10/17/24 16:10, Chris M. Thomasson wrote:
>>>> On 10/17/2024 5:10 AM, jseigh wrote:
>>>>> I replaced the hazard pointer logic in smrproxy.  It's now wait-free
>>>>> instead of mostly wait-free.  The reader lock logic after loading
>>>>> the address of the reader lock object into a register is now 2
>>>>> instructions a load followed by a store.  The unlock is same
>>>>> as before, just a store.
>>>>>
>>>>> It's way faster now.
>>>>>
>>>>> It's on the feature/003 branch as a POC.   I'm working on porting
>>>>> it to c++ and don't want to waste any more time on c version.
>>>>>
>>>>> No idea of it's a new algorithm.  I suspect that since I use
>>>>> the term epoch that it will be claimed that it's ebr, epoch
>>>>> based reclamation, and that all ebr algorithms are equivalent.
>>>>> Though I suppose you could argue it's qsbr if I point out what
>>>>> the quiescent states are.
>>>>
>>>> I have to take a look at it! Been really busy lately. Shit happens.
>>>>
>>>
>>> There's a quick and dirty explanation at
>>> http://threadnought.wordpress.com/
>>>
>>> repo at https://github.com/jseigh/smrproxy
>>>
>>> I'll need to create some memory access diagrams that
>>> visualize how it works at some point.
>>>
>>> Anyway if it's new, another algorithm to use without
>>> attribution.
>>
>> Interesting. From a quick view, it kind of reminds me of a distributed 
>> seqlock for some reason. Are you using an asymmetric membar in here? 
>> in smr_poll ?
> 
> Yes, linux membarrier() in smr_poll.
> 
> Not seqlock, not least for the reason that exiting the critical region
> is 3 instructions unless you use atomics which are expensive and have
> memory barriers usually.
> 
> A lot of the qsbr and ebr reader lock/unlock code is going to look
> somewhat similar so you have to know how the reclaim logic uses it.
> In this case I am slingshotting off of the asymmetric memory barrier.
> 
> Earlier at one point I was going to have smrproxy use hazard pointer
> logic or qsbr logic as a config option, but the extra code complexity
> and the fact that qsbr required 2 grace periods kind of made that
> unfeasible.  The qsbr logic was mostly ripped out but there were still
> some pieces there.
> 
> Anyway I'm working a c++ version which involves a lot of extra work
> besides just rewriting smrproxy.  There coming up with an api for
> proxies and testcases which tend to be more work than the code that
> they are testing.

Damn! I almost missed this post! Fucking Thunderbird... Will get back to 
you. Working on something else right now Joe, thanks.

https://www.facebook.com/share/p/ydGSuPLDxjkY9TAQ/