On 19 June 2015 at 17:57, Paolo Bonzini <pbonz...@redhat.com> wrote: > > > On 12/06/2015 18:38, Alex Züpke wrote: >> CPU #0 CPU #1 >> ====== ====== >> ... other stuff ... WFI (wait for interrupt, like x86 "HLT") >> send SGI in MPCore >> polls for completeness >> <time passes ...> >> polls ... >> <... and passes ...> >> still polls ... >> <... and passes ...> >> still polls ... >> <... and passes ...> > > Shouldn't CPU#0 do a WFE here? That would work too.
You can do this with SEV/WFE, yes, but you don't have to, and in fact Linux doesn't currently: http://lxr.free-electrons.com/source/kernel/smp.c#L108 > Considering that sooner or later we'll have true multithreaded > emulation, putting a hack doesn't sound like a great prospect. I'd bet on "later" rather than "sooner", especially if you want multithreaded on all host architectures. My not-very-scientific testing of time for a 2xSMP 32-bit Linux guest to boot to userspace shell and shutdown again suggests it does help: 32.531 secs vs 34.148 secs. The without-patch version seems more prone to occasionally stalling so much the boot time goes up to 45 seconds, too... -- PMM