Re: [PATCH net-next 1/5] net: napi: Make napi_defer_hard_irqs per-NAPI

kernel test robot
2024-08-30T16:51:24Z

Hi Joe,

kernel test robot noticed the following build errors:

[auto build test ERROR on net-next/main]

url: https://github.com/intel-lab-lkp/linux/commits/Joe-Damato/net-napi-Make-napi_defer_hard_irqs-per-NAPI/20240829-211617
base: net-next/main
patch link: https://lore.kernel.org/r/20240829131214.169977-2-jdamato%40fastly.com
patch subject: [PATCH net-next 1/5] net: napi: Make napi_defer_hard_irqs per-NAPI
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20240831/202408310038.VztWz8YR-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240831/202408310038.VztWz8YR-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202408310038.VztWz8YR-lkp@intel.com/

All errors (new ones prefixed by >>):

In file included from drivers/net/ethernet/intel/idpf/idpf_dev.c:4:
In file included from drivers/net/ethernet/intel/idpf/idpf.h:22:
>> drivers/net/ethernet/intel/idpf/idpf_txrx.h:475:1: error: static assertion failed due to requirement '__builtin_offsetof(struct idpf_q_vector, __cacheline_group_end__read_write) - (__builtin_offsetof(struct idpf_q_vector, __cacheline_group_begin__read_write) + sizeof ((((struct idpf_q_vector *)0)->__cacheline_group_begin__read_write))) == (424 + 2 * sizeof(struct dim))': offsetof(struct idpf_q_vector, __cacheline_group_end__read_write) - offsetofend(struct idpf_q_vector, __cacheline_group_begin__read_write) == (424 + 2 * sizeof(struct dim))
475 | libeth_cacheline_set_assert(struct idpf_q_vector, 104,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
476 | 424 + 2 * sizeof(struct dim),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
477 | 8 + sizeof(cpumask_var_t));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
include/net/libeth/cache.h:62:2: note: expanded from macro 'libeth_cacheline_set_assert'
62 | libeth_cacheline_group_assert(type, read_write, rw); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/net/libeth/cache.h:17:16: note: expanded from macro 'libeth_cacheline_group_assert'
17 | static_assert(offsetof(type, __cacheline_group_end__##grp) - \
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18 | offsetofend(type, __cacheline_group_begin__##grp) == \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19 | (sz))
| ~~~~~
include/linux/stddef.h:16:32: note: expanded from macro 'offsetof'
16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
| ^
include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
drivers/net/ethernet/intel/idpf/idpf_txrx.h:475:1: note: expression evaluates to '768 == 760'
475 | libeth_cacheline_set_assert(struct idpf_q_vector, 104,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
476 | 424 + 2 * sizeof(struct dim),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
477 | 8 + sizeof(cpumask_var_t));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
include/net/libeth/cache.h:62:2: note: expanded from macro 'libeth_cacheline_set_assert'
62 | libeth_cacheline_group_assert(type, read_write, rw); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/net/libeth/cache.h:18:59: note: expanded from macro 'libeth_cacheline_group_assert'
17 | static_assert(offsetof(type, __cacheline_group_end__##grp) - \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18 | offsetofend(type, __cacheline_group_begin__##grp) == \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
19 | (sz))
| ~~~~~
include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
1 error generated.
--
In file included from drivers/net/ethernet/intel/idpf/idpf_main.c:4:
In file included from drivers/net/ethernet/intel/idpf/idpf.h:22:
>> drivers/net/ethernet/intel/idpf/idpf_txrx.h:475:1: error: static assertion failed due to requirement '__builtin_offsetof(struct idpf_q_vector, __cacheline_group_end__read_write) - (__builtin_offsetof(struct idpf_q_vector, __cacheline_group_begin__read_write) + sizeof ((((struct idpf_q_vector *)0)->__cacheline_group_begin__read_write))) == (424 + 2 * sizeof(struct dim))': offsetof(struct idpf_q_vector, __cacheline_group_end__read_write) - offsetofend(struct idpf_q_vector, __cacheline_group_begin__read_write) == (424 + 2 * sizeof(struct dim))
475 | libeth_cacheline_set_assert(struct idpf_q_vector, 104,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
476 | 424 + 2 * sizeof(struct dim),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
477 | 8 + sizeof(cpumask_var_t));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
include/net/libeth/cache.h:62:2: note: expanded from macro 'libeth_cacheline_set_assert'
62 | libeth_cacheline_group_assert(type, read_write, rw); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/net/libeth/cache.h:17:16: note: expanded from macro 'libeth_cacheline_group_assert'
17 | static_assert(offsetof(type, __cacheline_group_end__##grp) - \
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18 | offsetofend(type, __cacheline_group_begin__##grp) == \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19 | (sz))
| ~~~~~
include/linux/stddef.h:16:32: note: expanded from macro 'offsetof'
16 | #define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER)
| ^
include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
drivers/net/ethernet/intel/idpf/idpf_txrx.h:475:1: note: expression evaluates to '768 == 760'
475 | libeth_cacheline_set_assert(struct idpf_q_vector, 104,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
476 | 424 + 2 * sizeof(struct dim),
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
477 | 8 + sizeof(cpumask_var_t));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
include/net/libeth/cache.h:62:2: note: expanded from macro 'libeth_cacheline_set_assert'
62 | libeth_cacheline_group_assert(type, read_write, rw); \
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/net/libeth/cache.h:18:59: note: expanded from macro 'libeth_cacheline_group_assert'
17 | static_assert(offsetof(type, __cacheline_group_end__##grp) - \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18 | offsetofend(type, __cacheline_group_begin__##grp) == \
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~
19 | (sz))
| ~~~~~
include/linux/build_bug.h:77:50: note: expanded from macro 'static_assert'
77 | #define static_assert(expr, ...) __static_assert(expr, ##__VA_ARGS__, #expr)
| ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:78:56: note: expanded from macro '__static_assert'
78 | #define __static_assert(expr, msg, ...) _Static_assert(expr, msg)
| ^~~~
drivers/net/ethernet/intel/idpf/idpf_main.c:167:39: warning: shift count >= width of type [-Wshift-count-overflow]
167 | err = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
| ^~~~~~~~~~~~~~~~
include/linux/dma-mapping.h:77:54: note: expanded from macro 'DMA_BIT_MASK'
77 | #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
| ^ ~~~
1 warning and 1 error generated.

vim +475 drivers/net/ethernet/intel/idpf/idpf_txrx.h

4930fbf419a72d Pavan Kumar Linga 2023-08-07 412
4930fbf419a72d Pavan Kumar Linga 2023-08-07 413 /**
4930fbf419a72d Pavan Kumar Linga 2023-08-07 414 * struct idpf_q_vector
1c325aac10a82f Alan Brady 2023-08-07 415 * @vport: Vport back pointer
5a816aae2d463d Alexander Lobakin 2024-06-20 416 * @num_rxq: Number of RX queues
d4d5587182664b Pavan Kumar Linga 2023-08-07 417 * @num_txq: Number of TX queues
5a816aae2d463d Alexander Lobakin 2024-06-20 418 * @num_bufq: Number of buffer queues
e4891e4687c8dd Alexander Lobakin 2024-06-20 419 * @num_complq: number of completion queues
5a816aae2d463d Alexander Lobakin 2024-06-20 420 * @rx: Array of RX queues to service
1c325aac10a82f Alan Brady 2023-08-07 421 * @tx: Array of TX queues to service
5a816aae2d463d Alexander Lobakin 2024-06-20 422 * @bufq: Array of buffer queues to service
e4891e4687c8dd Alexander Lobakin 2024-06-20 423 * @complq: array of completion queues
5a816aae2d463d Alexander Lobakin 2024-06-20 424 * @intr_reg: See struct idpf_intr_reg
5a816aae2d463d Alexander Lobakin 2024-06-20 425 * @napi: napi handler
5a816aae2d463d Alexander Lobakin 2024-06-20 426 * @total_events: Number of interrupts processed
c2d548cad1508d Joshua Hay 2023-08-07 427 * @tx_dim: Data for TX net_dim algorithm
1c325aac10a82f Alan Brady 2023-08-07 428 * @tx_itr_value: TX interrupt throttling rate
1c325aac10a82f Alan Brady 2023-08-07 429 * @tx_intr_mode: Dynamic ITR or not
1c325aac10a82f Alan Brady 2023-08-07 430 * @tx_itr_idx: TX ITR index
3a8845af66edb3 Alan Brady 2023-08-07 431 * @rx_dim: Data for RX net_dim algorithm
95af467d9a4e3b Alan Brady 2023-08-07 432 * @rx_itr_value: RX interrupt throttling rate
95af467d9a4e3b Alan Brady 2023-08-07 433 * @rx_intr_mode: Dynamic ITR or not
95af467d9a4e3b Alan Brady 2023-08-07 434 * @rx_itr_idx: RX ITR index
5a816aae2d463d Alexander Lobakin 2024-06-20 435 * @v_idx: Vector index
bf9bf7042a38eb Alexander Lobakin 2024-06-20 436 * @affinity_mask: CPU affinity mask
4930fbf419a72d Pavan Kumar Linga 2023-08-07 437 */
4930fbf419a72d Pavan Kumar Linga 2023-08-07 438 struct idpf_q_vector {
5a816aae2d463d Alexander Lobakin 2024-06-20 439 __cacheline_group_begin_aligned(read_mostly);
1c325aac10a82f Alan Brady 2023-08-07 440 struct idpf_vport *vport;
1c325aac10a82f Alan Brady 2023-08-07 441
5a816aae2d463d Alexander Lobakin 2024-06-20 442 u16 num_rxq;
d4d5587182664b Pavan Kumar Linga 2023-08-07 443 u16 num_txq;
5a816aae2d463d Alexander Lobakin 2024-06-20 444 u16 num_bufq;
e4891e4687c8dd Alexander Lobakin 2024-06-20 445 u16 num_complq;
5a816aae2d463d Alexander Lobakin 2024-06-20 446 struct idpf_rx_queue **rx;
e4891e4687c8dd Alexander Lobakin 2024-06-20 447 struct idpf_tx_queue **tx;
5a816aae2d463d Alexander Lobakin 2024-06-20 448 struct idpf_buf_queue **bufq;
e4891e4687c8dd Alexander Lobakin 2024-06-20 449 struct idpf_compl_queue **complq;
e4891e4687c8dd Alexander Lobakin 2024-06-20 450
5a816aae2d463d Alexander Lobakin 2024-06-20 451 struct idpf_intr_reg intr_reg;
5a816aae2d463d Alexander Lobakin 2024-06-20 452 __cacheline_group_end_aligned(read_mostly);
5a816aae2d463d Alexander Lobakin 2024-06-20 453
5a816aae2d463d Alexander Lobakin 2024-06-20 454 __cacheline_group_begin_aligned(read_write);
5a816aae2d463d Alexander Lobakin 2024-06-20 455 struct napi_struct napi;
5a816aae2d463d Alexander Lobakin 2024-06-20 456 u16 total_events;
5a816aae2d463d Alexander Lobakin 2024-06-20 457
c2d548cad1508d Joshua Hay 2023-08-07 458 struct dim tx_dim;
1c325aac10a82f Alan Brady 2023-08-07 459 u16 tx_itr_value;
1c325aac10a82f Alan Brady 2023-08-07 460 bool tx_intr_mode;
1c325aac10a82f Alan Brady 2023-08-07 461 u32 tx_itr_idx;
1c325aac10a82f Alan Brady 2023-08-07 462
3a8845af66edb3 Alan Brady 2023-08-07 463 struct dim rx_dim;
95af467d9a4e3b Alan Brady 2023-08-07 464 u16 rx_itr_value;
95af467d9a4e3b Alan Brady 2023-08-07 465 bool rx_intr_mode;
95af467d9a4e3b Alan Brady 2023-08-07 466 u32 rx_itr_idx;
5a816aae2d463d Alexander Lobakin 2024-06-20 467 __cacheline_group_end_aligned(read_write);
95af467d9a4e3b Alan Brady 2023-08-07 468
5a816aae2d463d Alexander Lobakin 2024-06-20 469 __cacheline_group_begin_aligned(cold);
5a816aae2d463d Alexander Lobakin 2024-06-20 470 u16 v_idx;
bf9bf7042a38eb Alexander Lobakin 2024-06-20 471
bf9bf7042a38eb Alexander Lobakin 2024-06-20 472 cpumask_var_t affinity_mask;
5a816aae2d463d Alexander Lobakin 2024-06-20 473 __cacheline_group_end_aligned(cold);
4930fbf419a72d Pavan Kumar Linga 2023-08-07 474 };
5a816aae2d463d Alexander Lobakin 2024-06-20 @475 libeth_cacheline_set_assert(struct idpf_q_vector, 104,
5a816aae2d463d Alexander Lobakin 2024-06-20 476 424 + 2 * sizeof(struct dim),
5a816aae2d463d Alexander Lobakin 2024-06-20 477 8 + sizeof(cpumask_var_t));
0fe45467a1041e Pavan Kumar Linga 2023-08-07 478

--
0-DAY CI Kernel Test Service