Can i use Peterson Lock as SMP lock??

Can i use Peterson Lock as SMP lock??

rkmanikanta's picture

Hi, Can i use Peterson Lock as SMP Lock, if the processor doesn't support Get-and-Set instruction? Thanks, Mani

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
Dmitry Vyukov's picture

Yes, of course. However, then hardware has to support either sequentially-consistent memory model or #StoreLoad style memory fences.

All about lock-free algorithms, multicore, scalability, parallel computing and related topics: http://www.1024cores.net
anthony_williams's picture

Peterson's lock was designed for precisely this scenario. However, you need to ensure that the operations become visible to the other processors in the right order. The algorithm assumes a sequentially-consistent memory model, and on some platforms this will require memory fence operations before and/or after some of the stores and loads.

You also need to bear in mind that Peterson's lock is not a replacement for a general-purpose mutex --- each thread that tries to access the critical section must have a specific ID. The basic algorithm only works with 2 specific threads, though it is possible to extend it to more.

rkmanikanta's picture

Hi, thanks for the reply. But how can we extend Peterson lock for N-processes? Thanks, Mani

Chris M. Thomasson's picture

Login to leave a comment.