From: Rik van Riel <riel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: David Rientjes <rientjes-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>,
Clark Williams <williams-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>,
Ingo Molnar <mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
Luiz Capitulino
<lcapitulino-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>,
cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 2/2] cpusets,isolcpus: add file to show isolated cpus in cpuset
Date: Tue, 24 Feb 2015 22:30:19 -0500 [thread overview]
Message-ID: <54ED41CB.2040401@redhat.com> (raw)
In-Reply-To: <alpine.DEB.2.10.1502241811020.19547-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
On 02/24/2015 09:15 PM, David Rientjes wrote:
> On Mon, 23 Feb 2015, riel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org wrote:
>
>> From: Rik van Riel <riel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>>
>> 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.
>>
>> Cc: Peter Zijlstra <peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org>
>> Cc: Clark Williams <williams-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>> Cc: Li Zefan <lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org>
>> Cc: Ingo Molnar <mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>> Cc: Luiz Capitulino <lcapitulino-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>> Cc: cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>> Signed-off-by: Rik van Riel <riel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
>> ---
>> kernel/cpuset.c | 27 +++++++++++++++++++++++++++
>> 1 file changed, 27 insertions(+)
>>
>> diff --git a/kernel/cpuset.c b/kernel/cpuset.c
>> index 1ad63fa37cb4..19ad5d3377f8 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,23 @@ static ssize_t cpuset_write_resmask(struct kernfs_open_file *of,
>> return retval ?: nbytes;
>> }
>>
>> +static size_t cpuset_sprintf_isolcpus(char *s, ssize_t pos, struct cpuset *cs)
>> +{
>> + cpumask_var_t my_isolated_cpus;
>> + ssize_t count;
>> +
>
> Whitespace.
>
>> + if (!alloc_cpumask_var(&my_isolated_cpus, GFP_KERNEL))
>> + return 0;
>> +
>> + cpumask_and(my_isolated_cpus, cs->cpus_allowed, cpu_isolated_map);
>> +
>> + count = cpulist_scnprintf(s, pos, my_isolated_cpus);
>> +
>> + free_cpumask_var(my_isolated_cpus);
>> +
>> + return count;
>> +}
>> +
>> /*
>> * 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
>> @@ -1738,6 +1756,9 @@ static int cpuset_common_seq_show(struct seq_file *sf, void *v)
>> case FILE_EFFECTIVE_MEMLIST:
>> s += nodelist_scnprintf(s, count, cs->effective_mems);
>> break;
>> + case FILE_ISOLCPUS:
>> + s += cpuset_sprintf_isolcpus(s, count, cs);
>> + break;
>
> This patch looks fine, and I think cpuset.effective_cpus and
> cpuset.isolcpus can be used well together, but will need updating now that
> commit e8e6d97c9b ("cpuset: use %*pb[l] to print bitmaps including
> cpumasks and nodemasks") has been merged which reworks this function.
I will take a look at that changeset. It was not in the
tip tree I worked against.
Expect a v2 :)
> It's a little unfortunate, though, that the user sees Cpus_allowed,
> cpuset.cpus, and cpuset.effective_cpus that include isolcpus and then have
> to check another cpulist for the isolcpus to see their sched domain,
> though.
Agreed, but all the alternatives I could think of would break the
userspace API, leaving this as the best way to go.
--
All rights reversed
WARNING: multiple messages have this Message-ID (diff)
From: Rik van Riel <riel@redhat.com>
To: David Rientjes <rientjes@google.com>
Cc: linux-kernel@vger.kernel.org,
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>,
cgroups@vger.kernel.org
Subject: Re: [PATCH 2/2] cpusets,isolcpus: add file to show isolated cpus in cpuset
Date: Tue, 24 Feb 2015 22:30:19 -0500 [thread overview]
Message-ID: <54ED41CB.2040401@redhat.com> (raw)
In-Reply-To: <alpine.DEB.2.10.1502241811020.19547@chino.kir.corp.google.com>
On 02/24/2015 09:15 PM, David Rientjes wrote:
> On Mon, 23 Feb 2015, riel@redhat.com wrote:
>
>> From: Rik van Riel <riel@redhat.com>
>>
>> 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.
>>
>> 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: cgroups@vger.kernel.org
>> Signed-off-by: Rik van Riel <riel@redhat.com>
>> ---
>> kernel/cpuset.c | 27 +++++++++++++++++++++++++++
>> 1 file changed, 27 insertions(+)
>>
>> diff --git a/kernel/cpuset.c b/kernel/cpuset.c
>> index 1ad63fa37cb4..19ad5d3377f8 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,23 @@ static ssize_t cpuset_write_resmask(struct kernfs_open_file *of,
>> return retval ?: nbytes;
>> }
>>
>> +static size_t cpuset_sprintf_isolcpus(char *s, ssize_t pos, struct cpuset *cs)
>> +{
>> + cpumask_var_t my_isolated_cpus;
>> + ssize_t count;
>> +
>
> Whitespace.
>
>> + if (!alloc_cpumask_var(&my_isolated_cpus, GFP_KERNEL))
>> + return 0;
>> +
>> + cpumask_and(my_isolated_cpus, cs->cpus_allowed, cpu_isolated_map);
>> +
>> + count = cpulist_scnprintf(s, pos, my_isolated_cpus);
>> +
>> + free_cpumask_var(my_isolated_cpus);
>> +
>> + return count;
>> +}
>> +
>> /*
>> * 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
>> @@ -1738,6 +1756,9 @@ static int cpuset_common_seq_show(struct seq_file *sf, void *v)
>> case FILE_EFFECTIVE_MEMLIST:
>> s += nodelist_scnprintf(s, count, cs->effective_mems);
>> break;
>> + case FILE_ISOLCPUS:
>> + s += cpuset_sprintf_isolcpus(s, count, cs);
>> + break;
>
> This patch looks fine, and I think cpuset.effective_cpus and
> cpuset.isolcpus can be used well together, but will need updating now that
> commit e8e6d97c9b ("cpuset: use %*pb[l] to print bitmaps including
> cpumasks and nodemasks") has been merged which reworks this function.
I will take a look at that changeset. It was not in the
tip tree I worked against.
Expect a v2 :)
> It's a little unfortunate, though, that the user sees Cpus_allowed,
> cpuset.cpus, and cpuset.effective_cpus that include isolcpus and then have
> to check another cpulist for the isolcpus to see their sched domain,
> though.
Agreed, but all the alternatives I could think of would break the
userspace API, leaving this as the best way to go.
--
All rights reversed
next prev parent reply other threads:[~2015-02-25 3:30 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-23 21:45 [PATCH 0/2] cpusets,isolcpus: resolve conflict between cpusets and isolcpus riel
2015-02-23 21:45 ` [PATCH 1/2] cpusets,isolcpus: exclude isolcpus from load balancing in cpusets riel
2015-02-25 2:10 ` David Rientjes
2015-02-23 21:45 ` [PATCH 2/2] cpusets,isolcpus: add file to show isolated cpus in cpuset riel
[not found] ` <1424727906-4460-3-git-send-email-riel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-02-25 2:15 ` David Rientjes
2015-02-25 2:15 ` David Rientjes
[not found] ` <alpine.DEB.2.10.1502241811020.19547-X6Q0R45D7oAcqpCFd4KODRPsWskHk0ljAL8bYrjMMd8@public.gmane.org>
2015-02-25 3:30 ` Rik van Riel [this message]
2015-02-25 3:30 ` Rik van Riel
2015-02-24 2:18 ` [PATCH 0/2] cpusets,isolcpus: resolve conflict between cpusets and isolcpus Mike Galbraith
2015-02-24 14:13 ` Rik van Riel
2015-02-24 14:22 ` Mike Galbraith
2015-02-24 14:29 ` Mike Galbraith
-- strict thread matches above, loose matches on Subject: below --
2015-02-25 16:38 [PATCH -v2 " riel
2015-02-25 16:38 ` [PATCH 2/2] cpusets,isolcpus: add file to show isolated cpus in cpuset riel
[not found] ` <1424882288-2910-3-git-send-email-riel-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2015-02-25 21:09 ` David Rientjes
2015-02-25 21:09 ` David Rientjes
2015-02-25 21:21 ` Rik van Riel
2015-02-26 11:05 ` Zefan Li
2015-02-26 11:05 ` Zefan Li
2015-02-26 15:24 ` Rik van Riel
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=54ED41CB.2040401@redhat.com \
--to=riel-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lcapitulino-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org \
--cc=mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=peterz-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=rientjes-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \
--cc=williams-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.