|Subject:||[Qemu-devel] Help on TLB Flush|
|Date:||Thu, 12 Feb 2015 15:35:39 +0100|
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...
|[Prev in Thread]||Current Thread||[Next in Thread]|