bab9bb6b69
Create new directories: ceph config config-files filesystem kernel kernel/kernel-modules ldap logging strorage-drivers tools utilities virt Retire directories: connectivity core devtools support extended Delete two packages: tgt irqbalance Relocated packages: base/ dhcp initscripts libevent lighttpd linuxptp memcached net-snmp novnc ntp openssh pam procps sanlock shadow sudo systemd util-linux vim watchdog ceph/ python-cephclient config/ facter puppet-4.8.2 puppet-modules filesystem/ e2fsprogs nfs-utils nfscheck kernel/ kernel-std kernel-rt kernel/kernel-modules/ mlnx-ofa_kernel ldap/ nss-pam-ldapd openldap logging/ syslog-ng logrotate networking/ lldpd iproute mellanox python-ryu mlx4-config python/ python-2.7.5 python-django python-gunicorn python-setuptools python-smartpm python-voluptuous security/ shim-signed shim-unsigned tboot strorage-drivers/ python-3parclient python-lefthandclient virt/ cloud-init libvirt libvirt-python qemu tools/ storage-topology vm-topology utilities/ tis-extensions namespace-utils nova-utils update-motd Change-Id: I37ade764d873c701b35eac5881eb40412ba64a86 Story: 2002801 Task: 22687 Signed-off-by: Scott Little <scott.little@windriver.com>
48 lines
1.9 KiB
Diff
48 lines
1.9 KiB
Diff
From fe5869e78860a9150e24ea32c1a131da6af057c8 Mon Sep 17 00:00:00 2001
|
|
Message-Id: <fe5869e78860a9150e24ea32c1a131da6af057c8.1527544850.git.Jim.Somerville@windriver.com>
|
|
In-Reply-To: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
|
|
References: <b6ceef1c915827b50ce3f76da4dc47f3eb768b44.1527544850.git.Jim.Somerville@windriver.com>
|
|
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
|
|
Date: Thu, 15 Dec 2016 15:37:47 -0800
|
|
Subject: [PATCH 15/26] rcu: Don't wake rcuc/X kthreads on NOCB CPUs
|
|
|
|
[ upstream 630c7ed9ca0608912fa7c8591d05dfc8742dc9e6 in tip repo ]
|
|
|
|
Chris Friesen notice that rcuc/X kthreads were consuming CPU even on
|
|
NOCB CPUs. This makes no sense because the only purpose or these
|
|
kthreads is to invoke normal (non-offloaded) callbacks, of which there
|
|
will never be any on NOCB CPUs. This problem was due to a bug in
|
|
cpu_has_callbacks_ready_to_invoke(), which should have been checking
|
|
->nxttail[RCU_NEXT_TAIL] for NULL, but which was instead (incorrectly)
|
|
checking ->nxttail[RCU_DONE_TAIL]. Because ->nxttail[RCU_DONE_TAIL] is
|
|
never NULL, the only effect is to cause the rcuc/X kthread to execute
|
|
when it should not do so.
|
|
|
|
This commit therefore checks ->nxttail[RCU_NEXT_TAIL], which is NULL
|
|
for NOCB CPUs.
|
|
|
|
Reported-by: Chris Friesen <chris.friesen@windriver.com>
|
|
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
|
|
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
|
|
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
|
|
---
|
|
kernel/rcutree.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/kernel/rcutree.c b/kernel/rcutree.c
|
|
index cd68fe3..3276ac1 100644
|
|
--- a/kernel/rcutree.c
|
|
+++ b/kernel/rcutree.c
|
|
@@ -300,7 +300,7 @@ static int
|
|
cpu_has_callbacks_ready_to_invoke(struct rcu_data *rdp)
|
|
{
|
|
return &rdp->nxtlist != rdp->nxttail[RCU_DONE_TAIL] &&
|
|
- rdp->nxttail[RCU_DONE_TAIL] != NULL;
|
|
+ rdp->nxttail[RCU_NEXT_TAIL] != NULL;
|
|
}
|
|
|
|
/*
|
|
--
|
|
1.8.3.1
|
|
|