Message ID | 20230315030359.14162-4-palmer@rivosinc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm: Stop alaising VM_FAULT_HINDEX_MASK in arch code | expand |
Hi Palmer, I love your patch! Yet something to improve: [auto build test ERROR on akpm-mm/mm-everything] url: https://github.com/intel-lab-lkp/linux/commits/Palmer-Dabbelt/riscv-mm-fault-simplify-code-for-do_page_fault/20230315-111507 base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything patch link: https://lore.kernel.org/r/20230315030359.14162-4-palmer%40rivosinc.com patch subject: [PATCH v2 3/6] mm: Add VM_FAULT_ARCH_* codes config: s390-randconfig-r044-20230312 (https://download.01.org/0day-ci/archive/20230316/202303161725.tJspbzJz-lkp@intel.com/config) 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/d25cdd69b804d954e31ad8835750a8707e11af32 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Palmer-Dabbelt/riscv-mm-fault-simplify-code-for-do_page_fault/20230315-111507 git checkout d25cdd69b804d954e31ad8835750a8707e11af32 # 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 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/202303161725.tJspbzJz-lkp@intel.com/ All errors (new ones prefixed by >>): In file included from include/trace/define_trace.h:102, from include/trace/events/fs_dax.h:286, from fs/dax.c:31: include/trace/events/fs_dax.h: In function 'trace_raw_output_dax_pmd_fault_class': >> include/trace/stages/stage3_trace_output.h:70:37: error: expected expression before ',' token 70 | { flag_array, { -1, NULL }}; \ | ^ include/trace/trace_events.h:203:34: note: in definition of macro 'DECLARE_EVENT_CLASS' 203 | trace_event_printf(iter, print); \ | ^~~~~ include/trace/events/fs_dax.h:38:9: note: in expansion of macro 'TP_printk' 38 | TP_printk("dev %d:%d ino %#lx %s %s address %#lx vm_start " | ^~~~~~~~~ include/trace/events/fs_dax.h:50:17: note: in expansion of macro '__print_flags' 50 | __print_flags(__entry->result, "|", VM_FAULT_RESULT_TRACE) | ^~~~~~~~~~~~~ include/trace/events/fs_dax.h: In function 'trace_raw_output_dax_pte_fault_class': >> include/trace/stages/stage3_trace_output.h:70:37: error: expected expression before ',' token 70 | { flag_array, { -1, NULL }}; \ | ^ include/trace/trace_events.h:203:34: note: in definition of macro 'DECLARE_EVENT_CLASS' 203 | trace_event_printf(iter, print); \ | ^~~~~ include/trace/events/fs_dax.h:174:9: note: in expansion of macro 'TP_printk' 174 | TP_printk("dev %d:%d ino %#lx %s %s address %#lx pgoff %#lx %s", | ^~~~~~~~~ include/trace/events/fs_dax.h:182:17: note: in expansion of macro '__print_flags' 182 | __print_flags(__entry->result, "|", VM_FAULT_RESULT_TRACE) | ^~~~~~~~~~~~~ vim +70 include/trace/stages/stage3_trace_output.h 1bc191051dca28 include/trace/stages/stage3_defines.h Linus Torvalds 2022-03-23 65 af6b9668e85ffd include/trace/stages/stage3_defines.h Steven Rostedt (Google 2022-03-03 66) #undef __print_flags af6b9668e85ffd include/trace/stages/stage3_defines.h Steven Rostedt (Google 2022-03-03 67) #define __print_flags(flag, delim, flag_array...) \ af6b9668e85ffd include/trace/stages/stage3_defines.h Steven Rostedt (Google 2022-03-03 68) ({ \ af6b9668e85ffd include/trace/stages/stage3_defines.h Steven Rostedt (Google 2022-03-03 69) static const struct trace_print_flags __flags[] = \ af6b9668e85ffd include/trace/stages/stage3_defines.h Steven Rostedt (Google 2022-03-03 @70) { flag_array, { -1, NULL }}; \ af6b9668e85ffd include/trace/stages/stage3_defines.h Steven Rostedt (Google 2022-03-03 71) trace_print_flags_seq(p, delim, flag, __flags); \ af6b9668e85ffd include/trace/stages/stage3_defines.h Steven Rostedt (Google 2022-03-03 72) }) af6b9668e85ffd include/trace/stages/stage3_defines.h Steven Rostedt (Google 2022-03-03 73)
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index fd9b863869b4..47f36a2fdaac 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -938,6 +938,7 @@ typedef __bitwise unsigned int vm_fault_t; * in DAX) * @VM_FAULT_COMPLETED: ->fault completed, meanwhile mmap lock released * @VM_FAULT_HINDEX_MASK: mask HINDEX value + * @VM_FAULT_ARCH_* Architecture-specific VM fault codes. * */ enum vm_fault_reason { @@ -955,6 +956,11 @@ enum vm_fault_reason { VM_FAULT_NEEDDSYNC = (__force vm_fault_t)0x0002000, VM_FAULT_COMPLETED = (__force vm_fault_t)0x0004000, VM_FAULT_HINDEX_MASK = (__force vm_fault_t)0x00f0000, + VM_FAULT_ARCH_0 = (__force vm_fault_t)0x0100000, + VM_FAULT_ARCH_1 = (__force vm_fault_t)0x0200000, + VM_FAULT_ARCH_2 = (__force vm_fault_t)0x0400000, + VM_FAULT_ARCH_3 = (__force vm_fault_t)0x0800000, + VM_FAULT_ARCH_4 = (__force vm_fault_t)0x1000000, }; /* Encode hstate index for a hwpoisoned large page */ @@ -977,7 +983,12 @@ enum vm_fault_reason { { VM_FAULT_RETRY, "RETRY" }, \ { VM_FAULT_FALLBACK, "FALLBACK" }, \ { VM_FAULT_DONE_COW, "DONE_COW" }, \ - { VM_FAULT_NEEDDSYNC, "NEEDDSYNC" } + { VM_FAULT_NEEDDSYNC, "NEEDDSYNC" }, \ + { VM_FAULT_ARCH_0, "ARCH_0" }, \ + { VM_FAULT_ARCH_1, "ARCH_1" }, \ + { VM_FAULT_ARCH_2, "ARCH_2" }, \ + { VM_FAULT_ARCH_3, "ARCH_3" }, \ + { VM_FAULT_ARCH_4, "ARCH_4" }, \ struct vm_special_mapping { const char *name; /* The name, e.g. "[vdso]". */
A handful of architectures (arm, s390, and soon RISC-V) define their own internal fault codes, so instead dedicate a few standard codes as being architecture-specific to avoid conflicts. Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com> --- include/linux/mm_types.h | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-)