All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/10] rcu/x86: Use per-cpu rcu preempt count
@ 2024-03-28  7:53 Lai Jiangshan
  2024-03-28  7:53 ` [PATCH 01/10] lib: Use rcu_preempt_depth() to replace current->rcu_read_lock_nesting Lai Jiangshan
                   ` (9 more replies)
  0 siblings, 10 replies; 23+ messages in thread
From: Lai Jiangshan @ 2024-03-28  7:53 UTC (permalink / raw)
  To: linux-kernel
  Cc: rcu, x86, Lai Jiangshan, Paul E. McKenney, Peter Zijlstra,
	Frederic Weisbecker

From: Lai Jiangshan <jiangshan.ljs@antgroup.com>

X86 can access percpu data in a single instruction.

Use per-cpu rcu preempt count and make it able to be inlined.

patch 1-7: prepare
patch 8-10: implement PCPU_RCU_PREEMPT_COUNT

Cc: "Paul E. McKenney" <paulmck@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Frederic Weisbecker <frederic@kernel.org>

Lai Jiangshan (10):
  lib: Use rcu_preempt_depth() to replace current->rcu_read_lock_nesting
  rcu: Move rcu_preempt_depth_set() to rcupdate.h
  rcu: Reorder tree_exp.h after tree_plugin.h
  rcu: Add macros set_rcu_preempt_special() and
    clear_rcu_preempt_special()
  rcu: Make rcu_read_unlock_special() global
  rcu: Rename marco __LINUX_RCU_H to __KERNEL_RCU_H
  sched/core: Add rcu_preempt_switch()
  rcu: Implement PCPU_RCU_PREEMPT_COUNT framework
  x86/rcu: Add rcu_preempt_count
  x86/rcu: Add THUNK rcu_read_unlock_special_thunk

 arch/x86/Kconfig                   |   1 +
 arch/x86/entry/thunk_64.S          |   5 ++
 arch/x86/include/asm/current.h     |   3 +
 arch/x86/include/asm/rcu_preempt.h | 109 +++++++++++++++++++++++++++++
 arch/x86/kernel/cpu/common.c       |   7 +-
 include/linux/rcupdate.h           |  36 ++++++++++
 kernel/rcu/Kconfig                 |   8 +++
 kernel/rcu/rcu.h                   |  15 +++-
 kernel/rcu/tree.c                  |   2 +-
 kernel/rcu/tree_exp.h              |   2 +-
 kernel/rcu/tree_plugin.h           |  41 +++++++----
 kernel/sched/core.c                |   2 +
 lib/locking-selftest.c             |   6 +-
 13 files changed, 211 insertions(+), 26 deletions(-)
 create mode 100644 arch/x86/include/asm/rcu_preempt.h

-- 
2.19.1.6.gb485710b


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2024-04-23 11:33 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-28  7:53 [PATCH 00/10] rcu/x86: Use per-cpu rcu preempt count Lai Jiangshan
2024-03-28  7:53 ` [PATCH 01/10] lib: Use rcu_preempt_depth() to replace current->rcu_read_lock_nesting Lai Jiangshan
2024-03-28  7:53 ` [PATCH 02/10] rcu: Move rcu_preempt_depth_set() to rcupdate.h Lai Jiangshan
2024-03-31 11:09   ` Joel Fernandes
2024-03-31 16:16     ` Lai Jiangshan
2024-04-01  2:27       ` Joel Fernandes
2024-04-01 11:40       ` Alan Huang
2024-04-01 11:57         ` Alan Huang
2024-03-28  7:53 ` [PATCH 03/10] rcu: Reorder tree_exp.h after tree_plugin.h Lai Jiangshan
2024-03-28  7:53 ` [PATCH 04/10] rcu: Add macros set_rcu_preempt_special() and clear_rcu_preempt_special() Lai Jiangshan
2024-03-28  7:53 ` [PATCH 05/10] rcu: Make rcu_read_unlock_special() global Lai Jiangshan
2024-03-28  7:53 ` [PATCH 06/10] rcu: Rename marco __LINUX_RCU_H to __KERNEL_RCU_H Lai Jiangshan
2024-03-28  7:53 ` [PATCH 07/10] sched/core: Add rcu_preempt_switch() Lai Jiangshan
2024-03-28  7:53 ` [PATCH 08/10] rcu: Implement PCPU_RCU_PREEMPT_COUNT framework Lai Jiangshan
2024-04-22 10:41   ` Frederic Weisbecker
2024-03-28  7:53 ` [PATCH 09/10] x86/rcu: Add rcu_preempt_count Lai Jiangshan
2024-03-29  7:37   ` kernel test robot
2024-03-29  7:48   ` kernel test robot
2024-04-22 11:05   ` Frederic Weisbecker
2024-04-23  9:02     ` Lai Jiangshan
2024-04-23 11:33       ` Frederic Weisbecker
2024-03-28  7:53 ` [PATCH 10/10] x86/rcu: Add THUNK rcu_read_unlock_special_thunk Lai Jiangshan
2024-03-29 14:46   ` kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.