. This can confuse the logic. Add a retry logic
if smt_mask changes between the loops.
Tested-by: Julien Desfossez
Signed-off-by: Peter Zijlstra (Intel)
Signed-off-by: Julien Desfossez
Signed-off-by: Vineeth Remanan Pillai
Signed-off-by: Joel Fernandes (Google)
Signed-off-by: Aaron Lu
Signed
From: Peter Zijlstra
Introduce the basic infrastructure to have a core wide rq->lock.
Tested-by: Julien Desfossez
Signed-off-by: Peter Zijlstra (Intel)
Signed-off-by: Julien Desfossez
Signed-off-by: Vineeth Remanan Pillai
---
kernel/Kconfig.preempt | 6 +++
kernel/sched/core.c| 109
From: Aubrey Li
- Don't migrate if there is a cookie mismatch
Load balance tries to move task from busiest CPU to the
destination CPU. When core scheduling is enabled, if the
task's cookie does not match with the destination CPU's
core cookie, this task will be skipped by
From: Peter Zijlstra
Tested-by: Julien Desfossez
Signed-off-by: Peter Zijlstra (Intel)
---
kernel/sched/fair.c | 12 ++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index bd6aed63f5e3..b4bc82f46fe7 100644
---
-by: Vineeth Pillai
Signed-off-by: Joel Fernandes (Google)
---
.../admin-guide/kernel-parameters.txt | 7 +
include/linux/entry-common.h | 2 +-
include/linux/sched.h | 12 +
kernel/entry/common.c | 25 +-
kernel/sched/core.c
From: Peter Zijlstra
Introduce task_struct::core_cookie as an opaque identifier for core
scheduling. When enabled; core scheduling will only allow matching
task to be on the core; where idle matches everything.
When task_struct::core_cookie is set (and core scheduling is enabled)
these tasks
usecase.
Tested-by: Julien Desfossez
Signed-off-by: Joel Fernandes (Google)
---
kernel/sched/core.c | 33 -
kernel/sched/fair.c | 40
kernel/sched/sched.h | 5 +
3 files changed, 65 insertions(+), 13 deletions(-)
diff
Add a generic_idle_{enter,exit} helper function to enter and exit kernel
protection when entering and exiting idle, respectively.
Tested-by: Julien Desfossez
Signed-off-by: Joel Fernandes (Google)
---
include/linux/entry-common.h | 18 ++
kernel/sched/idle.c | 11
.
Tested-by: Julien Desfossez
Signed-off-by: Joel Fernandes (Google)
---
arch/x86/include/asm/thread_info.h | 2 ++
kernel/sched/sched.h | 6 ++
2 files changed, 8 insertions(+)
diff --git a/arch/x86/include/asm/thread_info.h
b/arch/x86/include/asm/thread_info.h
index c448fcfa1b82
From: Vineeth Pillai
If there is only one long running local task and the sibling is
forced idle, it might not get a chance to run until a schedule
event happens on any cpu in the core.
So we check for this condition during a tick to see if a sibling
is starved and then give it a chance to
(Intel)
Signed-off-by: Vineeth Remanan Pillai
Signed-off-by: Julien Desfossez
Signed-off-by: Joel Fernandes (Google)
---
kernel/sched/deadline.c | 16 ++--
kernel/sched/fair.c | 32 +++-
kernel/sched/idle.c | 8
kernel/sched/rt.c
From: Peter Zijlstra
In preparation of playing games with rq->lock, abstract the thing
using an accessor.
Tested-by: Julien Desfossez
Signed-off-by: Peter Zijlstra (Intel)
Signed-off-by: Vineeth Remanan Pillai
Signed-off-by: Julien Desfossez
---
kernel/sched/core.c | 46
- Fix for 32bit build
- Aubrey Li
Aubrey Li (1):
sched: migration changes for core scheduling
Joel Fernandes (Google) (13):
sched/fair: Snapshot the min_vruntime of CPUs on force idle
arch/x86: Add a new TIF flag for untrusted tasks
kernel/entry: Add support for core-wide protection of kernel-mode
ues.
Fixed minor nit from Davidlohr.
v1->v3: minor nits.
(https://lore.kernel.org/lkml/20200719034210.2382053-1-joel@xxxxx/)
Joel Fernandes (Google) (6):
rcu/tree: Make rcu_do_batch count how many callbacks were executed
rcu/segcblist: Add counters to segcblist datastructure
rcu/trac
related to using donecbs's ->len field as a
temporary variable to save the segmented callback list's length. This cannot be
done anymore and is not needed.
Signed-off-by: Joel Fernandes (Google)
---
include/linux/rcu_segcblist.h | 2 +
kernel/rcu/rcu_segcblist.c|
from 0 is confusing and error-prone IMHO.
This commit therefore explicitly counts how many callbacks were executed in
rcu_do_batch() itself, and uses that to update the per-CPU segcb list's ->len
field, without relying on the negativity of rcl->len.
Signed-off-by: Joel Fernandes (Googl
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/rcu_segcblist.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/kernel/rcu/rcu_segcblist.c b/kernel/rcu/rcu_segcblist.c
index 2dccbd29cd3a..271d5d9d7f60 100644
--- a/kernel/rcu/rcu_segcblist.c
+++ b/kernel/rcu/rcu_segcblist.c
@@ -10,7
Memory barriers are needed when updating the full length of the
segcblist, however it is not fully clearly why one is needed before and
after. This patch therefore adds additional comments to the function
header to explain it.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu
in the respective segment.
Signed-off-by: Joel Fernandes (Google)
---
include/trace/events/rcu.h | 25 +
kernel/rcu/rcu_segcblist.c | 31 +++
kernel/rcu/rcu_segcblist.h | 5 +
kernel/rcu/tree.c | 9 +
4 files changed, 70 insertions
This memory barrier is not needed as rcu_segcblist_add_len() already
includes a memory barrier.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/tree.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 346a05506935..6c6d3c7036e6 100644
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: 53922270d21de707a1a0ffaf1e07644e77fcb8db
Gitweb:
https://git.kernel.org/tip/53922270d21de707a1a0ffaf1e07644e77fcb8db
Author:Joel Fernandes (Google)
AuthorDate:Thu, 18 Jun 2020 16:29:49 -04:00
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: 959954df0ca7da2111c3fb67a81798d15b9d
Gitweb:
https://git.kernel.org/tip/959954df0ca7da2111c3fb67a81798d15b9d
Author:Joel Fernandes (Google)
AuthorDate:Thu, 18 Jun 2020 16:29:55 -04:00
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: a7886e899fd8334a03d37e66ad10295d175725ea
Gitweb:
https://git.kernel.org/tip/a7886e899fd8334a03d37e66ad10295d175725ea
Author:Joel Fernandes (Google)
AuthorDate:Thu, 18 Jun 2020 21:36:40 -04:00
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: c30068f41a0e899f870e0158a2c69c68d738bf96
Gitweb:
https://git.kernel.org/tip/c30068f41a0e899f870e0158a2c69c68d738bf96
Author:Joel Fernandes (Google)
AuthorDate:Thu, 18 Jun 2020 21:36:39 -04:00
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: 666ca2907e6b75960ce2f0fe50afc5d8a46f296d
Gitweb:
https://git.kernel.org/tip/666ca2907e6b75960ce2f0fe50afc5d8a46f296d
Author:Joel Fernandes (Google)
AuthorDate:Fri, 07 Aug 2020 13:07:20 -04:00
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: f37599e6f06da47e49c3408afe66c5b6e83a90bd
Gitweb:
https://git.kernel.org/tip/f37599e6f06da47e49c3408afe66c5b6e83a90bd
Author:Joel Fernandes (Google)
AuthorDate:Fri, 07 Aug 2020 13:07:19 -04:00
when ready cbs were present, to when the ready callbacks were
invoked by the rcuop thread. This also further confirms that there is no
need to raise the softirq for ready cbs in the first place.
Cc: neer...@codeaurora.org
Signed-off-by: Joel Fernandes (Google)
---
v1->v2: Also cleaned up anot
l E. McKenney
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/tree.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 55d3700dd1e7..5efe0a98ea45 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -4119,7 +4119,9 @@ v
is rather incomplete.
This commit therefore continues the section by describing how RCU's
design handles CPU hotplug in a deadlock-free way.
Signed-off-by: Joel Fernandes (Google)
---
.../RCU/Design/Requirements/Requirements.rst | 30 +--
1 file changed, 28 insertions(+), 2
-time
jitter.
Passed 30 minute tests of TREE01 through TREE09 each.
Cc: neer...@codeaurora.org
Cc: fweis...@gmail.com
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/tree.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index
spending a lot of time
backtracking to the start of the latency in "perf sched script" which wastes a
lot of time.
This patch therefore adds a new column "Max delay start". Considering this,
also rename "Maximum delay at" to "Max delay end" as its easier to un
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/rcu_segcblist.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/kernel/rcu/rcu_segcblist.c b/kernel/rcu/rcu_segcblist.c
index df0f31e30947..b65ac8c85b56 100644
--- a/kernel/rcu/rcu_segcblist.c
+++ b/kernel/rcu/rcu_segcblist.c
@@ -10,7
in the respective segment.
Signed-off-by: Joel Fernandes (Google)
---
include/trace/events/rcu.h | 25 +
kernel/rcu/rcu_segcblist.c | 34 ++
kernel/rcu/rcu_segcblist.h | 5 +
kernel/rcu/tree.c | 9 +
4 files changed, 73 insertions
related to using donecbs's ->len field as a
temporary variable to save the segmented callback list's length. This cannot be
done anymore and is not needed.
Signed-off-by: Joel Fernandes (Google)
---
include/linux/rcu_segcblist.h | 2 +
kernel/rcu/rcu_segcblist.c|
from 0 is confusing and error-prone IMHO.
This commit therefore explicitly counts have many callbacks were executed in
rcu_do_batch() itself, and uses that to update the per-CPU segcb list's ->len
field, without relying on the negativity of rcl->len.
Signed-off-by: Joel Fernandes (Google)
---
2053-1-j...@joelfernandes.org/)
Joel Fernandes (Google) (4):
rcu/tree: Make rcu_do_batch count how many callbacks were executed
rcu/segcblist: Add counters to segcblist datastructure
rcu/trace: Add tracing for how segcb list changes
rcu/segcblist: Remove useless rcupdate.h include
include
from 0 is confusing and error-prone IMHO.
This commit therefore explicitly counts have many callbacks were executed in
rcu_do_batch() itself, and uses that to update the per-CPU segcb list's ->len
field, without relying on the negativity of rcl->len.
Signed-off-by: Joel Fernandes (Google)
---
ues.
Fixed minor nit from Davidlohr.
v1->v3: minor nits.
(https://lore.kernel.org/lkml/20200719034210.2382053-1-j...@joelfernandes.org/)
Joel Fernandes (Google) (5):
rcu/tree: Make rcu_do_batch count how many callbacks were executed
rcu/segcblist: Add counters to segcblist datastructure
rc
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/rcu_segcblist.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/kernel/rcu/rcu_segcblist.c b/kernel/rcu/rcu_segcblist.c
index 72b284f965aa..13f8f181521d 100644
--- a/kernel/rcu/rcu_segcblist.c
+++ b/kernel/rcu/rcu_segcblist.c
@@ -10,7
rcu_barrier() may skip queuing a callback and return too early. Fix it by
storing
state to indicate that callbacks are being invoked and the callback list should
not appear as non-empty. This is a terrible hack, however it still does not fix
TREE04.
Signed-off-by: Joel Fernandes (Google)
---
include
in the respective segment.
Signed-off-by: Joel Fernandes (Google)
---
include/trace/events/rcu.h | 25 +
kernel/rcu/rcu_segcblist.c | 34 ++
kernel/rcu/rcu_segcblist.h | 5 +
kernel/rcu/tree.c | 9 +
4 files changed, 73 insertions
related to using donecbs's ->len field as a
temporary variable to save the segmented callback list's length. This is not
needed any more.
Signed-off-by: Joel Fernandes (Google)
---
include/linux/rcu_segcblist.h | 2 +
kernel/rcu/rcu_segcblist.c|
n from 0 is confusing and error-prone IMHO.
This commit therefore explicitly counts have many callbacks were executed in
rcu_do_batch() itself, and uses that to update the per-CPU segcb list's len
field, without relying on the negativity of rcl->len.
Signed-off-by: Joel Fernandes (Google)
--
traces when segcblist counts updated.
Signed-off-by: Joel Fernandes (Google)
---
include/linux/rcu_segcblist.h | 2 +
kernel/rcu/rcu_segcblist.c| 82 +--
2 files changed, 81 insertions(+), 3 deletions(-)
diff --git a/include/linux/rcu_segcblist.h b/include
in the respective segment.
Signed-off-by: Joel Fernandes (Google)
---
include/trace/events/rcu.h | 25 +
kernel/rcu/rcu_segcblist.c | 27 +++
kernel/rcu/rcu_segcblist.h | 7 +++
kernel/rcu/tree.c | 23 +++
4 files changed, 82
rnel.org/lkml/20200719034210.2382053-1-j...@joelfernandes.org/)
Joel Fernandes (Google) (4):
rcu/segcblist: Do not depend on rcl->len to store the segcb len during
merge
rcu/tree: Make rcu_do_batch count how many callbacks were executed
rcu/segcblist: Add counters to segcblist datastructure
rcu/tr
t;len field
should be the length of the done segment and not just used as a temporarily
variable.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/rcu_segcblist.c | 8 ++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/kernel/rcu/rcu_segcblist.c b/kernel/rcu/rcu_segcblist.c
logic if smt_mask changes between the loops.
Reported-by: Joel Fernandes (Google)
Signed-off-by: Vineeth Pillai
Signed-off-by: Joel Fernandes (Google)
---
kernel/sched/core.c | 22 +-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/kernel/sched/core.c b/kernel
From: Vineeth Pillai
Hotplug fixes to core-scheduling require a new cpumask iterator which iterates
through all online cpus in both the given cpumasks. This patch introduces it.
Signed-off-by: Vineeth Pillai
Signed-off-by: Joel Fernandes (Google)
---
include/linux/cpumask.h | 42
Currently only RCU hooks for idle entry/exit are called. In later
patches, kernel-entry protection functionality will be added.
Signed-off-by: Joel Fernandes (Google)
---
include/linux/entry-common.h | 16
kernel/sched/idle.c | 17 +
2 files changed, 25
.
Signed-off-by: Joel Fernandes (Google)
---
arch/x86/include/asm/thread_info.h | 2 ++
kernel/sched/sched.h | 6 ++
2 files changed, 8 insertions(+)
diff --git a/arch/x86/include/asm/thread_info.h
b/arch/x86/include/asm/thread_info.h
index 267701ae3d86..42e63969acb3 100644
--- a/arch
From: Vineeth Pillai
Hotplug fixes to core-scheduling require a new bitops API.
Introduce a new API find_next_or_bit() which returns the bit number of
the next set bit in OR-ed bit masks of the given bit masks.
Signed-off-by: Vineeth Pillai
Signed-off-by: Joel Fernandes (Google)
---
include
core_pick_seq per run-queue.
Signed-off-by: Vineeth Pillai
Signed-off-by: Joel Fernandes (Google)
---
kernel/sched/core.c | 19 ++-
kernel/sched/sched.h | 2 +-
2 files changed, 11 insertions(+), 10 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 3e9df8221c62
From: Vineeth Pillai
Similar to how user to kernel mode transitions are protected in earlier
patches, protect the entry into kernel from guest mode as well.
Signed-off-by: Joel Fernandes (Google)
---
arch/x86/kvm/x86.c| 3 +++
include/linux/entry-kvm.h | 12
kernel/entry
P1()
{
int r1;
int r2 = 0;
r1 = READ_ONCE(flag);
if (r1)
r2 = READ_ONCE(buf);
}
Cc: paul...@kernel.org
Signed-off-by: Joel Fernandes (Google)
---
include/linux/irq_work.h | 1 +
kernel/irq_work.c|
o worse than smtoff.
Also a modified rcutorture was used to heavily stress the kernel to make sure
there is not crash or instability.
Joel Fernandes (Google) (5):
irq_work: Add support to detect if work is pending
entry/idle: Add a common function for activites during idle entry/exit
arch/x86: Add a
Make use of the generic_idle_{enter,exit} helper function added in
earlier patches to enter and exit kernel protection.
On exiting idle, protection will be reenabled.
Signed-off-by: Joel Fernandes (Google)
---
include/linux/entry-common.h | 6 ++
1 file changed, 6 insertions(+)
diff --git
-by: Joel Fernandes (Google)
---
include/linux/sched.h | 12 +++
kernel/entry/common.c | 88 +++---
kernel/sched/core.c | 205 ++
kernel/sched/sched.h | 3 +
4 files changed, 277 insertions(+), 31 deletions(-)
diff --git a/include/linux
From: Vineeth Pillai
During a CPU hotplug event, schedule would be called with the hotplugged CPU
not in the cpumask. So use for_each_cpu(_wrap)_or to include the current cpu in
the task pick loop.
Signed-off-by: Vineeth Pillai
Co-developed-by: Joel Fernandes (Google)
Signed-off-by: Joel
e once it is set.
Signed-off-by: Vineeth Pillai
Signed-off-by: Joel Fernandes (Google)
---
kernel/sched/core.c | 28
1 file changed, 16 insertions(+), 12 deletions(-)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 5da5b2317b21..464493f3a759
synchronize callback. If anything locks up,
we expect stall warnings and/or other splats.
Obviously, we need not test for rcu_barrier from a notifier, since those
are not allowed from notifiers. This fact is already detailed in the
documentation as well.
Signed-off-by: Joel Fernandes (Google
At least since v4.19, the FQS loop no longer reports quiescent states
for offline CPUs unless it is an emergency.
This commit therefore fixes the comment in rcu_gp_init() to match the
current code.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/tree.c | 8 +---
1 file changed, 5
FQS loop scan happens and bring the problem to
everyone's attention.
Light testing with TREE03 and hotplug shows no warnings. Converted the
warning as well to WARN_ON_ONCE() to reduce log spam.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/tree.c | 22 ++
1 file changed,
is rather incomplete.
This commit therefore continues the section by describing how RCU's
design handles CPU hotplug in a deadlock-free way.
Signed-off-by: Joel Fernandes (Google)
---
.../RCU/Design/Requirements/Requirements.rst | 22 +++
1 file changed, 22 insertions(+)
This series improves/adds to RCU's warnings about CPU hotplug and adds
documentation and testing.
v3->v4: Minor cleanups.
Joel Fernandes (Google) (5):
rcu/tree: Add a warning if CPU being onlined did not report QS already
rcu/tree: Clarify comments about FQS loop reporting quiescent states
l E. McKenney
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/tree.c | 9 -
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 65e1b5e92319..a49fa3b60faa 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -3996,7 +3996
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: 653ed64b01dc5989f8f579d0038e987476c2c023
Gitweb:
https://git.kernel.org/tip/653ed64b01dc5989f8f579d0038e987476c2c023
Author:Joel Fernandes (Google)
AuthorDate:Mon, 25 May 2020 00:36:48 -04:00
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: 4d2919411867848fab78c7cb13139e17ad8b85bc
Gitweb:
https://git.kernel.org/tip/4d2919411867848fab78c7cb13139e17ad8b85bc
Author:Joel Fernandes (Google)
AuthorDate:Mon, 25 May 2020 23:47:46 +02:00
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: 8ac88f7177c75bf9b7b8c29a8054115e1c712baf
Gitweb:
https://git.kernel.org/tip/8ac88f7177c75bf9b7b8c29a8054115e1c712baf
Author:Joel Fernandes (Google)
AuthorDate:Mon, 25 May 2020 23:47:45 +02:00
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: 7e866460cc18797b3a59360f5f8c444598a21729
Gitweb:
https://git.kernel.org/tip/7e866460cc18797b3a59360f5f8c444598a21729
Author:Joel Fernandes (Google)
AuthorDate:Mon, 25 May 2020 00:36:47 -04:00
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: 446044eb9c9c335d3ae1be4665193ab43ebb284e
Gitweb:
https://git.kernel.org/tip/446044eb9c9c335d3ae1be4665193ab43ebb284e
Author:Joel Fernandes (Google)
AuthorDate:Mon, 25 May 2020 23:47:48 +02:00
and hotplug parameters.
Cc: Paul E. McKenney
Cc: Neeraj Upadhyay
Suggested-by: Paul E. McKenney
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/tree.c | 14 +-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index
ows no warnings.
Convert the warning as well to WARN_ON_ONCE() to reduce log spam.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/tree.c | 10 ++
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index a621932cc385..39bdd744ba97 100
At least since v4.19, the FQS loop no longer reports quiescent states
unless it is a dire situation where an offlined CPU failed to report
a quiescent state. Let us clarify the comment in rcu_gp_init() inorder
to keep the comment current.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu
At least since v4.19, the FQS loop no longer reports quiescent states
unless it is a dire situation where an offlined CPU failed to report
a quiescent state. Let us clarify the comment in rcu_gp_init() inorder
to keep the comment current.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu
and hotplug parameters.
Cc: Paul E. McKenney
Cc: Neeraj Upadhyay
Suggested-by: Paul E. McKenney
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/tree.c | 14 +-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index
Fernandes (Google)
---
v1->v2: minor nits.
include/linux/rcu_segcblist.h | 2 +
kernel/rcu/rcu_segcblist.c| 90 ---
2 files changed, 86 insertions(+), 6 deletions(-)
diff --git a/include/linux/rcu_segcblist.h b/include/linux/rcu_segcblist.h
index b36afe7b2
.
Signed-off-by: Joel Fernandes (Google)
---
include/linux/rcu_segcblist.h | 2 +
kernel/rcu/rcu_segcblist.c| 96 +++
2 files changed, 89 insertions(+), 9 deletions(-)
diff --git a/include/linux/rcu_segcblist.h b/include/linux/rcu_segcblist.h
index b36afe7b22c9
-by: Joel Fernandes (Google)
---
include/trace/events/rcu.h | 12
kernel/rcu/tree.c | 32
kernel/rcu/tree_plugin.h | 4 ++--
3 files changed, 26 insertions(+), 22 deletions(-)
diff --git a/include/trace/events/rcu.h b/include/trace/events
the negative numbering directly.
Cc: ure...@gmail.com
Signed-off-by: Joel Fernandes (Google)
---
include/trace/events/rcu.h | 54 +++---
1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h
index
instead as it allows one to
reason about how the acceleration works.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/tree.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 9ef68dd249e1d..d0988a1c1079d 100644
--- a/kernel
the negative numbering directly.
Signed-off-by: Joel Fernandes (Google)
---
include/trace/events/rcu.h | 62 --
1 file changed, 32 insertions(+), 30 deletions(-)
diff --git a/include/trace/events/rcu.h b/include/trace/events/rcu.h
index cb5363564f7ed..bc24862790623
This is useful to check for any improvements or degradation related to
number of GP kthread wakeups during testing.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/Kconfig.debug | 1 +
kernel/rcu/rcu.h | 2 ++
kernel/rcu/rcutorture.c | 23 ++-
kernel/rcu
The gp_seq value can come from either of rdp, rsp or rnp.
Only the rsp is the global source of truth (most accurate GP info). The
rnp can be off by ~1 and the rdp can be off by way more. Add some more
context to traces to clarify where it comes from.
Signed-off-by: Joel Fernandes (Google
gp_seq instead as it allows one to
reason about how the acceleration works.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/tree.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index 81df1b837dd9d..c3bae7a83d792 100644
--- a/kernel
Track how the segcb list changes before/after acceleration, during
queuing and during dequeuing.
This has proved useful to discover an optimization to avoid unwanted GP
requests when there are no callbacks accelerated.
Signed-off-by: Joel Fernandes (Google)
---
include/trace/events/rcu.h | 25
Add 2 things to get visiblity around number of grace periods.
1. Add number of GPs to End-state print.
2. Just like End-state, add GP state to Start-state.
This helps determine how many GPs elapsed during a run of rcutorture and
what the initial state was.
Signed-off-by: Joel Fernandes (Google
104 |
++-+-+-+-+
| 10 | 66 | 82 | 98 | 119 |
++-+-+-+-+
| 11 | 52 | 82 | 83 | 117 |
++-+-+-+-+
Cc: ure...@gmail.com
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/rcu_segcblist.c
can compile.
Fixes: e2d1e2aec572a ("sched/headers: Move various ABI definitions to
"
Signed-off-by: Joel Fernandes (Google)
---
include/uapi/linux/sched/types.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/linux/sched/types.h b/include/uapi/linux/sched/typ
7 33
[3.347133] 18 34
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/Kconfig.debug | 19 ++
kernel/rcu/Makefile | 1 +
kernel/rcu/refperf.c | 558 +++
3 files changed, 578 insertions(+)
create mode 100644 kernel/rcu/refperf.c
wait_event() already retries if the condition for the wake up is not
satisifed after wake up. Remove them from the rcuperf test.
Signed-off-by: Joel Fernandes (Google)
---
kernel/rcu/rcuperf.c | 14 --
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/kernel/rcu
with __KERNEL__ so
that userspace and the kernel can both compile.
Signed-off-by: Joel Fernandes (Google)
---
v1->v2:
With the chance that libc needs resolving something, I'm resending with
libc-alpha added as suggested by Christian, and minor commit message fixes.
include/uapi/linux/sched/types.h
compile.
Signed-off-by: Joel Fernandes (Google)
---
include/uapi/linux/sched/types.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/uapi/linux/sched/types.h b/include/uapi/linux/sched/types.h
index c852153ddb0d3..1f10d935a63fe 100644
--- a/include/uapi/linux/sched/types.h
+++ b
] watchdog: BUG: soft lockup - CPU#0 stuck for 11s!
[kworker/0:10:965]
Cc: vpillai
Cc: Aaron Lu
Cc: Aubrey Li
Cc: pet...@infradead.org
Cc: paul...@kernel.org
Signed-off-by: Joel Fernandes (Google)
Change-Id: I1a4bf0cd1426b3c21ad5de44719813ad4ee5805e
---
kernel/sched/core.c | 4 ++--
1 file
: Paul E. McKenney
Co-developed-by: Vineeth Pillai
Signed-off-by: Vineeth Pillai
Signed-off-by: Joel Fernandes (Google)
---
If you like some pictures of the cases handled by this patch, please
see the OSPM slide deck (the below link jumps straight to relevant
slides - about 6-7 of them in total
-tagged, allow the CGroup interface to override
the task's tag.
ChromeOS will use core-scheduling to securely enable hyperthreading.
This cuts down the keypress latency in Google docs from 150ms to 50ms
while improving the camera streaming frame rate by ~3%.
Signed-off-by: Joel Fernandes (Google
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: a6a82ce18ba443186545d3fefbee8b9419a859dc
Gitweb:
https://git.kernel.org/tip/a6a82ce18ba443186545d3fefbee8b9419a859dc
Author:Joel Fernandes (Google)
AuthorDate:Mon, 16 Mar 2020 12:32:28 -04:00
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: 9154244c1ab6c9db4f1f25ac8f73bd46dba64287
Gitweb:
https://git.kernel.org/tip/9154244c1ab6c9db4f1f25ac8f73bd46dba64287
Author:Joel Fernandes (Google)
AuthorDate:Mon, 16 Mar 2020 12:32:27 -04:00
The following commit has been merged into the core/rcu branch of tip:
Commit-ID: f87dc808009ac86c790031627698ef1a34c31e25
Gitweb:
https://git.kernel.org/tip/f87dc808009ac86c790031627698ef1a34c31e25
Author:Joel Fernandes (Google)
AuthorDate:Mon, 16 Mar 2020 12:32:26 -04:00
Signed-off-by: Joel Fernandes (Google)
---
If you like some pictures of the cases handled by this patch, please
see the OSPM slide deck (the below link jumps straight to relevant
slides - about 6-7 of them in total): https://bit.ly/2zvzxWk
TODO:
1. Any optimziations for VM usecases (can we do
101 - 200 of 555 matches
Mail list logo