Re: [PATCH v8 2/3] cachestat: implement cachestat syscall

From: kernel test robot
Date: Sun Jan 29 2023 - 07:12:38 EST


Hi Nhat,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on 1440f576022887004f719883acb094e7e0dd4944]

url: https://github.com/intel-lab-lkp/linux/commits/Nhat-Pham/workingset-refactor-LRU-refault-to-expose-refault-recency-check/20230128-171134
base: 1440f576022887004f719883acb094e7e0dd4944
patch link: https://lore.kernel.org/r/20230126175356.1582123-3-nphamcs%40gmail.com
patch subject: [PATCH v8 2/3] cachestat: implement cachestat syscall
config: s390-randconfig-s051-20230129 (https://download.01.org/0day-ci/archive/20230129/202301292044.JVAnbg9W-lkp@xxxxxxxxx/config)
compiler: s390-linux-gcc (GCC) 12.1.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.4-39-gce1a6720-dirty
# https://github.com/intel-lab-lkp/linux/commit/a05ffdcecfe9ac147066fb8472e6fb75491d0eed
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Nhat-Pham/workingset-refactor-LRU-refault-to-expose-refault-recency-check/20230128-171134
git checkout a05ffdcecfe9ac147066fb8472e6fb75491d0eed
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=s390 olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=s390 SHELL=/bin/bash

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

sparse warnings: (new ones prefixed by >>)
>> mm/filemap.c:4075:1: sparse: sparse: Using plain integer as NULL pointer
>> mm/filemap.c:4075:1: sparse: sparse: Using plain integer as NULL pointer
mm/filemap.c:1416:17: sparse: sparse: context imbalance in 'migration_entry_wait_on_locked' - unexpected unlock

vim +4075 mm/filemap.c

4037
4038 #ifdef CONFIG_CACHESTAT_SYSCALL
4039 /*
4040 * The cachestat(5) system call.
4041 *
4042 * cachestat() returns the page cache statistics of a file in the
4043 * bytes range specified by `off` and `len`: number of cached pages,
4044 * number of dirty pages, number of pages marked for writeback,
4045 * number of evicted pages, and number of recently evicted pages.
4046 *
4047 * An evicted page is a page that is previously in the page cache
4048 * but has been evicted since. A page is recently evicted if its last
4049 * eviction was recent enough that its reentry to the cache would
4050 * indicate that it is actively being used by the system, and that
4051 * there is memory pressure on the system.
4052 *
4053 * `off` and `len` must be non-negative integers. If `len` > 0,
4054 * the queried range is [`off`, `off` + `len`]. If `len` == 0,
4055 * we will query in the range from `off` to the end of the file.
4056 *
4057 * `cstat_version` is an unsigned integer indicating the specific version
4058 * of the cachestat struct. It must be at least 1, and does not exceed the
4059 * latest version number (which is currently 1). For now, user should
4060 * just pass 1.
4061 *
4062 * The `flags` argument is unused for now, but is included for future
4063 * extensibility. User should pass 0 (i.e no flag specified).
4064 *
4065 * Because the status of a page can change after cachestat() checks it
4066 * but before it returns to the application, the returned values may
4067 * contain stale information.
4068 *
4069 * return values:
4070 * zero - success
4071 * -EFAULT - cstat points to an illegal address
4072 * -EINVAL - invalid arguments
4073 * -EBADF - invalid file descriptor
4074 */
> 4075 SYSCALL_DEFINE6(cachestat, unsigned int, fd, off_t, off, size_t, len,

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests