qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: qemu icount to run guest SMP code


From: Peter Maydell
Subject: Re: qemu icount to run guest SMP code
Date: Tue, 28 Jul 2020 14:36:15 +0100

On Tue, 28 Jul 2020 at 13:34, Wu, Wentong <wentong.wu@intel.com> wrote:
> We are trying to run guest SMP code with qemu icount mode, but based on my 
> current understanding I don’t think we can do that, because with icount 
> enabled, the multi cpus will be simulated in round-robin way(tcg kick vcpu 
> timer, or current cpu exit in order to handle interrupt or the ending of the 
> current execution translationblock) with the single vCPU thread, so qemu is 
> not running guest code in parallel as real hardware does, if guest code has 
> the assumption cores run in parallel it will cause unexpected behavior.

In general you can't expect QEMU's simulation to be accurate
to the level that it will correctly run guest code that's looking
carefully at the level of parallelism between multiple cores
(whether using -icount or not.) Timing of the emulated CPUs
will always vary from that of real hardware to some extent.

SMP mode with icount (ie without MTTCG) will run all vCPUs
on one thread, but since we always round-robin between them
well-behaved guest code will make forward progress and will
not notice any major differences between this and real
parallel execution. (Sometimes it might spin a little more if
it has a busy-loop waiting for another core, but only until
the round-robin kicks in and runs the other core.)

thanks
-- PMM



reply via email to

[Prev in Thread] Current Thread [Next in Thread]