|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] sched=null vwfi=native and call_rcu()
Hi all,
As you might remember, we have an outstanding issue with call_rcu() when
sched=null vwfi=native are used. That is because in that configuration
the CPU never goes idle so rcu_idle_enter() never gets called.
The issue was caught on the field and I managed to repro the problem
doing the following:
xl destroy test
xl create ./test.cfg
Resulting in the following error:
# Parsing config from ./test.cfg
# (XEN) IRQ 54 is already used by domain 1
The test domain has 3 interrupts remapped to it and they don't get
released before the new domain creation is requested.
Just FYI, the below hacky patch seems to reliably work-around the
problem in my environment.
Do you have any suggestions on what would be the right way to solve
this issue?
Cheers,
Stefano
diff --git a/xen/common/rcupdate.c b/xen/common/rcupdate.c
index a5a27af3de..841a5cb3c9 100644
--- a/xen/common/rcupdate.c
+++ b/xen/common/rcupdate.c
@@ -289,6 +289,9 @@ void call_rcu(struct rcu_head *head,
force_quiescent_state(rdp, &rcu_ctrlblk);
}
local_irq_restore(flags);
+ /* make sure that the CPU has a chance to check RCUs */
+ set_timer(&rdp->idle_timer, NOW() + SECONDS(1));
+ rdp->idle_timer_active = true;
}
/*
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |