On Wed, 2 Nov 2011, Fabien Chouteau wrote: > On 02/11/2011 17:25, Paolo Bonzini wrote: > > On 11/02/2011 04:38 PM, Fabien Chouteau wrote: > >> Hello fellow Qemu aficionados, > >> > >> On Windows, Qemu sets the affinity mask in order to run all thread on > >> CPU0, with this comment in the code (os-win32.c:182): > >> > >> /* Note: cpu_interrupt() is currently not SMP safe, so we force > >> QEMU to run on a single CPU */ > >> > >> This was added by Fabrice Bellard in 2006 (git show a8e5ac33d). > >> > >> I can't find/understand any reason for this CPU affinity restriction. > > > > Have you tried looking for a justification in the mailing lists? > > Yes, and I found few mails from Fabrice Bellard and Konrad Schwarz in > the archives: > > http://thread.gmane.org/gmane.comp.emulators.qemu/13804 > > and > > http://thread.gmane.org/gmane.comp.emulators.qemu/13831/focus=13805 > > But it didn't provide more information about the problem. > > > > > Also, I suppose you have tested without the affinity mask and it works? > > > > Yes I did, it works pretty well. I had 1 unexpected failure among ~6000 > tests. But I would like to have a substantial explanation. > > > > > Offhand I cannot think of why that would be needed. > > > > OK, thanks for your help.
(mm)Timers have a possibility of running on a thread of their own which might be schedulled on the CPU different from the thread that runs emulated code, unchaining TBs and can (and will) fail in this case. -- mailto:av1...@comtv.ru