[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 0/6] xen: RCU: x86/ARM: Add support of rcu_idle_{enter, exit}
Hey, I know, v2 of this series just went out. But since I leave for 2 weeks, I wanted the version with as much as possible comments addressed to be on the list, and since it was rather quick to do that (and test it), for latest Tim's comment, here I am. So, basically, this is v2, as here: https://lists.xen.org/archives/html/xen-devel/2017-08/msg01881.html But with, as Tim suggested, the idle_cpumask initialized to "all clear". The various CPUs, therefore, are considered busy when they come up, and clear their own bit in the mask, as soon as they enter the idle loop for the first time (which is pretty soon). Doing like this, we close another window for a potential (although, rather unlikely) race/unnecessary extension of the grace period, and we simplify the code (a.k.a. 'win-win' :-D). Regards, Dario --- Dario Faggioli (6): xen: in do_softirq() sample smp_processor_id() once and for all. xen: ARM: suspend the tick (if in use) when going idle. xen: RCU/x86/ARM: discount CPUs that were idle when grace period started. xen: RCU: don't let a CPU with a callback go idle. xen: RCU: avoid busy waiting until the end of grace period. xen: try to prevent idle timer from firing too often. xen/arch/arm/domain.c | 29 +++++++--- xen/arch/x86/cpu/mwait-idle.c | 3 - xen/common/rcupdate.c | 123 ++++++++++++++++++++++++++++++++++++++++- xen/common/schedule.c | 4 + xen/common/softirq.c | 8 +-- xen/include/xen/perfc_defn.h | 2 + xen/include/xen/rcupdate.h | 6 ++ xen/include/xen/sched.h | 6 +- 8 files changed, 159 insertions(+), 22 deletions(-) -- <<This happens because I choose it to happen!>> (Raistlin Majere) ----------------------------------------------------------------- Dario Faggioli, Ph.D, http://about.me/dario.faggioli Senior Software Engineer, Citrix Systems R&D Ltd., Cambridge (UK) _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |