Deutsch English Français Italiano |
<vho4gs$pd3i$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: jseigh <jseigh_es00@xemaps.com> Newsgroups: comp.lang.c++ Subject: Re: smrproxy v2 Date: Thu, 21 Nov 2024 15:17:32 -0500 Organization: A noiseless patient Spider Lines: 35 Message-ID: <vho4gs$pd3i$1@dont-email.me> References: <vequrc$2o7qc$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 21 Nov 2024 21:17:33 +0100 (CET) Injection-Info: dont-email.me; posting-host="1abdcfa001f8a13214f5f3a91c770945"; logging-data="832626"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19SEl3N25Xp1+WrG7wSQpWi" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:aZjSGs4GTgLKKFquVE3npUT5fHI= In-Reply-To: <vequrc$2o7qc$1@dont-email.me> Content-Language: en-US Bytes: 2281 On 10/17/24 08:10, 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 got a port to c++ working now. There are 5 proxy implementations 1) smrproxy v2 2) arcproxy - reference counted proxy 3) rwlock based proxy 4) mutex based proxy 5) an unsafe proxy with no locking The testcase is templated so you can use any of the 5 proxy implementations without rewriting for each proxy type. You can do apple to apple comparisons. I realize that's the complete antithesis of current programming practices but there you have it. :) A bit of clean up and performance tuning now. Joe Seigh