linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] sched/proc: Print user_cpus_ptr for task status
@ 2024-04-29  8:46 Xuewen Yan
  2024-04-29 12:10 ` Peter Zijlstra
  0 siblings, 1 reply; 6+ messages in thread
From: Xuewen Yan @ 2024-04-29  8:46 UTC (permalink / raw)
  To: akpm, oleg, longman, peterz
  Cc: dylanbhatch, rick.p.edgecombe, ke.wang, xuewen.yan94,
	linux-kernel, linux-fsdevel

The commit 851a723e45d1c("sched: Always clear user_cpus_ptr in do_set_cpus_allowed()")
would clear the user_cpus_ptr when call the do_set_cpus_allowed.

In order to determine whether the user_cpus_ptr is taking effect,
it is better to print the task's user_cpus_ptr.

For top-cpuset:
ums9621_1h10:/ # while true; do done&
[1] 6786
ums9621_1h10:/ # cat /proc/6786/status | grep Cpus
Cpus_allowed:   ff
Cpus_allowed_list:      0-7
Cpus_user_allowed:        (null)
Cpus_user_allowed_list:   (null)

bind the task to 6-7:
ums9621_1h10:/ # taskset -p c0 6786
pid 6786's current affinity mask: ff
pid 6786's new affinity mask: c0
ums9621_1h10:/ # cat /proc/6786/status | grep Cpus
Cpus_allowed:   c0
Cpus_allowed_list:      6-7
Cpus_user_allowed:      c0
Cpus_user_allowed_list: 6-7

Offline cpu7:
ums9621_1h10:/ # echo 0 > /sys/devices/system/cpu/cpu7/online
ums9621_1h10:/ # cat /proc/6786/status | grep Cpus
Cpus_allowed:   c0
Cpus_allowed_list:      6-7
Cpus_user_allowed:      c0
Cpus_user_allowed_list: 6-7

Offline cpu6, and then the do_set_cpus_allowed will clear the user_ptr:
ums9621_1h10:/ # echo 0 > /sys/devices/system/cpu/cpu6/online
ums9621_1h10:/ # cat /proc/6786/status | grep Cpus
Cpus_allowed:   ff
Cpus_allowed_list:      0-7
Cpus_user_allowed:        (null)
Cpus_user_allowed_list:   (null)

Bringup the core6,7:
ums9621_1h10:/ # echo 1 > /sys/devices/system/cpu/cpu6/online
ums9621_1h10:/ # echo 1 > /sys/devices/system/cpu/cpu7/online
ums9621_1h10:/ # cat /proc/6786/status | grep Cpus
Cpus_allowed:   ff
Cpus_allowed_list:      0-7
Cpus_user_allowed:        (null)
Cpus_user_allowed_list:   (null)

Signed-off-by: Xuewen Yan <xuewen.yan@unisoc.com>
---
 fs/proc/array.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/fs/proc/array.c b/fs/proc/array.c
index 34a47fb0c57f..084bee2a2e2b 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -409,6 +409,10 @@ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
 		   cpumask_pr_args(&task->cpus_mask));
 	seq_printf(m, "Cpus_allowed_list:\t%*pbl\n",
 		   cpumask_pr_args(&task->cpus_mask));
+	seq_printf(m, "Cpus_user_allowed:\t%*pb\n",
+		   cpumask_pr_args(task->user_cpus_ptr));
+	seq_printf(m, "Cpus_user_allowed_list:\t%*pbl\n",
+		   cpumask_pr_args(task->user_cpus_ptr));
 }
 
 static inline void task_core_dumping(struct seq_file *m, struct task_struct *task)
-- 
2.25.1


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

end of thread, other threads:[~2024-05-09  4:47 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-04-29  8:46 [PATCH] sched/proc: Print user_cpus_ptr for task status Xuewen Yan
2024-04-29 12:10 ` Peter Zijlstra
2024-05-06  8:04   ` Xuewen Yan
2024-05-06 18:03     ` Waiman Long
2024-05-07  6:57       ` Xuewen Yan
2024-05-08 17:01         ` Waiman Long

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).