Re: [PATCH 1/2] kvfree_rcu: Release a page cache under memory pressure

From: kernel test robot
Date: Mon Mar 08 2021 - 18:38:34 EST


Hi "Uladzislau,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on rcu/dev]
[also build test WARNING on linux/master linus/master v5.12-rc2 next-20210305]
[cannot apply to hnaz-linux-mm/master]
[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]

url: https://github.com/0day-ci/linux/commits/Uladzislau-Rezki-Sony/kvfree_rcu-Release-a-page-cache-under-memory-pressure/20210309-035155
base: https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev
config: riscv-randconfig-r002-20210309 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 3a11a41795bec548e91621caaa4cc00fc31b2212)
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/0day-ci/linux/commit/d1c3a54d06b2b088b2a7b4e7f2a0a85bcbfbf53a
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Uladzislau-Rezki-Sony/kvfree_rcu-Release-a-page-cache-under-memory-pressure/20210309-035155
git checkout d1c3a54d06b2b088b2a7b4e7f2a0a85bcbfbf53a
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> kernel/rcu/tree.c:3518:7: warning: variable '__ret' is uninitialized when used here [-Wuninitialized]
if (xchg(&backoff_page_cache_fill, false)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/riscv/include/asm/cmpxchg.h:146:23: note: expanded from macro 'xchg'
(__typeof__(*(ptr))) __xchg((ptr), _x_, sizeof(*(ptr))); \
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/riscv/include/asm/cmpxchg.h:140:2: note: expanded from macro '__xchg'
__ret; \
^~~~~
kernel/rcu/tree.c:3518:7: note: variable '__ret' is declared here
arch/riscv/include/asm/cmpxchg.h:146:23: note: expanded from macro 'xchg'
(__typeof__(*(ptr))) __xchg((ptr), _x_, sizeof(*(ptr))); \
^
arch/riscv/include/asm/cmpxchg.h:121:2: note: expanded from macro '__xchg'
__typeof__(*(ptr)) __ret; \
^
1 warning generated.


vim +/__ret +3518 kernel/rcu/tree.c

3512
3513 static void
3514 run_page_cache_worker(struct kfree_rcu_cpu *krcp)
3515 {
3516 if (rcu_scheduler_active == RCU_SCHEDULER_RUNNING &&
3517 !atomic_xchg(&krcp->work_in_progress, 1)) {
> 3518 if (xchg(&backoff_page_cache_fill, false)) {
3519 queue_delayed_work(system_wq,
3520 &krcp->page_cache_work, PAGE_CACHE_FILL_DELAY);
3521 } else {
3522 hrtimer_init(&krcp->hrtimer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
3523 krcp->hrtimer.function = schedule_page_work_fn;
3524 hrtimer_start(&krcp->hrtimer, 0, HRTIMER_MODE_REL);
3525 }
3526 }
3527 }
3528

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip