[PATCH] refperf: Set reader_tasks to NULL after kfree()

Kaushlendra Kumar posted 1 patch 3 weeks ago
kernel/rcu/refscale.c | 1 +
1 file changed, 1 insertion(+)
[PATCH] refperf: Set reader_tasks to NULL after kfree()
Posted by Kaushlendra Kumar 3 weeks ago
Set reader_tasks to NULL after kfree() in ref_scale_cleanup() to
improve debugging experience with kernel debugging tools. This
follows the common pattern of NULLing pointers after freeing to
avoid dangling pointer issues during debugging sessions.

Setting pointers to NULL after freeing helps debugging tools like
kdgb,drgn, and other kernel debuggers by providing clear indication
that the memory has been freed and the pointer is no longer valid.

Suggested-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Kaushlendra Kumar <kaushlendra.kumar@intel.com>
---
 kernel/rcu/refscale.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/kernel/rcu/refscale.c b/kernel/rcu/refscale.c
index 2bfa987f4ba9..47486dff43ca 100644
--- a/kernel/rcu/refscale.c
+++ b/kernel/rcu/refscale.c
@@ -1048,6 +1048,7 @@ ref_scale_cleanup(void)
 					     reader_tasks[i].task);
 	}
 	kfree(reader_tasks);
+	reader_tasks = NULL;
 
 	torture_stop_kthread("main_task", main_task);
 
-- 
2.34.1
Re: [PATCH] refperf: Set reader_tasks to NULL after kfree()
Posted by Paul E. McKenney 2 weeks, 6 days ago
On Thu, Sep 11, 2025 at 08:48:11AM +0530, Kaushlendra Kumar wrote:
> Set reader_tasks to NULL after kfree() in ref_scale_cleanup() to
> improve debugging experience with kernel debugging tools. This
> follows the common pattern of NULLing pointers after freeing to
> avoid dangling pointer issues during debugging sessions.
> 
> Setting pointers to NULL after freeing helps debugging tools like
> kdgb,drgn, and other kernel debuggers by providing clear indication
> that the memory has been freed and the pointer is no longer valid.
> 
> Suggested-by: Paul E. McKenney <paulmck@kernel.org>
> Signed-off-by: Kaushlendra Kumar <kaushlendra.kumar@intel.com>

Queued for further review and testing, thank you!

							Thanx, Paul

> ---
>  kernel/rcu/refscale.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/kernel/rcu/refscale.c b/kernel/rcu/refscale.c
> index 2bfa987f4ba9..47486dff43ca 100644
> --- a/kernel/rcu/refscale.c
> +++ b/kernel/rcu/refscale.c
> @@ -1048,6 +1048,7 @@ ref_scale_cleanup(void)
>  					     reader_tasks[i].task);
>  	}
>  	kfree(reader_tasks);
> +	reader_tasks = NULL;
>  
>  	torture_stop_kthread("main_task", main_task);
>  
> -- 
> 2.34.1
>