Hi Ming, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on tip/irq/core] [also build test WARNING on v4.16-rc4 next-20180305] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Ming-Lei/genirq-affinity-irq-vector-spread-among-online-CPUs-as-far-as-possible/20180305-184912 config: i386-randconfig-a1-201809 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: # save the attached .config to linux build tree make ARCH=i386 All warnings (new ones prefixed by >>): kernel/irq/affinity.c: In function 'irq_create_affinity_masks': >> kernel/irq/affinity.c:201:50: warning: passing argument 3 of 'irq_build_affinity_masks' from incompatible pointer type curvec += irq_build_affinity_masks(nvecs, affd, node_to_cpumask, ^ kernel/irq/affinity.c:97:12: note: expected 'const struct cpumask (*)[1]' but argument is of type 'struct cpumask (*)[1]' static int irq_build_affinity_masks(int nvecs, const struct irq_affinity *affd, ^ vim +/irq_build_affinity_masks +201 kernel/irq/affinity.c 161 162 /** 163 * irq_create_affinity_masks - Create affinity masks for multiqueue spreading 164 * @nvecs: The total number of vectors 165 * @affd: Description of the affinity requirements 166 * 167 * Returns the masks pointer or NULL if allocation failed. 168 */ 169 struct cpumask * 170 irq_create_affinity_masks(int nvecs, const struct irq_affinity *affd) 171 { 172 int curvec; 173 struct cpumask *masks; 174 cpumask_var_t nmsk, *node_to_cpumask; 175 176 /* 177 * If there aren't any vectors left after applying the pre/post 178 * vectors don't bother with assigning affinity. 179 */ 180 if (nvecs == affd->pre_vectors + affd->post_vectors) 181 return NULL; 182 183 if (!zalloc_cpumask_var(&nmsk, GFP_KERNEL)) 184 return NULL; 185 186 masks = kcalloc(nvecs, sizeof(*masks), GFP_KERNEL); 187 if (!masks) 188 goto out; 189 190 node_to_cpumask = alloc_node_to_cpumask(); 191 if (!node_to_cpumask) 192 goto out; 193 194 /* Fill out vectors at the beginning that don't need affinity */ 195 for (curvec = 0; curvec < affd->pre_vectors; curvec++) 196 cpumask_copy(masks + curvec, irq_default_affinity); 197 198 /* Stabilize the cpumasks */ 199 get_online_cpus(); 200 build_node_to_cpumask(node_to_cpumask); > 201 curvec += irq_build_affinity_masks(nvecs, affd, node_to_cpumask, 202 cpu_possible_mask, nmsk, masks); 203 put_online_cpus(); 204 205 /* Fill out vectors at the end that don't need affinity */ 206 for (; curvec < nvecs; curvec++) 207 cpumask_copy(masks + curvec, irq_default_affinity); 208 free_node_to_cpumask(node_to_cpumask); 209 out: 210 free_cpumask_var(nmsk); 211 return masks; 212 } 213 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip