Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-19 Thread Zefan Li
On 2015/3/19 9:54, Rik van Riel wrote:
> On 03/18/2015 09:50 PM, Zefan Li wrote:
>> On 2015/3/19 7:40, Rik van Riel wrote:
>>> On 03/18/2015 12:47 PM, Tejun Heo wrote:
 On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
> From: Rik van Riel 
>
> 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.

 Didn't Li say that this is trivially computable from userland?  I'm
 not sure this knob actually belongs to cpuset.
>>>
>>> I don't know whether the information to compute this is
>>> always visible from userland.  I am happy to drop this
>>> patch if Li prefers things that way, though.
>>>
>>
>> What I proposed is adding /sys/devices/system/cpu/isolated. Sysfs is
>> visible in containers, unless specially configured not so.
> 
> OK, are you willing to take patches 1, 2, and the first hunk of patch
> 4 now? I can submit a patch to add /sys/devices/system/cpu/isolated
> on Friday, to the appropriate maintainer.
> 

Other patches look good to me.

> (taking tomorrow off to go hiking on the last full day of winter)
> 

Have a good day!

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-19 Thread Zefan Li
On 2015/3/19 9:54, Rik van Riel wrote:
 On 03/18/2015 09:50 PM, Zefan Li wrote:
 On 2015/3/19 7:40, Rik van Riel wrote:
 On 03/18/2015 12:47 PM, Tejun Heo wrote:
 On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
 From: Rik van Riel r...@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.

 Didn't Li say that this is trivially computable from userland?  I'm
 not sure this knob actually belongs to cpuset.

 I don't know whether the information to compute this is
 always visible from userland.  I am happy to drop this
 patch if Li prefers things that way, though.


 What I proposed is adding /sys/devices/system/cpu/isolated. Sysfs is
 visible in containers, unless specially configured not so.
 
 OK, are you willing to take patches 1, 2, and the first hunk of patch
 4 now? I can submit a patch to add /sys/devices/system/cpu/isolated
 on Friday, to the appropriate maintainer.
 

Other patches look good to me.

 (taking tomorrow off to go hiking on the last full day of winter)
 

Have a good day!

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Zefan Li
On 2015/3/19 7:40, Rik van Riel wrote:
> On 03/18/2015 12:47 PM, Tejun Heo wrote:
>> On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
>>> From: Rik van Riel 
>>>
>>> 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.
>>
>> Didn't Li say that this is trivially computable from userland?  I'm
>> not sure this knob actually belongs to cpuset.
> 
> I don't know whether the information to compute this is
> always visible from userland.  I am happy to drop this
> patch if Li prefers things that way, though.
> 

What I proposed is adding /sys/devices/system/cpu/isolated. Sysfs is
visible in containers, unless specially configured not so.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Rik van Riel
On 03/18/2015 09:50 PM, Zefan Li wrote:
> On 2015/3/19 7:40, Rik van Riel wrote:
>> On 03/18/2015 12:47 PM, Tejun Heo wrote:
>>> On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
 From: Rik van Riel 

 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.
>>>
>>> Didn't Li say that this is trivially computable from userland?  I'm
>>> not sure this knob actually belongs to cpuset.
>>
>> I don't know whether the information to compute this is
>> always visible from userland.  I am happy to drop this
>> patch if Li prefers things that way, though.
>>
> 
> What I proposed is adding /sys/devices/system/cpu/isolated. Sysfs is
> visible in containers, unless specially configured not so.

OK, are you willing to take patches 1, 2, and the first hunk of patch
4 now? I can submit a patch to add /sys/devices/system/cpu/isolated
on Friday, to the appropriate maintainer.

(taking tomorrow off to go hiking on the last full day of winter)

-- 
All rights reversed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Tejun Heo
Hello,

On Wed, Mar 18, 2015 at 09:45:45PM -0400, Rik van Riel wrote:
> Going back through my email, it looks like Li
> previously acked this patch.

Ooh, the patch didn't have acked-by.  Sorry about the confusion.

> That explains why I'm confused about your comment :)

I still don't think cpuset is the right place to put this knob.  This
is a system-wide boot paramter, isn't it?  There gotta be a place
better suited for this, be that a sysctl knob or a file under sys.

