Messages in this thread | | | Date | Thu, 26 Feb 2015 19:05:57 +0800 | From | Zefan Li <> | Subject | Re: [PATCH 2/2] cpusets,isolcpus: add file to show isolated cpus in cpuset |
| |
> +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; > +
Make it return -ENOMEM ? Or make it a global variable and allocate memory for it in cpuset_init().
> + cpumask_and(my_isolated_cpus, cs->cpus_allowed, cpu_isolated_map); > + > + seq_printf(sf, "%*pbl\n", nodemask_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 */ > }; > >
| |