On 21 March 2014 23:37, Catalin Marinas catalin.marinas@arm.com wrote:
smp_mb() is all about relative ordering. So if you want memory accesses in post_transition() to be visible to other observers before transition_ongoing = false, you also need to make sure that the readers of transition_ongoing have a barrier before subsequent memory accesses.
I don't think this is a requirement in our case. We are just trying to serialize frequency transitions here and just want to make sure that second one start after first one is over. And so this query.
OK, I start to get it. Is there a risk of missing a wake_up event? E.g. one thread waking up earlier, noticing that transition is in progress and waiting indefinitely?
I don't think so. The only requirement is that second thread wakes up after this variable is set to false.