Hi Nicholas, I love your patch! Yet something to improve: [auto build test ERROR on powerpc/next] [also build test ERROR on scottwood/next v5.8-rc2 next-20200626] [cannot apply to kvm-ppc/kvm-ppc-next] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Nicholas-Piggin/powerpc-pseries-IPI-doorbell-improvements/20200627-230544 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next config: powerpc-randconfig-c003-20200628 (attached as .config) compiler: powerpc64-linux-gcc (GCC) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All error/warnings (new ones prefixed by >>): In file included from arch/powerpc/kernel/asm-offsets.c:38: arch/powerpc/include/asm/dbell.h: In function 'doorbell_global_ipi': >> arch/powerpc/include/asm/dbell.h:114:12: error: implicit declaration of function 'get_hard_smp_processor_id'; did you mean 'raw_smp_processor_id'? [-Werror=implicit-function-declaration] 114 | u32 tag = get_hard_smp_processor_id(cpu); | ^~~~~~~~~~~~~~~~~~~~~~~~~ | raw_smp_processor_id arch/powerpc/include/asm/dbell.h: In function 'doorbell_try_core_ipi': >> arch/powerpc/include/asm/dbell.h:146:28: error: implicit declaration of function 'cpu_sibling_mask'; did you mean 'cpu_online_mask'? [-Werror=implicit-function-declaration] 146 | if (cpumask_test_cpu(cpu, cpu_sibling_mask(this_cpu))) { | ^~~~~~~~~~~~~~~~ | cpu_online_mask >> arch/powerpc/include/asm/dbell.h:146:28: warning: passing argument 2 of 'cpumask_test_cpu' makes pointer from integer without a cast [-Wint-conversion] 146 | if (cpumask_test_cpu(cpu, cpu_sibling_mask(this_cpu))) { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ | | | int In file included from include/linux/workqueue.h:15, from include/linux/rhashtable-types.h:15, from include/linux/ipc.h:7, from include/uapi/linux/sem.h:5, from include/linux/sem.h:5, from include/linux/compat.h:14, from arch/powerpc/kernel/asm-offsets.c:14: include/linux/cpumask.h:365:67: note: expected 'const struct cpumask *' but argument is of type 'int' 365 | static inline int cpumask_test_cpu(int cpu, const struct cpumask *cpumask) | ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~ cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:114: arch/powerpc/kernel/asm-offsets.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1175: prepare0] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [Makefile:185: __sub-make] Error 2 make: Target 'prepare' not remade because of errors. vim +114 arch/powerpc/include/asm/dbell.h 100 101 /* 102 * Doorbells must only be used if CPU_FTR_DBELL is available. 103 * msgsnd is used in HV, and msgsndp is used in !HV. 104 * 105 * These should be used by platform code that is aware of restrictions. 106 * Other arch code should use ->cause_ipi. 107 * 108 * doorbell_global_ipi() sends a dbell to any target CPU. 109 * Must be used only by architectures that address msgsnd target 110 * by PIR/get_hard_smp_processor_id. 111 */ 112 static inline void doorbell_global_ipi(int cpu) 113 { > 114 u32 tag = get_hard_smp_processor_id(cpu); 115 116 kvmppc_set_host_ipi(cpu); 117 /* Order previous accesses vs. msgsnd, which is treated as a store */ 118 ppc_msgsnd_sync(); 119 ppc_msgsnd(PPC_DBELL_MSGTYPE, 0, tag); 120 } 121 122 /* 123 * doorbell_core_ipi() sends a dbell to a target CPU in the same core. 124 * Must be used only by architectures that address msgsnd target 125 * by TIR/cpu_thread_in_core. 126 */ 127 static inline void doorbell_core_ipi(int cpu) 128 { 129 u32 tag = cpu_thread_in_core(cpu); 130 131 kvmppc_set_host_ipi(cpu); 132 /* Order previous accesses vs. msgsnd, which is treated as a store */ 133 ppc_msgsnd_sync(); 134 ppc_msgsnd(PPC_DBELL_MSGTYPE, 0, tag); 135 } 136 137 /* 138 * Attempt to cause a core doorbell if destination is on the same core. 139 * Returns 1 on success, 0 on failure. 140 */ 141 static inline int doorbell_try_core_ipi(int cpu) 142 { 143 int this_cpu = get_cpu(); 144 int ret = 0; 145 > 146 if (cpumask_test_cpu(cpu, cpu_sibling_mask(this_cpu))) { 147 doorbell_core_ipi(cpu); 148 ret = 1; 149 } 150 151 put_cpu(); 152 153 return ret; 154 } 155 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip