On Tue, 2019-08-13 at 19:43 +0100, Julien Grall wrote: > On 8/13/19 6:34 PM, Dario Faggioli wrote: > > On Tue, 2019-08-13 at 17:52 +0100, Julien Grall wrote: > > > > > So, unless the flag gets cleared again, or something else happens > > that > > makes the vCPU(s) fail the vcpu_runnable() check in > > domain_unpause()->vcpu_wake(), I don't see why the wakeup that let > > the > > null scheduler start scheduling the vCPU doesn't happen... as it > > instead does on x86 or !dom0less ARM (because, as far as I've > > understood, it's only dom0less that doesn't work, it this correct?) > > Yes, I quickly tried to use NULL scheduler with just dom0 and it > boots. > Ok. > Interestingly, I can't see the log: > > (XEN) Freed 328kB init memory. > > This is called as part of init_done before CPU0 goes into the idle > loop. > > Adding more debug, it is getting stuck when calling > domain_unpause_by_controller for dom0. Specifically vcpu_wake on > dom0v0. > Wait... Is this also with just dom0, or when trying dom0less with some domUs? > The loop to assign a pCPU in null_vcpu_wake() is turning into an > infinite loop. Indeed the loop is trying to pick CPU0 for dom0v0 that > is > already used by dom1v0. So the problem is in pick_cpu() or the data > used > by it. > Ah, interesting... > It feels to me this is an affinity problem. Note that I didn't > request > to pin dom0 vCPUs. > Yep, looking better, I think I've seen something suspicious now. I'll send another debug patch. Regards -- Dario Faggioli, Ph.D http://about.me/dario.faggioli Virtualization Software Engineer SUSE Labs, SUSE https://www.suse.com/ ------------------------------------------------------------------- <> (Raistlin Majere)