]> git.baikalelectronics.ru Git - kernel.git/commit
ARCv2: STAR 9000837815 workaround hardware exclusive transactions livelock
authorVineet Gupta <vgupta@synopsys.com>
Thu, 11 Dec 2014 10:35:16 +0000 (16:05 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Thu, 25 Jun 2015 00:30:18 +0000 (06:00 +0530)
commit2b898004daf2fbc8e68e81a996d0b79db3cf856a
treed8434f779724e4d700d1dda0f781264f24a9ba50
parentedfc7d59563abc4f8f9b895d8614567498914557
ARCv2: STAR 9000837815 workaround hardware exclusive transactions livelock

A quad core SMP build could get into hardware livelock with concurrent
LLOCK/SCOND. Workaround that by adding a PREFETCHW which is serialized by
SCU (System Coherency Unit). It brings the cache line in Exclusive state
and makes others invalidate their lines. This gives enough time for
winner to complete the LLOCK/SCOND, before others can get the line back.

The prefetchw in the ll/sc loop is not nice but this is the only
software workaround for current version of RTL.

Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/include/asm/atomic.h