TLB Flush:

We have spent a few days on this issue, and still haven’t resolved the best 
path.

Our solution seems to work, most of the time, but we still have some strange 
issues - so I want to check that what we are proposing has a chance of working.


Our plan is to allow all CPU’s to continue. Potentially one CPU will want to 
write to the TLBs. Subsequent to the write, it requests a TLB Flush. 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.

This means - there is a theoretical period of time when one CPU is writing to 
the TLBs while other CPU’s are executing.  Our belief is that this has to be 
handled by software anyway, and this should not be an issue from Qemu’s point 
of view. 
The alternative would be to force all other CPU’s to exit before writing the 
TLB’s - this is both expensive and very painful to organise (as we get into 
horrid deadlocks whichever way we turn)…

We’d appreciate some thoughts on this...

Cheers

Mark.



         +44 (0)20 7100 3485 x 210
 +33 (0)5 33 52 01 77x 210

        +33 (0)603762104
        mark.burton
 <applewebdata://3693B246-CDAA-4901-A9EC-AD07F4E94137/www.greensocs.com>

Reply via email to