mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] rcutorture: Make tasks-tracing support duplicate call testing
@ 2026-10-23  9:40 Zqiang
  0 siblings, 0 replies; only message in thread
From: Zqiang @ 2026-10-23  9:40 UTC (permalink / raw)
  To: paulmck, frederic, neeraj.upadhyay, joelagnelf, urezki, boqun
  Cc: qiang.zhang, rcu, linux-kernel

Currently, Tasks-tracing has been reimplemented by SRCU-fast, it supports
the detection of duplicate calls with CONFIG_DEBUG_OBJECTS_RCU_HEAD=y.
This commit therefore set tasks_tracing_ops.debug_objects to 1, enabling
rcutorture's duplicate-call test for the tasks-tracing flavor.

Signed-off-by: Zqiang <qiang.zhang@linux.dev>
---

Simple output from rcutorture:

[    4.120772][    T1] call_srcu(): Leaked duplicate callback
[    4.120776][    T1] WARNING: kernel/rcu/srcutree.c:1516 at __call_srcu+0x463/0x580, CPU#7: swapper/0/1
[    4.122665][    T1] Modules linked in:
[    4.123026][    T1] CPU: 7 UID: 0 PID: 1 Comm: swapper/0 Tainted: G        W           7.3.0-rc1+ #110 PREEMPT(full)  8fac67ca5e4b530c23977b2e660a83979ea107db
[    4.124328][    T1] Tainted: [W]=WARN
[    4.124687][    T1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
[    4.125583][    T1] RIP: 0010:__call_srcu+0x463/0x580
[    4.126056][    T1] Code: 00 00 5b 41 5c 41 5d 41 5e 41 5f 5d e9 16 99 9f 03 80 3c 02 00 0f 85 e8 00 00 00 49 c7 46 08 70 cf 4e b4 48 8d 3d ad da d5 06 <67> 48 0f b9 3a eb a6 48 8d 3d af da d5 06 67 48 0f b9 3a eb 98 0f
[    4.127823][    T1] RSP: 0000:ffff888100e87a78 EFLAGS: 00010246
[    4.128389][    T1] RAX: dffffc0000000000 RBX: 1ffff110201d0f54 RCX: 0000000000000001
[    4.129111][    T1] RDX: 1ffff110201d0f8f RSI: ffffffffb8ae6d60 RDI: ffffffffbb255590
[    4.129842][    T1] RBP: ffff888100e87b28 R08: ffff888100e87c70 R09: ffffffffb818a820
[    4.130572][    T1] R10: fffffbfff76449ac R11: ffffffffbb224d67 R12: 0000000000000001
[    4.131296][    T1] R13: 00000000ffffffea R14: ffff888100e87c70 R15: ffffffffba4c4220
[    4.132061][    T1] FS:  0000000000000000(0000) GS:ffff888239af2000(0000) knlGS:0000000000000000
[    4.132903][    T1] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    4.133536][    T1] CR2: 0000000000000000 CR3: 000000008a8ea000 CR4: 00000000000026f0
[    4.134283][    T1] Call Trace:
[    4.134607][    T1]  <TASK>
[    4.134898][    T1]  ? __pfx_rcu_torture_err_cb+0x10/0x10
[    4.135425][    T1]  ? __pfx___call_srcu+0x10/0x10
[    4.135870][    T1]  ? __pfx__printk+0x10/0x10
[    4.136301][    T1]  call_srcu+0x17/0x20
[    4.136685][    T1]  call_rcu_tasks_trace+0x1a/0x20
[    4.137143][    T1]  rcu_torture_init+0x3033/0x3800
[    4.137617][    T1]  ? __kvm_handle_async_pf+0x21/0xb0
[    4.138094][    T1]  ? __pfx_native_sched_clock+0x1/0x10
[    4.138608][    T1]  ? __pfx_rcu_torture_init+0x10/0x10
[    4.139109][    T1]  ? add_device_randomness+0xcb/0x110
[    4.139637][    T1]  ? __this_cpu_preempt_check+0x17/0x20
[    4.140160][    T1]  ? lockdep_hardirqs_on+0xde/0x160
[    4.140653][    T1]  ? _raw_spin_unlock_irqrestore+0x6e/0x80
[    4.141211][    T1]  ? _raw_spin_unlock_irqrestore+0x53/0x80
[    4.141772][    T1]  ? __pfx_rcu_torture_leak_cb+0x10/0x10
[    4.142291][    T1]  ? add_device_randomness+0xcb/0x110
[    4.142828][    T1]  ? __pfx_add_device_randomness+0x10/0x10
[    4.143397][    T1]  ? __pfx_srcu_leak_callback+0x10/0x10
[    4.143937][    T1]  ? __pfx_rcu_torture_init+0x10/0x10
[    4.144440][    T1]  do_one_initcall+0xd9/0x620
[    4.144878][    T1]  ? __pfx_do_one_initcall+0x10/0x10
[    4.145390][    T1]  ? __kasan_kmalloc+0x86/0xa0
[    4.145963][    T1]  ? __kmalloc_noprof+0x2c9/0x610
[    4.146576][    T1]  kernel_init_freeable+0xb00/0x11a0
[    4.147214][    T1]  ? __pfx_kernel_init+0x10/0x10
[    4.147804][    T1]  kernel_init+0x28/0x170
[    4.148308][    T1]  ret_from_fork+0x7be/0xaf0
[    4.148880][    T1]  ? __pfx_ret_from_fork+0x10/0x10
[    4.149512][    T1]  ? __kasan_check_read+0x15/0x20
[    4.150111][    T1]  ? __switch_to+0x1b0/0xeb0
[    4.150778][    T1]  ? __switch_to_asm+0x39/0x70
[    4.151324][    T1]  ? __pfx_kernel_init+0x10/0x10
[    4.151910][    T1]  ret_from_fork_asm+0x1a/0x30
 
 kernel/rcu/rcutorture.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
index 1bbf8192786a..c0c8fbdb5508 100644
--- a/kernel/rcu/rcutorture.c
+++ b/kernel/rcu/rcutorture.c
@@ -1313,6 +1313,7 @@ static struct rcu_torture_ops tasks_tracing_ops = {
 	.irq_capable	= 1,
 	.slow_gps	= 1,
 	.nmi_capable	= 1,
+	.debug_objects	= 1,
 	.name		= "tasks-tracing"
 };
 
-- 
2.17.1


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-10-23  9:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-23  9:40 [PATCH] rcutorture: Make tasks-tracing support duplicate call testing Zqiang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®