On 12 February 2015 at 14:45, Alexander Graf <ag...@suse.de> wrote:
>
>> On 12.02.2015, at 15:35, Mark Burton <mark.bur...@greensocs.com> wrote:
>> We are proposing to implement this by signalling all other CPU’s
>> to exit (and requesting they flush before re-starting). In other
>> words, this would happen asynchronously.
>
> For global flushes, give them a pointer payload along with the flush
> request and tell all cpus to increment it atomically. In your main
> thread, wait until *ptr == nKickedCpus.

I bet this will not be the only situation where you want to
do an "get all other CPUs to do $something and wait til they
have done so" kind of operation, so some lightweight but generic
infrastructure for doing that would not be a bad plan. (Similarly
"get all other CPUs to stop, then I can do $something and let
the others continue".)

-- PMM

Reply via email to