Deutsch   English   Français   Italiano  
<v8co79$1fu52$1@dont-email.me>

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

Path: ...!2.eu.feeder.erje.net!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Newsgroups: comp.arch
Subject: Re: Arguments for a sane ISA 6-years later
Date: Wed, 31 Jul 2024 00:13:44 -0700
Organization: A noiseless patient Spider
Lines: 80
Message-ID: <v8co79$1fu52$1@dont-email.me>
References: <b5d4a172469485e9799de44f5f120c73@www.novabbs.org>
 <v7ubd4$2e8dr$1@dont-email.me> <v7uc71$2ec3f$1@dont-email.me>
 <2024Jul26.190007@mips.complang.tuwien.ac.at> <v872h5$alfu$2@dont-email.me>
 <v87g4i$cvih$1@dont-email.me> <v88oid$jkah$1@dont-email.me>
 <v8bgmq$15b0p$1@dont-email.me> <v8bi97$15rb6$4@dont-email.me>
 <v8c3ti$198m4$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 31 Jul 2024 09:13:45 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="74e95562e9d30488492612fbf917977f";
	logging-data="1570978"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/OX03IsR7oPb0zT48q/qwUw19jzmalJE0="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:D6E6DSbi3WTt6uGy73S/EEjQz3c=
Content-Language: en-US
In-Reply-To: <v8c3ti$198m4$1@dont-email.me>
Bytes: 4704

On 7/30/2024 6:27 PM, jseigh wrote:
> On 7/30/2024 4:26 PM, Chris M. Thomasson wrote:
>> On 7/30/2024 12:59 PM, jseigh wrote:
> 
>>> The folly library hazard pointers use that on windows,  membarrier() 
>>> system call on linux (something else on older linuxes), to get rid of 
>>> the expensive store/load memory barrier in hazard pointer loads.
>>
>> I need to check that out; thanks for the heads up. Fwiw, remember that 
>> old thread on comp.programming.threads where you first'ish published 
>> your ideas on RCU+SMR? I need to see if the folly library references 
>> your work. Also, remember when some paper from SUN or something was 
>> trying to claim your atomic_ptr logic? Iirc, we talked about it back 
>> on comp.arch, a long time ago...
>>
>> I remember you issued a "challenge like" post over on 
>> comp.programming.threads wrt detecting quiescent periods. Iirc, I was 
>> the first one to comment wrt a possible hackish solution using timing 
>> wrt kernel time. ;^)
>>
>>
>>> Something like 0.7 nsecs w/o membar vs 7.7 w/ membar.  The term I've 
>>> seen being used now is asymmetric memory barrier.
>>
>> Big time! This is bringing back a lot of memories Joe. :^) Thanks.
>>
> 
> I finally got around to writing a proxy version, smrproxy, here 
> https://github.com/jseigh .  Also there's an atomic reference counted 
> proxy, arcproxy.  Timings are here 
> https://threadnought.wordpress.com/2023/06/09/smrproxy-timing-comparisons/ .
> 
> smr is what I use to refer to hazard pointers.  In the original smrrcu, 
> the rcu refered to the rcu polling of context switches which had the 
> property of performing a memory barrier action.  I had to go through the 
> linux proc filesystem for that.  Talk about pain.  I was really glad 
> that somebody implemented membarrier().
> 
> I also did a variation where you used local counters like when we were 
> first messing with userspace rcu.  About the same performance but with 
> an extra polling cycle (events vs conditions).  I tried to put in the 
> same code as smrproxy but pseudo OO in C gets messy when you try to 
> implement chimerical types, so I yanked it out.

Yup. Fwiw, I did one with local counters for a strange reference 
counting thing that was pretty damn local. It would allow a thread to 
gain a strong reference by incrementing a local pointer-based hashed 
reference count. Each thread would have a table of counters that 
pointers were hashed into.


> atomic-ptr-plus is there but it's been copied from sourceforge to google 
> to github.   I don't know if it's still intact.
> 
> There's no attributions to anything in folly. 

Your work with RCU+SMR would be a great reference to give.


> It will probably end up 
> like what's now called split reference counting which is now folklore 
> according to a cppcon talk.

When I think of split counters for some reason I think of the per-thread 
counters that sum at intervals? :^) What about your differential 
reference counting? Works like a charm.

This was the base of it (atomic_ptr), right?

https://patents.justia.com/patent/5295262

I still like my very simple proxy thing here:

https://pastebin.com/raw/f71480694

https://groups.google.com/g/lock-free/c/X3fuuXknQF0

:^)