On 6 February 2017 at 15:31, Alex Bennée <alex.ben...@linaro.org> wrote: > Previously flushes on other vCPUs would only get serviced when they > exited their TranslationBlocks. While this isn't overly problematic it > violates the semantics of TLB flush from the point of view of source > vCPU. > > To solve this we call the cputlb *_all_cpus_synced() functions to do > the flushes which ensures all flushes are completed by the time the > vCPU next schedules its own work. As the TLB instructions are modelled > as CP writes the TB ends at this point meaning cpu->exit_request will > be checked before the next instruction is executed. > > Deferring the work until the architectural sync point is a possible > future optimisation. > > Signed-off-by: Alex Bennée <alex.ben...@linaro.org> > Reviewed-by: Richard Henderson <r...@twiddle.net> > ---
Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM