All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC v2 0/24] Simple hazard-pointer implementation and torture tests
@ 2026-07-16  0:18 Paul E. McKenney
  2026-07-16  0:17 ` [PATCH RFC v2 01/24] hazptr: Implement Hazard Pointers Paul E. McKenney
                   ` (23 more replies)
  0 siblings, 24 replies; 25+ messages in thread
From: Paul E. McKenney @ 2026-07-16  0:18 UTC (permalink / raw)
  To: rcu; +Cc: linux-kernel, kernel-team, rostedt

Hello!

This series contains a simple hazard-pointer implementation and associated
torture tests:

1.	Implement Hazard Pointers, courtesy of Mathieu Desnoyers.

2.	Add refscale test, courtesy of Mathieu Desnoyers.

3.	Add a hazptrtorture.c torture test.

4.	Add testing of on-stack hazptr_ctx structures.

5.	Add microsecond-scale sleep in readers.

6.	Enable system-independent CPU overcommit.

7.	Add a stutter_will_wait() function.

8.	Use mnemonic local variables for context information.

9.	Split hazptr_torture_reader_tail() from hazptr_torture_reader().

10.	Add kthread to release deferred hazard pointers.

11.	Defer release of hazard pointers.

12.	Add irq_acquire to acquire hazptr from irq.

13.	Use task_state_to_char() for task-state reporting, courtesy of
	Kunwu Chan.

14.	Pass hazptr_pending to hazptr_torture_reader_tail().

15.	Add the ability to disable the writer kthread.

16.	Add irq_release to release hazptr from irq.

17.	Accumulate operation statistics.

18.	Add hazptrtorture module parameters.

19.	Permit detaching hazard pointers from contexts, courtesy of
	Mathieu Desnoyers.

20.	Detach deferred and IPIed hazard pointers, courtesy of Mathieu
	Desnoyers.

21.	Introduce CONFIG_HAZPTR_DEBUG misuse detection, courtesy of
	Mathieu Desnoyers.

22.	Fix hazptr ownership issue, courtesy of Mathieu Desnoyers.

23.	Enable CONFIG_HAZPTR_DEBUG.

24.	Upgrade kernel-doc headers.

Changes since RFC v1:

o	Added a hazptr_detach() function to allow hazptr_acquire()
	and the corresponding hazptr_release() to be in different
	execution contexts.

o	Torture testing of execution-context migration.

						Thanx, Paul

------------------------------------------------------------------------

 b/Documentation/admin-guide/kernel-parameters.txt                    |   96 +
 b/include/linux/hazptr.h                                             |  197 ++
 b/include/linux/torture.h                                            |    2 
 b/init/main.c                                                        |    2 
 b/kernel/Makefile                                                    |    2 
 b/kernel/hazptr.c                                                    |  242 +++
 b/kernel/rcu/Kconfig.debug                                           |   12 
 b/kernel/rcu/Makefile                                                |    1 
 b/kernel/rcu/hazptrtorture.c                                         |  682 ++++++++++
 b/kernel/rcu/refscale.c                                              |   43 
 b/kernel/rcu/update.c                                                |    3 
 b/kernel/sched/core.c                                                |    2 
 b/kernel/torture.c                                                   |   23 
 b/tools/testing/selftests/rcutorture/bin/kvm.sh                      |    6 
 b/tools/testing/selftests/rcutorture/configs/hazptr/CFLIST           |    2 
 b/tools/testing/selftests/rcutorture/configs/hazptr/CFcommon         |    2 
 b/tools/testing/selftests/rcutorture/configs/hazptr/NOPREEMPT        |   17 
 b/tools/testing/selftests/rcutorture/configs/hazptr/NOPREEMPT.boot   |    1 
 b/tools/testing/selftests/rcutorture/configs/hazptr/PREEMPT          |   14 
 b/tools/testing/selftests/rcutorture/configs/hazptr/ver_functions.sh |   40 
 include/linux/hazptr.h                                               |  168 ++
 include/linux/torture.h                                              |    4 
 kernel/rcu/Kconfig.debug                                             |    9 
 kernel/rcu/hazptrtorture.c                                           |  422 +++++-
 kernel/torture.c                                                     |   15 
 tools/testing/selftests/rcutorture/configs/hazptr/NOPREEMPT          |    2 
 tools/testing/selftests/rcutorture/configs/hazptr/PREEMPT            |    2 
 27 files changed, 1897 insertions(+), 114 deletions(-)

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

end of thread, other threads:[~2026-07-16  0:18 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-16  0:18 [PATCH RFC v2 0/24] Simple hazard-pointer implementation and torture tests Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 01/24] hazptr: Implement Hazard Pointers Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 02/24] hazptr: Add refscale test Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 03/24] torture: Add a hazptrtorture.c torture test Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 04/24] hazptrtorture: Add testing of on-stack hazptr_ctx structures Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 05/24] hazptrtorture: Add microsecond-scale sleep in readers Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 06/24] hazptrtorture: Enable system-independent CPU overcommit Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 07/24] torture: Add a stutter_will_wait() function Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 08/24] hazptrtorture: Use mnemonic local variables for context information Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 09/24] hazptrtorture: Split hazptr_torture_reader_tail() from hazptr_torture_reader() Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 10/24] hazptrtorture: Add kthread to release deferred hazard pointers Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 11/24] hazptrtorture: Defer release of " Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 12/24] hazptrtorture: Add irq_acquire to acquire hazptr from irq Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 13/24] hazptrtorture: Use task_state_to_char() for task-state reporting Paul E. McKenney
2026-07-16  0:17 ` [PATCH RFC v2 14/24] hazptrtorture: Pass hazptr_pending to hazptr_torture_reader_tail() Paul E. McKenney
2026-07-16  0:18 ` [PATCH RFC v2 15/24] hazptrtorture: Add the ability to disable the writer kthread Paul E. McKenney
2026-07-16  0:18 ` [PATCH RFC v2 16/24] hazptrtorture: Add irq_release to release hazptr from irq Paul E. McKenney
2026-07-16  0:18 ` [PATCH RFC v2 17/24] hazptrtorture: Accumulate operation statistics Paul E. McKenney
2026-07-16  0:18 ` [PATCH RFC v2 18/24] doc: Add hazptrtorture module parameters Paul E. McKenney
2026-07-16  0:18 ` [PATCH RFC v2 19/24] hazptr: Permit detaching hazard pointers from contexts Paul E. McKenney
2026-07-16  0:18 ` [PATCH RFC v2 20/24] hazptrtorture: Detach deferred and IPIed hazard pointers Paul E. McKenney
2026-07-16  0:18 ` [PATCH RFC v2 21/24] hazptr: Introduce CONFIG_HAZPTR_DEBUG misuse detection Paul E. McKenney
2026-07-16  0:18 ` [PATCH RFC v2 22/24] hazptrtorture: Fix hazptr ownership issue Paul E. McKenney
2026-07-16  0:18 ` [PATCH RFC v2 23/24] hazptrtorture: Enable CONFIG_HAZPTR_DEBUG Paul E. McKenney
2026-07-16  0:18 ` [PATCH RFC v2 24/24] hazptr: Upgrade kernel-doc headers Paul E. McKenney

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.