lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 2 Aug 2017 09:08:10 +0800 From: Zefan Li <lizefan@...wei.com> To: Paolo Bonzini <pbonzini@...hat.com>, <linux-kernel@...r.kernel.org> CC: Peter Zijlstra <peterz@...radead.org> Subject: Re: [PATCH 3/3] cpuset: make nr_cpusets private On 2017/8/1 23:24, Paolo Bonzini wrote: > Any use of key->enabled (that is static_key_enabled and static_key_count) > outside jump_label_lock should handle its own serialization. In the case > of cpusets_enabled_key, the key is always incremented/decremented under > cpuset_mutex, and hence the same rule applies to nr_cpusets. The rule > *is* respected currently, but the mutex is static so nr_cpusets should > be static too. > > Cc: Peter Zijlstra <peterz@...radead.org> > Cc: Zefan Li <lizefan@...wei.com> > Signed-off-by: Paolo Bonzini <pbonzini@...hat.com> Acked-by: Zefan Li <lizefan@...wei.com> > --- > include/linux/cpuset.h | 6 ------ > kernel/cgroup/cpuset.c | 7 +++++++ > 2 files changed, 7 insertions(+), 6 deletions(-) > > diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h > index 119a3f9604b0..cedcc910b7a7 100644 > --- a/include/linux/cpuset.h > +++ b/include/linux/cpuset.h > @@ -24,12 +24,6 @@ static inline bool cpusets_enabled(void) > return static_branch_unlikely(&cpusets_enabled_key); > } > > -static inline int nr_cpusets(void) > -{ > - /* jump label reference count + the top-level cpuset */ > - return static_key_count(&cpusets_enabled_key.key) + 1; > -} > - > static inline void cpuset_inc(void) > { > static_branch_inc(&cpusets_enabled_key); > diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c > index ae643412948a..f65db17e9e23 100644 > --- a/kernel/cgroup/cpuset.c > +++ b/kernel/cgroup/cpuset.c > @@ -576,6 +576,13 @@ static void update_domain_attr_tree(struct sched_domain_attr *dattr, > rcu_read_unlock(); > } > > +/* Must be called with cpuset_mutex held. */ > +static inline int nr_cpusets(void) > +{ > + /* jump label reference count + the top-level cpuset */ > + return static_key_count(&cpusets_enabled_key.key) + 1; > +} > + > /* > * generate_sched_domains() > * >
Powered by blists - more mailing lists