Qiuxu Zhuo
b8a6ba524d
rcu/rcuscale: Stop kfree_scale_thread thread(s) after unloading rcuscale
[ Upstream commit 23fc8df26d ]
Running the 'kfree_rcu_test' test case [1] results in a splat [2].
The root cause is the kfree_scale_thread thread(s) continue running
after unloading the rcuscale module. This commit fixes that isue by
invoking kfree_scale_cleanup() from rcu_scale_cleanup() when removing
the rcuscale module.
[1] modprobe rcuscale kfree_rcu_test=1
// After some time
rmmod rcuscale
rmmod torture
[2] BUG: unable to handle page fault for address: ffffffffc0601a87
#PF: supervisor instruction fetch in kernel mode
#PF: error_code(0x0010) - not-present page
PGD 11de4f067 P4D 11de4f067 PUD 11de51067 PMD 112f4d067 PTE 0
Oops: 0010 [#1] PREEMPT SMP NOPTI
CPU: 1 PID: 1798 Comm: kfree_scale_thr Not tainted 6.3.0-rc1-rcu+ #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 0.0.0 02/06/2015
RIP: 0010:0xffffffffc0601a87
Code: Unable to access opcode bytes at 0xffffffffc0601a5d.
RSP: 0018:ffffb25bc2e57e18 EFLAGS: 00010297
RAX: 0000000000000000 RBX: ffffffffc061f0b6 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff962fd0de RDI: ffffffff962fd0de
RBP: ffffb25bc2e57ea8 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000001 R11: 0000000000000001 R12: 0000000000000000
R13: 0000000000000000 R14: 000000000000000a R15: 00000000001c1dbe
FS: 0000000000000000(0000) GS:ffff921fa2200000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffffffc0601a5d CR3: 000000011de4c006 CR4: 0000000000370ee0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
? kvfree_call_rcu+0xf0/0x3a0
? kthread+0xf3/0x120
? kthread_complete_and_exit+0x20/0x20
? ret_from_fork+0x1f/0x30
</TASK>
Modules linked in: rfkill sunrpc ... [last unloaded: torture]
CR2: ffffffffc0601a87
---[ end trace 0000000000000000 ]---
Fixes: e6e78b004f ("rcuperf: Add kfree_rcu() performance Tests")
Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
Reviewed-by: Joel Fernandes (Google) <joel@joelfernandes.org>
Signed-off-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-07-19 16:21:02 +02:00
..
2023-06-28 11:12:33 +02:00
2023-06-28 11:12:25 +02:00
2022-09-28 09:02:20 +02:00
2022-09-26 19:46:18 -07:00
2023-05-11 23:03:35 +09:00
2023-03-30 12:49:13 +02:00
2023-05-11 23:03:31 +09:00
2023-01-04 11:28:58 +01:00
2022-12-31 13:33:11 +01:00
2023-05-30 14:03:22 +01:00
2023-05-11 23:03:40 +09:00
2022-10-10 11:36:19 -07:00
2023-05-17 11:53:57 +02:00
2023-02-01 08:34:37 +01:00
2023-05-11 23:03:38 +09:00
2023-03-11 13:55:32 +01:00
2023-07-19 16:21:02 +02:00
2023-05-11 23:03:32 +09:00
2023-07-19 16:20:59 +02:00
2023-06-14 11:15:22 +02:00
2022-12-31 13:32:58 +01:00
2022-02-03 11:20:34 -08:00
2022-08-22 18:50:06 -04:00
2022-04-25 14:37:28 +02:00
2022-09-01 17:39:30 -04:00
2022-08-29 19:47:03 -04:00
2022-09-07 11:30:15 -04:00
2022-01-11 13:08:21 -08:00
2022-10-04 11:05:43 -07:00
2022-09-26 19:46:09 -07:00
2022-03-09 10:32:06 -08:00
2022-09-26 10:13:13 -07:00
2023-04-06 12:10:40 +02:00
2023-03-10 09:33:45 +01:00
2022-07-05 13:32:59 -07:00
2022-12-31 13:31:59 +01:00
2022-08-28 14:02:44 -07:00
2022-03-15 10:32:44 +01:00
2022-09-26 19:46:07 -07:00
2023-03-10 09:33:45 +01:00
2022-07-05 13:32:59 -07:00
2023-03-11 13:55:39 +01:00
2023-06-14 11:15:16 +02:00
2022-09-07 21:53:50 +02:00
2022-09-29 04:40:15 +09:00
2022-07-15 18:21:49 +00:00
2022-09-30 16:50:39 +02:00
2022-04-15 14:49:55 -07:00
2022-06-24 09:48:55 +02:00
2022-07-17 17:31:39 -07:00
2022-10-03 17:11:07 -07:00
2022-03-31 10:36:55 +02:00
2022-10-03 14:03:23 -07:00
2022-09-11 21:55:08 -07:00
2023-06-21 16:00:55 +02:00
2022-09-11 21:55:06 -07:00
2022-09-11 21:55:06 -07:00
2023-05-11 23:03:02 +09:00
2023-03-10 09:34:27 +01:00
2022-09-11 21:55:06 -07:00
2022-10-09 16:01:59 -07:00
2022-09-11 21:55:12 -07:00
2022-12-31 13:33:08 +01:00
2022-05-19 19:30:30 +02:00
2022-09-13 10:38:43 -07:00
2022-12-31 13:32:34 +01:00
2023-03-10 09:34:25 +01:00
2021-12-28 11:26:18 +01:00
2023-03-10 09:32:52 +01:00
2022-06-29 13:07:16 +02:00
2022-09-11 21:55:12 -07:00
2022-09-07 21:53:50 +02:00
2022-10-04 15:59:36 +02:00
2023-05-11 23:03:03 +09:00
2023-03-10 09:34:25 +01:00
2022-11-14 09:58:32 +01:00
2022-04-11 17:07:29 -07:00
2022-03-24 19:06:48 -07:00
2022-05-03 14:11:58 -07:00
2022-10-10 09:10:28 -07:00
2022-10-10 12:49:34 -07:00
2022-09-11 21:55:10 -07:00
2022-07-05 13:32:59 -07:00
2022-05-08 01:33:09 -07:00
2022-02-25 09:36:06 +01:00
2022-04-05 09:59:38 +02:00
2022-04-05 09:59:38 +02:00
2022-05-24 11:11:13 -07:00
2022-08-20 15:17:45 -07:00
2023-04-26 14:28:39 +02:00
2022-09-08 16:56:45 -07:00
2022-12-05 12:09:06 -08:00
2022-09-11 21:55:10 -07:00
2022-08-29 12:47:15 +01:00
2023-03-10 09:34:07 +01:00
2022-09-26 13:01:18 -04:00
2022-04-29 14:38:03 -07:00
2022-05-18 18:24:57 -05:00
2023-02-22 12:59:50 +01:00
2022-10-09 16:24:05 -07:00
2021-09-08 11:50:27 -07:00
2022-05-19 23:25:47 -04:00
2022-10-23 12:01:01 -07:00
2023-03-17 08:50:30 +01:00
2022-06-23 18:41:40 +02:00
2022-08-06 16:38:17 -07:00
2023-05-11 23:03:32 +09:00