On 12/7/2023 2:52 PM, jseigh wrote:
> On 12/6/23 20:05, Chris M. Thomasson wrote:
>> Context:
>>
>>
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0233r5.pdf
>>
>> SMR in std C++? Humm...
>
> It will be based on the one in Meta's folly library. Based on a quick
> scan of the code I think it will use a global membar if that is
> available. Looks like it will do some tracing collection for acyclic
> data structures.
I think so, ala sys_membarrier()...? Afaict, perhaps akin to a call to
FlushProcessWriteBuffers:
https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-flushprocesswritebuffers
Active vs passive quiescent state detection schemes. Active being
"issuing" an explicit request for quiescence. Passive akin to detecting
quiescent states...
Also, btw, Joe, it has been a while since we have conversed on Usenet!
We have had some hyper interesting conversations in the past, indeed. :^)
So nice to hear from you. :^)
I need to check it out, big time! Unfortunately, I am a bit busy right
now. However, you just made me think of that most interesting SMR+RCU
hybrid of yours. :^)
I know I am going to have a good time when I read your code, Joe. :^)
Excellent. Fwiw, remember my single word proxy collector over here?
https://groups.google.com/g/lock-free/c/X3fuuXknQF0
It looks like some of your comments got deleted from that post? Ahhh, it
was a while back. Here is a link to raw text:
pastebin.com/raw/f71480694
(fwiw, my proxy code using Relacy Race Detector)
> arcproxy looks good compared to rwlock but compared to smrproxy it looks
> really bad. The rcu timings are simulated.
Yup! IIRC, it's damn hard to compete with your SMR-RCU hybrid, or RCU
for that matter... I remember first learning about your DWCAS based
atomic pointer way back on comp.programming.threads. It is nice to hear
from you again. :^)
Fwiw, check out this rwlock of mine:
https://vorbrodt.blog/2019/02/14/read-write-mutex
Also, I remember you did a really __neat__ rw-spinlock way back on
comp.programming.threads. IIRC, The algorithm was rather elegant,
indeed. Could handle overflow into fields...
> I've been considering creating an interface for all the different
> schemes. Not sure if it would be a c++ abstact class or a rust trait,
> neither are my main languages. But then I would need a shared data
> structure that would utilize it. I did figure out how to do a lock-free
> hashmap (w/ per bucket linked lists) that can do lock-free resizing but
> I found Cliff Click has one that's probably faster (because no linked
> lists). But all that's on back burner for now.
Indeed. I will find some more time, maybe late tonight buddy. Fwiw, a
while back, I had an API that was fairly “generic” in a sense... I used
it for testing purposes so I could switch up implementations rather
easily. It was an attempt at a std proxy collector interface for my
testing purposes. Wow, how times flies! I will get back to you here.
Need to get some work done wrt plotting some of my fractals...
https://paulbourke.net/fractals/multijulia
(Paul was kind enough to write about some of my work.)
[...]