Re: [LAD] concurrent access on smp

From: David Robillard <d@email-addr-hidden>
Date: Mon Oct 22 2012 - 04:17:57 EEST

On Mon, 2012-10-22 at 02:34 +0200, Emanuel Rumpf wrote:
> Hi
>
> With some threads running on different CPU,
> accessing a shared pointer (in RAM) atomically (with gcc atomic methods)
>
> my current understanding is:
> - each cpu has its own cache line
> - which is updated on every atomic read/write operation
>
> 1. is that applicable ?

If everyone is reading, updates are not necessary, so this is fast.
Writes are the problem because they can invalidate the cache of other
CPUs/cores.

> 2. is there a faster or more convenient method, such as
> storing the pointer in fast register shared among different cpu ?

On CPUs, not really. The cache is transparently controlled by the
hardware (though GPUs and some other weird chips do have explicit shared
cache).

There are shared levels of cache (on multi-core chips), it's just slower
than L1. General registers are not shared.

(Sometimes volatile can have surprising performance effects on shared
variables, if you're playing around and benchmarking, but it doesn't
really guarantee anything).

-dr

_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Received on Mon Oct 22 04:15:03 2012

This archive was generated by hypermail 2.1.8 : Mon Oct 22 2012 - 04:15:03 EEST