Re: [PATCH] sched/isolation: isolate from handling managed interrupt

From: kbuild test robot
Date: Fri Jan 17 2020 - 15:52:52 EST


Hi Ming,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on tip/auto-latest]
[also build test ERROR on linux/master tip/irq/core tip/sched/core linus/master v5.5-rc6 next-20200117]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Ming-Lei/sched-isolation-isolate-from-handling-managed-interrupt/20200117-150600
base: https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git 9be5556beac21234216feb91225e4a09a7cf6a98
config: s390-randconfig-a001-20200117 (attached as .config)
compiler: s390-linux-gcc (GCC) 7.5.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=7.5.0 make.cross ARCH=s390

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>

All error/warnings (new ones prefixed by >>):

kernel//irq/manage.c: In function 'irq_do_set_affinity':
>> kernel//irq/manage.c:219:27: error: invalid initializer
cpumask_var_t tmp_mask = (struct cpumask *)mask;
^
>> kernel//irq/manage.c:234:37: warning: the address of 'tmp_mask' will always evaluate as 'true' [-Waddress]
if (irqd_affinity_is_managed(data) && tmp_mask &&
^~

vim +234 kernel//irq/manage.c

210
211 int irq_do_set_affinity(struct irq_data *data, const struct cpumask *mask,
212 bool force)
213 {
214 struct irq_desc *desc = irq_data_to_desc(data);
215 struct irq_chip *chip = irq_data_get_irq_chip(data);
216 const struct cpumask *housekeeping_mask =
217 housekeeping_cpumask(HK_FLAG_MANAGED_IRQ);
218 int ret;
> 219 cpumask_var_t tmp_mask = (struct cpumask *)mask;
220
221 if (!chip || !chip->irq_set_affinity)
222 return -EINVAL;
223
224 zalloc_cpumask_var(&tmp_mask, GFP_ATOMIC);
225
226 /*
227 * Userspace can't change managed irq's affinity, make sure that
228 * isolated CPU won't be selected as the effective CPU if this
229 * irq's affinity includes at least one housekeeping CPU.
230 *
231 * This way guarantees that isolated CPU won't be interrupted if
232 * IO isn't submitted from isolated CPU.
233 */
> 234 if (irqd_affinity_is_managed(data) && tmp_mask &&
235 cpumask_intersects(mask, housekeeping_mask))
236 cpumask_and(tmp_mask, mask, housekeeping_mask);
237
238 ret = chip->irq_set_affinity(data, tmp_mask, force);
239 switch (ret) {
240 case IRQ_SET_MASK_OK:
241 case IRQ_SET_MASK_OK_DONE:
242 cpumask_copy(desc->irq_common_data.affinity, mask);
243 /* fall through */
244 case IRQ_SET_MASK_OK_NOCOPY:
245 irq_validate_effective_affinity(data);
246 irq_set_thread_affinity(desc);
247 ret = 0;
248 }
249
250 free_cpumask_var(tmp_mask);
251
252 return ret;
253 }
254

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx Intel Corporation

Attachment: .config.gz
Description: application/gzip