[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: Null scheduler and vwfi native problem
On 1/22/21 3:02 PM, Julien Grall wrote: I applied the patch above. No change. The function complete_domain_destroy function is not call when I destroy the domain.Hi Dario, On 21/01/2021 23:35, Dario Faggioli wrote:On Thu, 2021-01-21 at 19:40 +0000, Julien Grall wrote:Hi Dario,Hi!On 21/01/2021 18:32, Dario Faggioli wrote:On Thu, 2021-01-21 at 11:54 +0100, Anders Törnqvist wrote:https://lists.xenproject.org/archives/html/xen-devel/2018-09/msg01213.html .Right. Back then, PCI passthrough was involved, if I remember correctly. Is it the case for you as well?PCI passthrough is not yet supported on Arm :). However, the bug was reported with platform device passthrough.Yeah, well... That! Which indeed is not PCI. Sorry for the terminology mismatch. :-)Well, I'll think about it. >Starting the system without "sched=null vwfi=native" does not result in the problem.Ok, how about, if you're up for some more testing: - booting with "sched=null" but not with "vwfi=native" - booting with "sched=null vwfi=native" but not doing the IRQ passthrough that you mentioned above ?I think we can skip the testing as the bug was fully diagnostics back then. Unfortunately, I don't think a patch was ever posted.True. But an hackish debug patch was provided and, back then, it worked. OTOH, Anders seems to be reporting that such a patch did not work here. I also continue to think that we're facing the same or a very similar problem... But I'm curious why applying the patch did not help this time. And that's why I asked for more testing.I wonder if this is because your patch doesn't modify rsinterval. So even if we call force_quiescent_state(), the softirq would only be raised for the current CPU.I guess the following HACK could confirm the theory: diff --git a/xen/common/rcupdate.c b/xen/common/rcupdate.c index a5a27af3def0..50020bc34ddf 100644 --- a/xen/common/rcupdate.c +++ b/xen/common/rcupdate.c@@ -250,7 +250,7 @@ static void force_quiescent_state(struct rcu_data *rdp,{ cpumask_t cpumask; raise_softirq(RCU_SOFTIRQ); - if (unlikely(rdp->qlen - rdp->last_rs_qlen > rsinterval)) { + if (1 || unlikely(rdp->qlen - rdp->last_rs_qlen > rsinterval)) { rdp->last_rs_qlen = rdp->qlen; /* * Don't send IPI to itself. With irqs disabled, Cheers, /Anders
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |