|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] crash in csched_load_balance after xl vcpu-pin
On Thu, 2018-04-12 at 15:15 +0200, Dario Faggioli wrote:
> On Thu, 2018-04-12 at 14:45 +0200, Olaf Hering wrote:
> >
> > dies after the first iteration.
> >
> > BUG_ON(!test_bit(_VPF_migrating, &prev->pause_flags));
> >
>
Update. I replaced this:
+ BUG_ON(vcpu_runnable(prev));
+ BUG_ON(!test_bit(_VPF_migrating, &prev->pause_flags));
with this, in the patch:
+ if (vcpu_runnable(prev) || !test_bit(_VPF_migrating,
&prev->pause_flags))
+ printk("d%uv%d runnbl=%d proc=%d pf=%lu\n",
prev->domain->domain_id, prev->vcpu_id,
+ vcpu_runnable(prev), prev->processor, prev->pause_flags);
+ BUG_ON(!test_bit(_VPF_migrating, &prev->pause_flags));
Output is:
(XEN) d10v0 runnbl=1 proc=31 pf=0
(XEN) Xen BUG at schedule.c:1572
On CPU 16.
It is still the BUG_ON(!test_bit(VPF_migrating)) which is triggering (I
actually meant to get rid of that as well, but I forgot.)
So, it looks like before, we did not hit BUG_ON(vcpu_runnable(prev)),
while in this run, vcpu_runnable(prev) is 1. I mean, I know it's a
race, but... wow...
We are in here because VPF_migrating was set, but it must be getting
cleared, concurrently with us, at about this time.
We are on CPU 16, inside context_saved(), and our 'prev' is d10v0. This
means its 'processor' should still be 16. But it's 31, so someone has
changed it already. I'm assuming it has been the vcpu_migrate() from
vcpu_set_affinity(). And this could very well be fine, but then, why we
also, when inside vcpu_migrate(), find VPF_migrating set?
I'll add more debugging to check if the vcpu is in a runqueue...
Dario
--
<<This happens because I choose it to happen!>> (Raistlin Majere)
-----------------------------------------------------------------
Dario Faggioli, Ph.D, http://about.me/dario.faggioli
Software Engineer @ SUSE https://www.suse.com/Attachment:
signature.asc _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |