Message ID | 20230315084938.2544737-5-david@fromorbit.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | pcpctr: fix percpu_counter_sum vs cpu offline race | expand |
Hi Dave,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v6.3-rc2 next-20230315]
[cannot apply to dennis-percpu/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Dave-Chinner/cpumask-introduce-for_each_cpu_or/20230315-165202
patch link: https://lore.kernel.org/r/20230315084938.2544737-5-david%40fromorbit.com
patch subject: [PATCH 4/4] pcpcntr: remove percpu_counter_sum_all()
config: i386-randconfig-a005 (https://download.01.org/0day-ci/archive/20230316/202303160333.XqIRz3JU-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/intel-lab-lkp/linux/commit/8360dcb55f1eb08fe7a1f457f3b99bef8e306c8b
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Dave-Chinner/cpumask-introduce-for_each_cpu_or/20230315-165202
git checkout 8360dcb55f1eb08fe7a1f457f3b99bef8e306c8b
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=i386 olddefconfig
make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/hwmon/ fs/xfs/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202303160333.XqIRz3JU-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from include/linux/string.h:5,
from include/linux/uuid.h:11,
from fs/xfs/xfs_linux.h:10,
from fs/xfs/xfs.h:22,
from fs/xfs/xfs_super.c:7:
fs/xfs/xfs_super.c: In function 'xfs_destroy_percpu_counters':
>> fs/xfs/xfs_super.c:1079:16: error: implicit declaration of function 'percpu_counter_sum_all'; did you mean 'percpu_counter_sum'? [-Werror=implicit-function-declaration]
1079 | percpu_counter_sum_all(&mp->m_delalloc_blks) == 0);
| ^~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:77:45: note: in definition of macro 'likely'
77 | # define likely(x) __builtin_expect(!!(x), 1)
| ^
fs/xfs/xfs_super.c:1078:9: note: in expansion of macro 'ASSERT'
1078 | ASSERT(xfs_is_shutdown(mp) ||
| ^~~~~~
cc1: some warnings being treated as errors
vim +1079 fs/xfs/xfs_super.c
8757c38f2cf6e5 Ian Kent 2019-11-04 1070
8757c38f2cf6e5 Ian Kent 2019-11-04 1071 static void
8757c38f2cf6e5 Ian Kent 2019-11-04 1072 xfs_destroy_percpu_counters(
8757c38f2cf6e5 Ian Kent 2019-11-04 1073 struct xfs_mount *mp)
8757c38f2cf6e5 Ian Kent 2019-11-04 1074 {
8757c38f2cf6e5 Ian Kent 2019-11-04 1075 percpu_counter_destroy(&mp->m_icount);
8757c38f2cf6e5 Ian Kent 2019-11-04 1076 percpu_counter_destroy(&mp->m_ifree);
8757c38f2cf6e5 Ian Kent 2019-11-04 1077 percpu_counter_destroy(&mp->m_fdblocks);
75c8c50fa16a23 Dave Chinner 2021-08-18 1078 ASSERT(xfs_is_shutdown(mp) ||
c35278f526edf1 Ye Bin 2023-03-14 @1079 percpu_counter_sum_all(&mp->m_delalloc_blks) == 0);
8757c38f2cf6e5 Ian Kent 2019-11-04 1080 percpu_counter_destroy(&mp->m_delalloc_blks);
2229276c528326 Darrick J. Wong 2022-04-12 1081 percpu_counter_destroy(&mp->m_frextents);
8757c38f2cf6e5 Ian Kent 2019-11-04 1082 }
8757c38f2cf6e5 Ian Kent 2019-11-04 1083
Hi Dave,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on linus/master]
[also build test ERROR on v6.3-rc2 next-20230315]
[cannot apply to dennis-percpu/for-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Dave-Chinner/cpumask-introduce-for_each_cpu_or/20230315-165202
patch link: https://lore.kernel.org/r/20230315084938.2544737-5-david%40fromorbit.com
patch subject: [PATCH 4/4] pcpcntr: remove percpu_counter_sum_all()
config: riscv-randconfig-r042-20230313 (https://download.01.org/0day-ci/archive/20230316/202303160421.bnmiVRCM-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://github.com/intel-lab-lkp/linux/commit/8360dcb55f1eb08fe7a1f457f3b99bef8e306c8b
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Dave-Chinner/cpumask-introduce-for_each_cpu_or/20230315-165202
git checkout 8360dcb55f1eb08fe7a1f457f3b99bef8e306c8b
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash fs/xfs/
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202303160421.bnmiVRCM-lkp@intel.com/
All errors (new ones prefixed by >>):
>> fs/xfs/xfs_super.c:1079:9: error: call to undeclared function 'percpu_counter_sum_all'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
percpu_counter_sum_all(&mp->m_delalloc_blks) == 0);
^
fs/xfs/xfs_super.c:1079:9: note: did you mean 'percpu_counter_sum'?
include/linux/percpu_counter.h:193:19: note: 'percpu_counter_sum' declared here
static inline s64 percpu_counter_sum(struct percpu_counter *fbc)
^
1 error generated.
vim +/percpu_counter_sum_all +1079 fs/xfs/xfs_super.c
8757c38f2cf6e5 Ian Kent 2019-11-04 1070
8757c38f2cf6e5 Ian Kent 2019-11-04 1071 static void
8757c38f2cf6e5 Ian Kent 2019-11-04 1072 xfs_destroy_percpu_counters(
8757c38f2cf6e5 Ian Kent 2019-11-04 1073 struct xfs_mount *mp)
8757c38f2cf6e5 Ian Kent 2019-11-04 1074 {
8757c38f2cf6e5 Ian Kent 2019-11-04 1075 percpu_counter_destroy(&mp->m_icount);
8757c38f2cf6e5 Ian Kent 2019-11-04 1076 percpu_counter_destroy(&mp->m_ifree);
8757c38f2cf6e5 Ian Kent 2019-11-04 1077 percpu_counter_destroy(&mp->m_fdblocks);
75c8c50fa16a23 Dave Chinner 2021-08-18 1078 ASSERT(xfs_is_shutdown(mp) ||
c35278f526edf1 Ye Bin 2023-03-14 @1079 percpu_counter_sum_all(&mp->m_delalloc_blks) == 0);
8757c38f2cf6e5 Ian Kent 2019-11-04 1080 percpu_counter_destroy(&mp->m_delalloc_blks);
2229276c528326 Darrick J. Wong 2022-04-12 1081 percpu_counter_destroy(&mp->m_frextents);
8757c38f2cf6e5 Ian Kent 2019-11-04 1082 }
8757c38f2cf6e5 Ian Kent 2019-11-04 1083
On Thu, Mar 16, 2023 at 03:22:31AM +0800, kernel test robot wrote: > Hi Dave, > > Thank you for the patch! Yet something to improve: No, ithere is nothing wrong with my patch series, this is something for _you_ to improve. > [auto build test ERROR on linus/master] > [also build test ERROR on v6.3-rc2 next-20230315] > [cannot apply to dennis-percpu/for-next] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > url: https://github.com/intel-lab-lkp/linux/commits/Dave-Chinner/cpumask-introduce-for_each_cpu_or/20230315-165202 > patch link: https://lore.kernel.org/r/20230315084938.2544737-5-david%40fromorbit.com > patch subject: [PATCH 4/4] pcpcntr: remove percpu_counter_sum_all() > config: i386-randconfig-a005 (https://download.01.org/0day-ci/archive/20230316/202303160333.XqIRz3JU-lkp@intel.com/config) > compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 > reproduce (this is a W=1 build): > # https://github.com/intel-lab-lkp/linux/commit/8360dcb55f1eb08fe7a1f457f3b99bef8e306c8b > git remote add linux-review https://github.com/intel-lab-lkp/linux > git fetch --no-tags linux-review Dave-Chinner/cpumask-introduce-for_each_cpu_or/20230315-165202 > git checkout 8360dcb55f1eb08fe7a1f457f3b99bef8e306c8b > # save the config file > mkdir build_dir && cp config build_dir/.config > make W=1 O=build_dir ARCH=i386 olddefconfig > make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/hwmon/ fs/xfs/ > > If you fix the issue, kindly add following tag where applicable > | Reported-by: kernel test robot <lkp@intel.com> > | Link: https://lore.kernel.org/oe-kbuild-all/202303160333.XqIRz3JU-lkp@intel.com/ > > All errors (new ones prefixed by >>): > > In file included from include/linux/string.h:5, > from include/linux/uuid.h:11, > from fs/xfs/xfs_linux.h:10, > from fs/xfs/xfs.h:22, > from fs/xfs/xfs_super.c:7: > fs/xfs/xfs_super.c: In function 'xfs_destroy_percpu_counters': > >> fs/xfs/xfs_super.c:1079:16: error: implicit declaration of function 'percpu_counter_sum_all'; did you mean 'percpu_counter_sum'? [-Werror=implicit-function-declaration] > 1079 | percpu_counter_sum_all(&mp->m_delalloc_blks) == 0); > | ^~~~~~~~~~~~~~~~~~~~~~ > include/linux/compiler.h:77:45: note: in definition of macro 'likely' > 77 | # define likely(x) __builtin_expect(!!(x), 1) > | ^ > fs/xfs/xfs_super.c:1078:9: note: in expansion of macro 'ASSERT' > 1078 | ASSERT(xfs_is_shutdown(mp) || > | ^~~~~~ > cc1: some warnings being treated as errors > > > vim +1079 fs/xfs/xfs_super.c > > 8757c38f2cf6e5 Ian Kent 2019-11-04 1070 > 8757c38f2cf6e5 Ian Kent 2019-11-04 1071 static void > 8757c38f2cf6e5 Ian Kent 2019-11-04 1072 xfs_destroy_percpu_counters( > 8757c38f2cf6e5 Ian Kent 2019-11-04 1073 struct xfs_mount *mp) > 8757c38f2cf6e5 Ian Kent 2019-11-04 1074 { > 8757c38f2cf6e5 Ian Kent 2019-11-04 1075 percpu_counter_destroy(&mp->m_icount); > 8757c38f2cf6e5 Ian Kent 2019-11-04 1076 percpu_counter_destroy(&mp->m_ifree); > 8757c38f2cf6e5 Ian Kent 2019-11-04 1077 percpu_counter_destroy(&mp->m_fdblocks); > 75c8c50fa16a23 Dave Chinner 2021-08-18 1078 ASSERT(xfs_is_shutdown(mp) || > c35278f526edf1 Ye Bin 2023-03-14 @1079 percpu_counter_sum_all(&mp->m_delalloc_blks) == 0); This change has not been committed to any tree that I am aware of. It was only posted to the XFS list yesterday, and I effectively NACK'd it and wrote this patchset instead to fix the issue. IOWs, if -anyone- has actually committed this change to add percpu_counter_sum_all() to XFS, they've done the wrong thing. Hence this build failure is a robot issue, not a problem with my patch series. -Dave.
On Thu, Mar 16, 2023 at 04:14:04AM +0800, kernel test robot wrote: > Hi Dave, > > Thank you for the patch! Yet something to improve: > > [auto build test ERROR on linus/master] > [also build test ERROR on v6.3-rc2 next-20230315] > [cannot apply to dennis-percpu/for-next] > [If your patch is applied to the wrong git tree, kindly drop us a note. > And when submitting patch, we suggest to use '--base' as documented in > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > url: https://github.com/intel-lab-lkp/linux/commits/Dave-Chinner/cpumask-introduce-for_each_cpu_or/20230315-165202 > patch link: https://lore.kernel.org/r/20230315084938.2544737-5-david%40fromorbit.com > patch subject: [PATCH 4/4] pcpcntr: remove percpu_counter_sum_all() > config: riscv-randconfig-r042-20230313 (https://download.01.org/0day-ci/archive/20230316/202303160421.bnmiVRCM-lkp@intel.com/config) > compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project 67409911353323ca5edf2049ef0df54132fa1ca7) > reproduce (this is a W=1 build): > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > chmod +x ~/bin/make.cross > # install riscv cross compiling tool for clang build > # apt-get install binutils-riscv64-linux-gnu > # https://github.com/intel-lab-lkp/linux/commit/8360dcb55f1eb08fe7a1f457f3b99bef8e306c8b > git remote add linux-review https://github.com/intel-lab-lkp/linux > git fetch --no-tags linux-review Dave-Chinner/cpumask-introduce-for_each_cpu_or/20230315-165202 > git checkout 8360dcb55f1eb08fe7a1f457f3b99bef8e306c8b > # save the config file > mkdir build_dir && cp config build_dir/.config > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv olddefconfig > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=riscv SHELL=/bin/bash fs/xfs/ > > If you fix the issue, kindly add following tag where applicable > | Reported-by: kernel test robot <lkp@intel.com> > | Link: https://lore.kernel.org/oe-kbuild-all/202303160421.bnmiVRCM-lkp@intel.com/ > > All errors (new ones prefixed by >>): > > >> fs/xfs/xfs_super.c:1079:9: error: call to undeclared function 'percpu_counter_sum_all'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] > percpu_counter_sum_all(&mp->m_delalloc_blks) == 0); > ^ > fs/xfs/xfs_super.c:1079:9: note: did you mean 'percpu_counter_sum'? > include/linux/percpu_counter.h:193:19: note: 'percpu_counter_sum' declared here > static inline s64 percpu_counter_sum(struct percpu_counter *fbc) > ^ > 1 error generated. > > > vim +/percpu_counter_sum_all +1079 fs/xfs/xfs_super.c > > 8757c38f2cf6e5 Ian Kent 2019-11-04 1070 > 8757c38f2cf6e5 Ian Kent 2019-11-04 1071 static void > 8757c38f2cf6e5 Ian Kent 2019-11-04 1072 xfs_destroy_percpu_counters( > 8757c38f2cf6e5 Ian Kent 2019-11-04 1073 struct xfs_mount *mp) > 8757c38f2cf6e5 Ian Kent 2019-11-04 1074 { > 8757c38f2cf6e5 Ian Kent 2019-11-04 1075 percpu_counter_destroy(&mp->m_icount); > 8757c38f2cf6e5 Ian Kent 2019-11-04 1076 percpu_counter_destroy(&mp->m_ifree); > 8757c38f2cf6e5 Ian Kent 2019-11-04 1077 percpu_counter_destroy(&mp->m_fdblocks); > 75c8c50fa16a23 Dave Chinner 2021-08-18 1078 ASSERT(xfs_is_shutdown(mp) || > c35278f526edf1 Ye Bin 2023-03-14 @1079 percpu_counter_sum_all(&mp->m_delalloc_blks) == 0); Ah, yes, ChatGPT-4 hired someone via Mechanical Turk to log in to my kernel.org account, answer the CAPTCHA, and push Ye's patch into for-next. (No it didn't. Is your bot merging random patches from the XFS list and whining when the result doesn't build? WTH is going on here??) --D > 8757c38f2cf6e5 Ian Kent 2019-11-04 1080 percpu_counter_destroy(&mp->m_delalloc_blks); > 2229276c528326 Darrick J. Wong 2022-04-12 1081 percpu_counter_destroy(&mp->m_frextents); > 8757c38f2cf6e5 Ian Kent 2019-11-04 1082 } > 8757c38f2cf6e5 Ian Kent 2019-11-04 1083 > > -- > 0-DAY CI Kernel Test Service > https://github.com/intel/lkp-tests
On Thu, Mar 16, 2023 at 07:55:50AM +1100, Dave Chinner wrote: > On Thu, Mar 16, 2023 at 03:22:31AM +0800, kernel test robot wrote: > > Hi Dave, > > > > Thank you for the patch! Yet something to improve: > > No, ithere is nothing wrong with my patch series, this is something > for _you_ to improve. > > > [auto build test ERROR on linus/master] > > [also build test ERROR on v6.3-rc2 next-20230315] > > [cannot apply to dennis-percpu/for-next] > > [If your patch is applied to the wrong git tree, kindly drop us a note. > > And when submitting patch, we suggest to use '--base' as documented in > > https://git-scm.com/docs/git-format-patch#_base_tree_information] > > > > url: https://github.com/intel-lab-lkp/linux/commits/Dave-Chinner/cpumask-introduce-for_each_cpu_or/20230315-165202 > > patch link: https://lore.kernel.org/r/20230315084938.2544737-5-david%40fromorbit.com > > patch subject: [PATCH 4/4] pcpcntr: remove percpu_counter_sum_all() > > config: i386-randconfig-a005 (https://download.01.org/0day-ci/archive/20230316/202303160333.XqIRz3JU-lkp@intel.com/config) > > compiler: gcc-11 (Debian 11.3.0-8) 11.3.0 > > reproduce (this is a W=1 build): > > # https://github.com/intel-lab-lkp/linux/commit/8360dcb55f1eb08fe7a1f457f3b99bef8e306c8b > > git remote add linux-review https://github.com/intel-lab-lkp/linux > > git fetch --no-tags linux-review Dave-Chinner/cpumask-introduce-for_each_cpu_or/20230315-165202 > > git checkout 8360dcb55f1eb08fe7a1f457f3b99bef8e306c8b > > # save the config file > > mkdir build_dir && cp config build_dir/.config > > make W=1 O=build_dir ARCH=i386 olddefconfig > > make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/hwmon/ fs/xfs/ > > > > If you fix the issue, kindly add following tag where applicable > > | Reported-by: kernel test robot <lkp@intel.com> > > | Link: https://lore.kernel.org/oe-kbuild-all/202303160333.XqIRz3JU-lkp@intel.com/ > > > > All errors (new ones prefixed by >>): > > > > In file included from include/linux/string.h:5, > > from include/linux/uuid.h:11, > > from fs/xfs/xfs_linux.h:10, > > from fs/xfs/xfs.h:22, > > from fs/xfs/xfs_super.c:7: > > fs/xfs/xfs_super.c: In function 'xfs_destroy_percpu_counters': > > >> fs/xfs/xfs_super.c:1079:16: error: implicit declaration of function 'percpu_counter_sum_all'; did you mean 'percpu_counter_sum'? [-Werror=implicit-function-declaration] > > 1079 | percpu_counter_sum_all(&mp->m_delalloc_blks) == 0); > > | ^~~~~~~~~~~~~~~~~~~~~~ > > include/linux/compiler.h:77:45: note: in definition of macro 'likely' > > 77 | # define likely(x) __builtin_expect(!!(x), 1) > > | ^ > > fs/xfs/xfs_super.c:1078:9: note: in expansion of macro 'ASSERT' > > 1078 | ASSERT(xfs_is_shutdown(mp) || > > | ^~~~~~ > > cc1: some warnings being treated as errors > > > > > > vim +1079 fs/xfs/xfs_super.c > > > > 8757c38f2cf6e5 Ian Kent 2019-11-04 1070 > > 8757c38f2cf6e5 Ian Kent 2019-11-04 1071 static void > > 8757c38f2cf6e5 Ian Kent 2019-11-04 1072 xfs_destroy_percpu_counters( > > 8757c38f2cf6e5 Ian Kent 2019-11-04 1073 struct xfs_mount *mp) > > 8757c38f2cf6e5 Ian Kent 2019-11-04 1074 { > > 8757c38f2cf6e5 Ian Kent 2019-11-04 1075 percpu_counter_destroy(&mp->m_icount); > > 8757c38f2cf6e5 Ian Kent 2019-11-04 1076 percpu_counter_destroy(&mp->m_ifree); > > 8757c38f2cf6e5 Ian Kent 2019-11-04 1077 percpu_counter_destroy(&mp->m_fdblocks); > > 75c8c50fa16a23 Dave Chinner 2021-08-18 1078 ASSERT(xfs_is_shutdown(mp) || > > c35278f526edf1 Ye Bin 2023-03-14 @1079 percpu_counter_sum_all(&mp->m_delalloc_blks) == 0); > > This change has not been committed to any tree that I am aware of. > It was only posted to the XFS list yesterday, and I effectively > NACK'd it and wrote this patchset instead to fix the issue. > > IOWs, if -anyone- has actually committed this change to add > percpu_counter_sum_all() to XFS, they've done the wrong thing. > Hence this build failure is a robot issue, not a problem with my > patch series. Sorry about this false positive report. The robot misinterpreted the link in the cover letter, and wrongly thought it was a prerequisite patch for this patch series, leading to this false report. We will improve the robot and increase the accuracy. -- Best Regards, Yujie
diff --git a/include/linux/percpu_counter.h b/include/linux/percpu_counter.h index 521a733e21a9..75b73c83bc9d 100644 --- a/include/linux/percpu_counter.h +++ b/include/linux/percpu_counter.h @@ -45,7 +45,6 @@ void percpu_counter_set(struct percpu_counter *fbc, s64 amount); void percpu_counter_add_batch(struct percpu_counter *fbc, s64 amount, s32 batch); s64 __percpu_counter_sum(struct percpu_counter *fbc); -s64 percpu_counter_sum_all(struct percpu_counter *fbc); int __percpu_counter_compare(struct percpu_counter *fbc, s64 rhs, s32 batch); void percpu_counter_sync(struct percpu_counter *fbc); @@ -196,11 +195,6 @@ static inline s64 percpu_counter_sum(struct percpu_counter *fbc) return percpu_counter_read(fbc); } -static inline s64 percpu_counter_sum_all(struct percpu_counter *fbc) -{ - return percpu_counter_read(fbc); -} - static inline bool percpu_counter_initialized(struct percpu_counter *fbc) { return true; diff --git a/lib/percpu_counter.c b/lib/percpu_counter.c index 0e096311e0c0..5004463c4f9f 100644 --- a/lib/percpu_counter.c +++ b/lib/percpu_counter.c @@ -122,23 +122,6 @@ void percpu_counter_sync(struct percpu_counter *fbc) } EXPORT_SYMBOL(percpu_counter_sync); -static s64 __percpu_counter_sum_mask(struct percpu_counter *fbc, - const struct cpumask *cpu_mask) -{ - s64 ret; - int cpu; - unsigned long flags; - - raw_spin_lock_irqsave(&fbc->lock, flags); - ret = fbc->count; - for_each_cpu_or(cpu, cpu_online_mask, cpu_mask) { - s32 *pcount = per_cpu_ptr(fbc->counters, cpu); - ret += *pcount; - } - raw_spin_unlock_irqrestore(&fbc->lock, flags); - return ret; -} - /* * Add up all the per-cpu counts, return the result. This is a more accurate * but much slower version of percpu_counter_read_positive(). @@ -153,22 +136,21 @@ static s64 __percpu_counter_sum_mask(struct percpu_counter *fbc, */ s64 __percpu_counter_sum(struct percpu_counter *fbc) { + s64 ret; + int cpu; + unsigned long flags; - return __percpu_counter_sum_mask(fbc, cpu_dying_mask); + raw_spin_lock_irqsave(&fbc->lock, flags); + ret = fbc->count; + for_each_cpu_or(cpu, cpu_online_mask, cpu_dying_mask) { + s32 *pcount = per_cpu_ptr(fbc->counters, cpu); + ret += *pcount; + } + raw_spin_unlock_irqrestore(&fbc->lock, flags); + return ret; } EXPORT_SYMBOL(__percpu_counter_sum); -/* - * This is slower version of percpu_counter_sum as it traverses all possible - * cpus. Use this only in the cases where accurate data is needed in the - * presense of CPUs getting offlined. - */ -s64 percpu_counter_sum_all(struct percpu_counter *fbc) -{ - return __percpu_counter_sum_mask(fbc, cpu_possible_mask); -} -EXPORT_SYMBOL(percpu_counter_sum_all); - int __percpu_counter_init(struct percpu_counter *fbc, s64 amount, gfp_t gfp, struct lock_class_key *key) {