Re: [PATCH v4 3/4] cachestat: implement cachestat syscall

Nhat Pham
2022-12-31T08:36:09Z

On Fri, Dec 16, 2022 at 2:27 PM kernel test robot <lkp@intel.com> wrote:
>
> Hi Nhat,
>
> Thank you for the patch! Yet something to improve:
>
> [auto build test ERROR on shuah-kselftest/next]
> [also build test ERROR on akpm-mm/mm-everything linus/master v6.1 next-20221216]
> [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/Nhat-Pham/cachestat-a-new-syscall-for-page-cache-state-of-files/20221217-032254
> base: https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git next
> patch link: https://lore.kernel.org/r/20221216192149.3902877-4-nphamcs%40gmail.com
> patch subject: [PATCH v4 3/4] cachestat: implement cachestat syscall
> config: s390-allmodconfig
> compiler: s390-linux-gcc (GCC) 12.1.0
> 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
> # https://github.com/intel-lab-lkp/linux/commit/85fdb04584b3d9a3b90d2c63794ec65e8d996b18
> git remote add linux-review https://github.com/intel-lab-lkp/linux
> git fetch --no-tags linux-review Nhat-Pham/cachestat-a-new-syscall-for-page-cache-state-of-files/20221217-032254
> git checkout 85fdb04584b3d9a3b90d2c63794ec65e8d996b18
> # save the config file
> mkdir build_dir && cp config build_dir/.config
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=s390 olddefconfig
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=s390 SHELL=/bin/bash arch/s390/kvm/
>
> If you fix the issue, kindly add following tag where applicable
> | Reported-by: kernel test robot <lkp@intel.com>
>
> All error/warnings (new ones prefixed by >>):
>
> In file included from include/uapi/asm-generic/mman.h:5,
> from ./arch/s390/include/generated/uapi/asm/mman.h:1,
> from include/uapi/linux/mman.h:5,
> from include/linux/fs.h:49,
> from include/linux/huge_mm.h:8,
> from include/linux/mm.h:737,
> from include/linux/kvm_host.h:16,
> from arch/s390/kvm/kvm-s390.h:17,
> from arch/s390/kvm/gaccess.c:16:
> >> include/uapi/asm-generic/mman-common.h:16:25: error: expected identifier before numeric constant
> 16 | #define PROT_NONE 0x0 /* page can not be accessed */
> | ^~~
> arch/s390/kvm/gaccess.c:493:9: note: in expansion of macro 'PROT_NONE'
> 493 | PROT_NONE,
> | ^~~~~~~~~
> arch/s390/kvm/gaccess.c: In function 'trans_exc_ending':
> >> arch/s390/kvm/gaccess.c:516:17: error: duplicate case value
> 516 | case PROT_TYPE_LA:
> | ^~~~
> arch/s390/kvm/gaccess.c:509:17: note: previously used here
> 509 | case PROT_NONE:
> | ^~~~
> In file included from include/linux/compiler_types.h:79,
> from <command-line>:
> >> include/linux/compiler_attributes.h:223:41: warning: attribute 'fallthrough' not preceding a case label or default label
> 223 | # define fallthrough __attribute__((__fallthrough__))
> | ^~~~~~~~~~~~~
> arch/s390/kvm/gaccess.c:515:25: note: in expansion of macro 'fallthrough'
> 515 | fallthrough;
> | ^~~~~~~~~~~
>
>
> vim +16 include/uapi/asm-generic/mman-common.h
>
> 5f6164f3092832 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 9
> 5f6164f3092832 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 10 #define PROT_READ 0x1 /* page can be read */
> 5f6164f3092832 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 11 #define PROT_WRITE 0x2 /* page can be written */
> 5f6164f3092832 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 12 #define PROT_EXEC 0x4 /* page can be executed */
> 5f6164f3092832 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 13 #define PROT_SEM 0x8 /* page may be used for atomic ops */
> d41938d2cbee92 include/uapi/asm-generic/mman-common.h Dave Martin 2019-12-11 14 /* 0x10 reserved for arch-specific use */
> d41938d2cbee92 include/uapi/asm-generic/mman-common.h Dave Martin 2019-12-11 15 /* 0x20 reserved for arch-specific use */
> 5f6164f3092832 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 @16 #define PROT_NONE 0x0 /* page can not be accessed */
> 5f6164f3092832 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 17 #define PROT_GROWSDOWN 0x01000000 /* mprotect flag: extend change to start of growsdown vma */
> 5f6164f3092832 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 18 #define PROT_GROWSUP 0x02000000 /* mprotect flag: extend change to end of growsup vma */
> 5f6164f3092832 include/asm-generic/mman.h Michael S. Tsirkin 2006-02-15 19
>
> --
> 0-DAY CI Kernel Test Service
> https://01.org/lkp

These build errors (and the ones reported by the later kernel test robot emails)
seem to come from my refactoring, which adds:

#include <uapi/linux/mman.h>

to include/linux/fs.h. Several other files (which chain-include fs.h)
also define
several same constants elsewhere. This include seems unnecessary, as
I can just replace it with:

struct cachestat;

This should be fixed in the next version of the patch series.