Thanks.

-- 
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Rik van Riel
On 03/18/2015 12:47 PM, Tejun Heo wrote:
> On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
>> From: Rik van Riel 
>>
>> 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.
> 
> Didn't Li say that this is trivially computable from userland?  I'm
> not sure this knob actually belongs to cpuset.

Going back through my email, it looks like Li
previously acked this patch.

That explains why I'm confused about your comment :)

-- 
All rights reversed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Rik van Riel
On 03/18/2015 12:47 PM, Tejun Heo wrote:
> On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
>> From: Rik van Riel 
>>
>> 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.
> 
> Didn't Li say that this is trivially computable from userland?  I'm
> not sure this knob actually belongs to cpuset.

I don't know whether the information to compute this is
always visible from userland.  I am happy to drop this
patch if Li prefers things that way, though.

Li?

-- 
All rights reversed
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Tejun Heo
On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
> From: Rik van Riel 
> 
> 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.

Didn't Li say that this is trivially computable from userland?  I'm
not sure this knob actually belongs to cpuset.

Thanks.

-- 
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Tejun Heo
On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
 From: Rik van Riel r...@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.

Didn't Li say that this is trivially computable from userland?  I'm
not sure this knob actually belongs to cpuset.

Thanks.

-- 
tejun
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Rik van Riel
On 03/18/2015 12:47 PM, Tejun Heo wrote:
 On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
 From: Rik van Riel r...@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.
 
 Didn't Li say that this is trivially computable from userland?  I'm
 not sure this knob actually belongs to cpuset.

I don't know whether the information to compute this is
always visible from userland.  I am happy to drop this
patch if Li prefers things that way, though.

Li?

-- 
All rights reversed
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Tejun Heo
Hello,

On Wed, Mar 18, 2015 at 09:45:45PM -0400, Rik van Riel wrote:
 Going back through my email, it looks like Li
 previously acked this patch.

Ooh, the patch didn't have acked-by.  Sorry about the confusion.

 That explains why I'm confused about your comment :)

I still don't think cpuset is the right place to put this knob.  This
is a system-wide boot paramter, isn't it?  There gotta be a place
better suited for this, be that a sysctl knob or a file under sys.

Thanks.

-- 
tejun
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Rik van Riel
On 03/18/2015 09:50 PM, Zefan Li wrote:
 On 2015/3/19 7:40, Rik van Riel wrote:
 On 03/18/2015 12:47 PM, Tejun Heo wrote:
 On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
 From: Rik van Riel r...@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.

 Didn't Li say that this is trivially computable from userland?  I'm
 not sure this knob actually belongs to cpuset.

 I don't know whether the information to compute this is
 always visible from userland.  I am happy to drop this
 patch if Li prefers things that way, though.

 
 What I proposed is adding /sys/devices/system/cpu/isolated. Sysfs is
 visible in containers, unless specially configured not so.

OK, are you willing to take patches 1, 2, and the first hunk of patch
4 now? I can submit a patch to add /sys/devices/system/cpu/isolated
on Friday, to the appropriate maintainer.

(taking tomorrow off to go hiking on the last full day of winter)

-- 
All rights reversed
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Rik van Riel
On 03/18/2015 12:47 PM, Tejun Heo wrote:
 On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
 From: Rik van Riel r...@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.
 
 Didn't Li say that this is trivially computable from userland?  I'm
 not sure this knob actually belongs to cpuset.

Going back through my email, it looks like Li
previously acked this patch.

That explains why I'm confused about your comment :)

-- 
All rights reversed
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-18 Thread Zefan Li
On 2015/3/19 7:40, Rik van Riel wrote:
 On 03/18/2015 12:47 PM, Tejun Heo wrote:
 On Mon, Mar 09, 2015 at 12:12:09PM -0400, r...@redhat.com wrote:
 From: Rik van Riel r...@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.

 Didn't Li say that this is trivially computable from userland?  I'm
 not sure this knob actually belongs to cpuset.
 
 I don't know whether the information to compute this is
 always visible from userland.  I am happy to drop this
 patch if Li prefers things that way, though.
 

