Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming.threads > #1752

Re: About lockfree queues ...

From aminer <aminer@toto.net>
Newsgroups comp.programming.threads, comp.programming
Subject Re: About lockfree queues ...
Date 2013-09-24 21:34 -0700
Organization albasani.net
Message-ID <l1teir$bdk$1@news.albasani.net> (permalink)
References <l1t6hd$2pr$1@news.albasani.net>

Cross-posted to 2 groups.

Show all headers | View raw



Hello,

That's not the end of the story, there is still a problem
with the Spinlock with an exponential backoff, i think you have
to undertand something important, the backoff mechanism has
to be set correctly to lower the cache-coherence traffic,
but how to set it correctly ? cause the locked region has
a variable size , so of for example your locked region
takes much more time and it's bigger you have to set the
backoff mechanism with the PAUSE asm instruction(followed by a
sleep(0)) correctly so that it will be bigger than  what it
takes to execute the locked region , so this is the problem with
the Spinlocks with backoff , so how can we you do that efficiently?
that's the big question ! and i think it's not easy to do it, for
the lockfree queues, the time to execute a CAS is already known,
so you can set the backoff mechanism of the lockfree queue correctly
so that it become efficient under high contention.



Thank you,
Amine Moulay Ramdane.


















On 9/24/2013 7:16 PM, aminer wrote:
> Hello,
>
>
> I have wrote before this:
>
> "I have come to an interresting subject about lockfree queues,
> if you take a look at those lockfree queues, like in transactional
> memory, if the data have changed those lockfree queue retries and loop
> again, but this (lockfree) mechanism generates a lot of cache-coherence
> traffic, so i will not advice this lockfree mechanism, so how
> can we do it ? you can take a look at the MCS queue Lock , i
> think they are doing it like a waitfree linklist that doesn't spin and
> that reduces a lot the cache-coherence traffic, other than that
> if your memory manager is not optimal and uses a lockfree mechanism and
> generates a lot cache-coherence traffic, so you have to use a freelist
> to lower the cache coherence traffic."
>
>
> But you have to know even that you are using spin waits inside lockfree
> algorithms that genrates a lot of cache-coherence traffic , you have
> to know that you can avoid this problem and make your lockfree queue
> more efficient by adding an exponential backoff to you lockfree
> mechanism using a PAUSE asm instruction followed by a Sleep(0) to not
> freeze the computer and this way , like with the Spinlock, it will
> reduce the cache-coherence traffic and make your lockfree queue more
> efficient,.
>
>
>
>
> Thank you,
> Amine Moulay Ramdane.
>

Back to comp.programming.threads | Previous | NextPrevious in thread | Find similar


Thread

About lockfree queues ... aminer <aminer@toto.net> - 2013-09-24 19:16 -0700
  Re: About lockfree queues ... aminer <aminer@toto.net> - 2013-09-24 21:09 -0700
  Re: About lockfree queues ... aminer <aminer@toto.net> - 2013-09-24 21:34 -0700

csiph-web