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