[PATCH 0/5] rcu/sched: Fix ignored rescheduling after rcu_eqs_enter() v4

From: Frederic Weisbecker
Date: Sun Jan 31 2021 - 18:07:05 EST


So, here is a hopefully improved version with the following changes:

* No more late wake up debugging, objtool should debug that later with
noinstr code calling into the scheduler (Peter suggestion)

* Dropped the double rdp fetch patch, just keep the fix part for now

* Properly protect irq work call from rcu_user_enter() inside
instrumention_begin()

* Handle CONFIG_KVM_XFER_TO_GUEST_WORK (as per Peter suggestion)

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
sched/idle-v4

HEAD: d3e956d0b693a572bd5f56241816a6390c5b2797

Thanks,
Frederic
---

Frederic Weisbecker (5):
rcu: Pull deferred rcuog wake up to rcu_eqs_enter() callers
rcu/nocb: Perform deferred wake up before last idle's need_resched() check
rcu/nocb: Trigger self-IPI on late deferred wake up before user resume
entry: Explicitly flush pending rcuog wakeup before last rescheduling point
entry/kvm: Explicitly flush pending rcuog wakeup before last rescheduling point


arch/x86/kvm/x86.c | 1 +
include/linux/entry-kvm.h | 14 +++++++++++++
include/linux/rcupdate.h | 2 ++
kernel/entry/common.c | 7 +++++++
kernel/rcu/tree.c | 53 ++++++++++++++++++++++++++++++++++++++++++++++-
kernel/rcu/tree.h | 2 +-
kernel/rcu/tree_plugin.h | 31 +++++++++++++++++++--------
kernel/sched/idle.c | 3 +++
8 files changed, 102 insertions(+), 11 deletions(-)