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
signature.asc
Description: This is a digitally signed message part
_______________________________________________ Linux-audio-dev mailing list [email protected] http://lists.linuxaudio.org/listinfo/linux-audio-dev