What I proposed is adding /sys/devices/system/cpu/isolated. Sysfs is
visible in containers, unless specially configured not so.

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-09 Thread riel
From: Rik van Riel 

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 
Cc: Peter Zijlstra 
Cc: Clark Williams 
Cc: Li Zefan 
Cc: Ingo Molnar 
Cc: Luiz Capitulino 
Cc: David Rientjes 
Cc: Mike Galbraith 
Cc: cgro...@vger.kernel.org
Signed-off-by: Rik van Riel 
---
 kernel/cpuset.c | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index b544e5229d99..5462e1ca90bd 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,16 @@ static ssize_t cpuset_write_resmask(struct 
kernfs_open_file *of,
return retval ?: nbytes;
 }
 
+/* protected by the lock in cpuset_common_seq_show */
+static cpumask_var_t print_isolated_cpus;
+
+static void cpuset_seq_print_isolcpus(struct seq_file *sf, struct cpuset *cs)
+{
+   cpumask_and(print_isolated_cpus, cs->cpus_allowed, cpu_isolated_map);
+
+   seq_printf(sf, "%*pbl\n", cpumask_pr_args(print_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 +1744,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(>effective_mems));
break;
+   case FILE_ISOLCPUS:
+   cpuset_seq_print_isolcpus(sf, cs);
+   break;
default:
ret = -EINVAL;
}
@@ -1893,6 +1907,12 @@ static struct cftype files[] = {
.private = FILE_MEMORY_PRESSURE_ENABLED,
},
 
+   {
+   .name = "isolcpus",
+   .seq_show = cpuset_common_seq_show,
+   .private = FILE_ISOLCPUS,
+   },
+
{ } /* terminate */
 };
 
@@ -2070,6 +2090,8 @@ int __init cpuset_init(void)
BUG();
if (!alloc_cpumask_var(_cpuset.effective_cpus, GFP_KERNEL))
BUG();
+   if (!alloc_cpumask_var(_isolated_cpus, GFP_KERNEL))
+   BUG();
 
cpumask_setall(top_cpuset.cpus_allowed);
nodes_setall(top_cpuset.mems_allowed);
-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-09 Thread riel
From: Rik van Riel r...@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.

Acked-by: David Rientjes rient...@google.com
Cc: Peter Zijlstra pet...@infradead.org
Cc: Clark Williams willi...@redhat.com
Cc: Li Zefan lize...@huawei.com
Cc: Ingo Molnar mi...@redhat.com
Cc: Luiz Capitulino lcapitul...@redhat.com
Cc: David Rientjes rient...@google.com
Cc: Mike Galbraith umgwanakikb...@gmail.com
Cc: cgro...@vger.kernel.org
Signed-off-by: Rik van Riel r...@redhat.com
---
 kernel/cpuset.c | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index b544e5229d99..5462e1ca90bd 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,16 @@ static ssize_t cpuset_write_resmask(struct 
kernfs_open_file *of,
return retval ?: nbytes;
 }
 
+/* protected by the lock in cpuset_common_seq_show */
+static cpumask_var_t print_isolated_cpus;
+
+static void cpuset_seq_print_isolcpus(struct seq_file *sf, struct cpuset *cs)
+{
+   cpumask_and(print_isolated_cpus, cs-cpus_allowed, cpu_isolated_map);
+
+   seq_printf(sf, %*pbl\n, cpumask_pr_args(print_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 +1744,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 +1907,12 @@ static struct cftype files[] = {
.private = FILE_MEMORY_PRESSURE_ENABLED,
},
 
+   {
+   .name = isolcpus,
+   .seq_show = cpuset_common_seq_show,
+   .private = FILE_ISOLCPUS,
+   },
+
{ } /* terminate */
 };
 
@@ -2070,6 +2090,8 @@ int __init cpuset_init(void)
BUG();
if (!alloc_cpumask_var(top_cpuset.effective_cpus, GFP_KERNEL))
BUG();
+   if (!alloc_cpumask_var(print_isolated_cpus, GFP_KERNEL))
+   BUG();
 
cpumask_setall(top_cpuset.cpus_allowed);
nodes_setall(top_cpuset.mems_allowed);
-- 
2.1.0

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-03 Thread riel
From: Rik van Riel 

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 
Cc: Peter Zijlstra 
Cc: Clark Williams 
Cc: Li Zefan 
Cc: Ingo Molnar 
Cc: Luiz Capitulino 
Cc: David Rientjes 
Cc: Mike Galbraith 
Cc: cgro...@vger.kernel.org
Signed-off-by: Rik van Riel 
---
 kernel/cpuset.c | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index b544e5229d99..5462e1ca90bd 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,16 @@ static ssize_t cpuset_write_resmask(struct 
kernfs_open_file *of,
return retval ?: nbytes;
 }
 
+/* protected by the lock in cpuset_common_seq_show */
+static cpumask_var_t print_isolated_cpus;
+
+static void cpuset_seq_print_isolcpus(struct seq_file *sf, struct cpuset *cs)
+{
+   cpumask_and(print_isolated_cpus, cs->cpus_allowed, cpu_isolated_map);
+
+   seq_printf(sf, "%*pbl\n", cpumask_pr_args(print_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 +1744,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(>effective_mems));
break;
+   case FILE_ISOLCPUS:
+   cpuset_seq_print_isolcpus(sf, cs);
+   break;
default:
ret = -EINVAL;
}
@@ -1893,6 +1907,12 @@ static struct cftype files[] = {
.private = FILE_MEMORY_PRESSURE_ENABLED,
},
 
+   {
+   .name = "isolcpus",
+   .seq_show = cpuset_common_seq_show,
+   .private = FILE_ISOLCPUS,
+   },
+
{ } /* terminate */
 };
 
@@ -2070,6 +2090,8 @@ int __init cpuset_init(void)
BUG();
if (!alloc_cpumask_var(_cpuset.effective_cpus, GFP_KERNEL))
BUG();
+   if (!alloc_cpumask_var(_isolated_cpus, GFP_KERNEL))
+   BUG();
 
cpumask_setall(top_cpuset.cpus_allowed);
nodes_setall(top_cpuset.mems_allowed);
-- 
2.1.0

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset

2015-03-03 Thread riel
From: Rik van Riel r...@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.

Acked-by: David Rientjes rient...@google.com
Cc: Peter Zijlstra pet...@infradead.org
Cc: Clark Williams willi...@redhat.com
Cc: Li Zefan lize...@huawei.com
Cc: Ingo Molnar mi...@redhat.com
Cc: Luiz Capitulino lcapitul...@redhat.com
Cc: David Rientjes rient...@google.com
Cc: Mike Galbraith umgwanakikb...@gmail.com
Cc: cgro...@vger.kernel.org
Signed-off-by: Rik van Riel r...@redhat.com
---
 kernel/cpuset.c | 22 ++
 1 file changed, 22 insertions(+)

diff --git a/kernel/cpuset.c b/kernel/cpuset.c
index b544e5229d99..5462e1ca90bd 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,16 @@ static ssize_t cpuset_write_resmask(struct 
kernfs_open_file *of,
return retval ?: nbytes;
 }
 
+/* protected by the lock in cpuset_common_seq_show */
+static cpumask_var_t print_isolated_cpus;
+
+static void cpuset_seq_print_isolcpus(struct seq_file *sf, struct cpuset *cs)
+{
+   cpumask_and(print_isolated_cpus, cs-cpus_allowed, cpu_isolated_map);
+
+   seq_printf(sf, %*pbl\n, cpumask_pr_args(print_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 +1744,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 +1907,12 @@ static struct cftype files[] = {
.private = FILE_MEMORY_PRESSURE_ENABLED,
},
 
+   {
+   .name = isolcpus,
+   .seq_show = cpuset_common_seq_show,
+   .private = FILE_ISOLCPUS,
+   },
+
{ } /* terminate */
 };
 
@@ -2070,6 +2090,8 @@ int __init cpuset_init(void)
BUG();
if (!alloc_cpumask_var(top_cpuset.effective_cpus, GFP_KERNEL))
BUG();
+   if (!alloc_cpumask_var(print_isolated_cpus, GFP_KERNEL))
+   BUG();
 
cpumask_setall(top_cpuset.cpus_allowed);
nodes_setall(top_cpuset.mems_allowed);
-- 
2.1.0

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/