Re: [PATCH 3/4] cpusets,isolcpus: add file to show isolated cpus in cpuset
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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/