3de433a3b1
timer-Reduce-timer-migration-overhead-if-disabled.patch timer-Minimize-nohz-off-overhead.patch two patches already included in upgraded kernel remove description in meta patch. fix compile error in drbd_req.c for improper usage of request queue API; fix warning in kernel/bpf/core.c for implicit declaration trace call for CFLAG -Werror-implicit-function-declaration. remove patch change is_swiotlb_buffer in lib/swiotlb.c As change already in new kernel code. explicitly disable three config, CONFIG_TORTURE_TEST=n, CONFIG_RCU_TORTURE_TEST=n, CONFIG_LOCK_TORTURE_TEST=n. As torture.c, locktorture.c, rcutorture.c are introduced by new kernel release, which request CONFIG_PERCPU_RWSEM be enabled. But config file generated by merge kernel-3.10.0-x86_64-rt.config in source rpm and kernel-3.10.0-x86_64-rt.config.tis_extra in meta_patch, disable CONFIG_PERCPU_RWSEM, which makes build error with "undefined symbol". These three file are built to generate one module for one upper layer torture test tool, so explicitly disable these config. Depends-On: https://review.openstack.org/625773/ Story: 2004521 Task: 28352 Change-Id: I0f7e7db51aa38e98eae1219196a926ed8fc1b152 Signed-off-by: Martin, Chen <haochuan.z.chen@intel.com> Signed-off-by: Shuicheng Lin <shuicheng.lin@intel.com>
48 lines
1.9 KiB
Diff
48 lines
1.9 KiB
Diff
From b48c1062db1a4529f9ebecbffb5a80542da9f4f5 Mon Sep 17 00:00:00 2001
|
|
Message-Id: <b48c1062db1a4529f9ebecbffb5a80542da9f4f5.1528226387.git.Jim.Somerville@windriver.com>
|
|
In-Reply-To: <c8270e79f6b7008fde44b8d5aa6314d8cf89d3ed.1528226387.git.Jim.Somerville@windriver.com>
|
|
References: <c8270e79f6b7008fde44b8d5aa6314d8cf89d3ed.1528226387.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 18/32] 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 9648918..fb7b2a8 100644
|
|
--- a/kernel/rcutree.c
|
|
+++ b/kernel/rcutree.c
|
|
@@ -367,7 +367,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
|
|
|