[RFC PATCH 04/18] sched/isolation: Add a debugfs file to dump housekeeping cpumasks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



As housekeeping cpumasks can now be modified at run time, we need a way
to examine the their current values to see if they meet our expectation.
Add a new sched debugfs file "housekeeping_cpumasks" to dump out the
current values.

Signed-off-by: Waiman Long <longman@xxxxxxxxxx>
---
 kernel/sched/debug.c | 32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/kernel/sched/debug.c b/kernel/sched/debug.c
index 3f06ab84d53f..ba8f0334c15e 100644
--- a/kernel/sched/debug.c
+++ b/kernel/sched/debug.c
@@ -490,6 +490,35 @@ static void debugfs_fair_server_init(void)
 	}
 }
 
+#ifdef CONFIG_CPU_ISOLATION
+static int hk_cpumasks_show(struct seq_file *m, void *v)
+{
+	static const char * const hk_type_name[HK_TYPE_MAX] = {
+		[HK_TYPE_DOMAIN]	= "domain",
+		[HK_TYPE_MANAGED_IRQ]	= "managed_irq",
+		[HK_TYPE_KERNEL_NOISE]	= "nohz_full"
+	};
+	int type;
+
+	for (type = 0; type < HK_TYPE_MAX; type++)
+		seq_printf(m, "%s: %*pbl\n", hk_type_name[type],
+			   cpumask_pr_args(housekeeping_cpumask(type)));
+	return 0;
+}
+
+static int hk_cpumasks_open(struct inode *inode, struct file *filp)
+{
+	return single_open(filp, hk_cpumasks_show, NULL);
+}
+
+static const struct file_operations hk_cpumasks_fops = {
+	.open		= hk_cpumasks_open,
+	.read		= seq_read,
+	.llseek		= seq_lseek,
+	.release	= seq_release,
+};
+#endif
+
 static __init int sched_init_debug(void)
 {
 	struct dentry __maybe_unused *numa;
@@ -525,6 +554,9 @@ static __init int sched_init_debug(void)
 	debugfs_create_u32("hot_threshold_ms", 0644, numa, &sysctl_numa_balancing_hot_threshold);
 #endif /* CONFIG_NUMA_BALANCING */
 
+#ifdef CONFIG_CPU_ISOLATION
+	debugfs_create_file("housekeeing_cpumasks", 0444, debugfs_sched, NULL, &hk_cpumasks_fops);
+#endif
 	debugfs_create_file("debug", 0444, debugfs_sched, NULL, &sched_debug_fops);
 
 	debugfs_fair_server_init();
-- 
2.50.0





[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux