[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v3 4/6] xen: RCU: don't let a CPU with a callback go idle.
On 08/18/2017 07:04 PM, Dario Faggioli wrote: > If a CPU has a callback queued, it must be ready to invoke > it, as soon as all the other CPUs involved in the grace period > has gone through a quiescent state. > > But if we let such CPU go idle, we can't really tell when (if!) > it will realize that it is actually time to invoke the callback. > To solve this problem, a CPU that has a callback queued (and has > already gone through a quiescent state itself) will stay online, > until the grace period ends, and the callback can be invoked. > > This is similar to what Linux does, and is the second and last > step for fixing the overly long (or infinite!) grace periods. > The problem, though, is that, within Linux, we have the tick, > so, all that is necessary is to not stop the tick for the CPU > (even if it has gone idle). In Xen, there's no tick, so we must > avoid for the CPU to go idle entirely, and let it spin on > rcu_pending(), consuming power and causing overhead. > > In this commit, we implement the above, using rcu_needs_cpu(), > in a way similar to how it is used in Linux. This it correct, > useful and not wasteful for CPUs that participate in grace > period, but have not a callback queued. For the ones that > has callbacks, an optimization that avoids having to spin is > introduced in a subsequent change. > > Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> > Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: George Dunlap <george.dunlap@xxxxxxxxxx> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |