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,
--
Julien Grall