From: Rik van Riel <riel@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: Peter Zijlstra <peterz@infradead.org>,
Clark Williams <williams@redhat.com>,
Li Zefan <lizefan@huawei.com>, Ingo Molnar <mingo@redhat.com>,
Luiz Capitulino <lcapitulino@redhat.com>,
David Rientjes <rientjes@google.com>,
Mike Galbraith <umgwanakikbuti@gmail.com>,
cgroups@vger.kernel.org
Subject: [PATCH v3 2/2] cpusets,isolcpus: add file to show isolated cpus in cpuset
Date: Wed, 25 Feb 2015 16:32:31 -0500 [thread overview]
Message-ID: <20150225163231.74aa78d5@cuia.bos.redhat.com> (raw)
In-Reply-To: <1424882288-2910-3-git-send-email-riel@redhat.com>
Subject: cpusets,isolcpus: add file to show isolated cpus in cpuset
The previous patch makes it so the code skips over isolcpus when
building scheduler load balancing domains. This makes it hard to
see for a user which of the CPUs in a cpuset are participating in
load balancing, and which ones are isolated cpus.
Add a cpuset.isolcpus file with info on which cpus in a cpuset are
isolated CPUs.
This file is read-only for now. In the future we could extend things
so isolcpus can be changed at run time, for the root (system wide)
cpuset only.
Acked-by: David Rientjes <rientjes@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Clark Williams <williams@redhat.com>
Cc: Li Zefan <lizefan@huawei.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Luiz Capitulino <lcapitulino@redhat.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Mike Galbraith <umgwanakikbuti@gmail.com>
Cc: cgroups@vger.kernel.org
Signed-off-by: Rik van Riel <riel@redhat.com>
---
OK, I suck. Thanks to David Rientjes for spotting the silly mistake.
kernel/cpuset.c | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index b544e5229d99..455df101ceec 100644
--- a/kernel/cpuset.c
+++ b/kernel/cpuset.c
@@ -1563,6 +1563,7 @@ typedef enum {
FILE_MEMORY_PRESSURE,
FILE_SPREAD_PAGE,
FILE_SPREAD_SLAB,
+ FILE_ISOLCPUS,
} cpuset_filetype_t;
static int cpuset_write_u64(struct cgroup_subsys_state *css, struct cftype *cft,
@@ -1704,6 +1705,20 @@ static ssize_t cpuset_write_resmask(struct kernfs_open_file *of,
return retval ?: nbytes;
}
+static void cpuset_seq_print_isolcpus(struct seq_file *sf, struct cpuset *cs)
+{
+ cpumask_var_t my_isolated_cpus;
+
+ if (!alloc_cpumask_var(&my_isolated_cpus, GFP_KERNEL))
+ return;
+
+ cpumask_and(my_isolated_cpus, cs->cpus_allowed, cpu_isolated_map);
+
+ seq_printf(sf, "%*pbl\n", cpumask_pr_args(my_isolated_cpus));
+
+ free_cpumask_var(my_isolated_cpus);
+}
+
/*
* These ascii lists should be read in a single call, by using a user
* buffer large enough to hold the entire map. If read in smaller
@@ -1733,6 +1748,9 @@ static int cpuset_common_seq_show(struct seq_file *sf, void *v)
case FILE_EFFECTIVE_MEMLIST:
seq_printf(sf, "%*pbl\n", nodemask_pr_args(&cs->effective_mems));
break;
+ case FILE_ISOLCPUS:
+ cpuset_seq_print_isolcpus(sf, cs);
+ break;
default:
ret = -EINVAL;
}
@@ -1893,6 +1911,12 @@ static struct cftype files[] = {
.private = FILE_MEMORY_PRESSURE_ENABLED,
},
+ {
+ .name = "isolcpus",
+ .seq_show = cpuset_common_seq_show,
+ .private = FILE_ISOLCPUS,
+ },
+
{ } /* terminate */
};
next prev parent reply other threads:[~2015-02-25 21:33 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-25 16:38 [PATCH -v2 0/2] cpusets,isolcpus: resolve conflict between cpusets and isolcpus riel
2015-02-25 16:38 ` [PATCH 1/2] cpusets,isolcpus: exclude isolcpus from load balancing in cpusets riel
2015-02-27 9:32 ` Peter Zijlstra
2015-02-27 17:08 ` [PATCH 3/2] cpusets,isolcpus: document relationship between cpusets & isolcpus Rik van Riel
2015-02-27 21:15 ` David Rientjes
2015-02-28 3:23 ` Zefan Li
2015-02-28 3:21 ` [PATCH 1/2] cpusets,isolcpus: exclude isolcpus from load balancing in cpusets Zefan Li
2015-02-25 16:38 ` [PATCH 2/2] cpusets,isolcpus: add file to show isolated cpus in cpuset riel
2015-02-25 21:09 ` David Rientjes
2015-02-25 21:21 ` Rik van Riel
2015-02-25 21:32 ` Rik van Riel [this message]
2015-02-26 11:05 ` Zefan Li
2015-02-26 15:24 ` Rik van Riel
2015-02-26 17:12 ` [PATCH v4 " Rik van Riel
2015-02-28 3:22 ` Zefan Li
2015-03-02 6:15 ` Zefan Li
2015-03-02 9:12 ` Peter Zijlstra
2015-03-03 9:51 ` Zefan Li
2015-03-02 9:09 ` Peter Zijlstra
2015-03-02 12:44 ` Mike Galbraith
2015-03-02 14:35 ` Rik van Riel
2015-03-02 14:54 ` Mike Galbraith
2015-03-02 15:29 ` Tejun Heo
2015-03-02 16:02 ` Mike Galbraith
2015-03-02 16:09 ` Tejun Heo
2015-03-02 17:35 ` Mike Galbraith
2015-03-02 17:01 ` Tejun Heo
2015-03-02 17:31 ` Tejun Heo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150225163231.74aa78d5@cuia.bos.redhat.com \
--to=riel@redhat.com \
--cc=cgroups@vger.kernel.org \
--cc=lcapitulino@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=rientjes@google.com \
--cc=umgwanakikbuti@gmail.com \
--cc=williams@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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®