CC: kbuild-all(a)lists.01.org In-Reply-To: <20210826141623.8151-1-kerneljasonxing@gmail.com> References: <20210826141623.8151-1-kerneljasonxing@gmail.com> TO: kerneljasonxing(a)gmail.com TO: jesse.brandeburg(a)intel.com TO: anthony.l.nguyen(a)intel.com TO: davem(a)davemloft.net TO: kuba(a)kernel.org TO: ast(a)kernel.org TO: daniel(a)iogearbox.net TO: hawk(a)kernel.org TO: john.fastabend(a)gmail.com TO: andrii(a)kernel.org TO: kafai(a)fb.com Hi, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on tnguy-next-queue/dev-queue] [also build test WARNING on v5.14-rc7 next-20210826] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/kerneljasonxing-gmail-com/ixgbe-let-the-xdpdrv-work-with-more-than-64-cpus/20210826-221806 base: https://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue.git dev-queue :::::: branch date: 8 hours ago :::::: commit date: 8 hours ago config: microblaze-randconfig-s032-20210826 (attached as .config) compiler: microblaze-linux-gcc (GCC) 11.2.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.3-348-gf0e6938b-dirty # https://github.com/0day-ci/linux/commit/2452ffa7fe1ae306a6d0abd5c0c411e02da21774 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review kerneljasonxing-gmail-com/ixgbe-let-the-xdpdrv-work-with-more-than-64-cpus/20210826-221806 git checkout 2452ffa7fe1ae306a6d0abd5c0c411e02da21774 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=microblaze SHELL=/bin/bash drivers/net/ethernet/intel/ixgbe/ net/ipv6/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:10175:25: sparse: sparse: incompatible types in comparison expression (different address spaces): drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:10175:25: sparse: struct bpf_prog [noderef] __rcu * drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:10175:25: sparse: struct bpf_prog * >> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:8614:9: sparse: sparse: context imbalance in 'ixgbe_xmit_xdp_ring' - different lock contexts for basic block >> drivers/net/ethernet/intel/ixgbe/ixgbe_main.c:10229:9: sparse: sparse: context imbalance in 'ixgbe_xdp_ring_update_tail_locked' - different lock contexts for basic block vim +/ixgbe_xmit_xdp_ring +8614 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c 09a3b1f8b1af72 drivers/net/ixgbe/ixgbe_main.c Stephen Hemminger 2009-03-21 8543 eadec877ce9ca4 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Alexander Duyck 2018-07-09 8544 #endif 46515fdb1adff1 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Björn Töpel 2018-10-02 8545 int ixgbe_xmit_xdp_ring(struct ixgbe_adapter *adapter, 44fa2dbd475996 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jesper Dangaard Brouer 2018-04-17 8546 struct xdp_frame *xdpf) 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8547 { 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8548 struct ixgbe_tx_buffer *tx_buffer; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8549 union ixgbe_adv_tx_desc *tx_desc; 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8550 struct ixgbe_ring *ring; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8551 u32 len, cmd_type; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8552 dma_addr_t dma; 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8553 int index, ret; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8554 u16 i; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8555 039930945a72d9 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jesper Dangaard Brouer 2018-04-17 8556 len = xdpf->len; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8557 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8558 index = ixgbe_determine_xdp_q_idx(smp_processor_id()); 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8559 ring = adapter->xdp_ring[index]; 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8560 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8561 if (static_branch_unlikely(&ixgbe_xdp_locking_key)) 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8562 spin_lock(&ring->tx_lock); 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8563 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8564 if (unlikely(!ixgbe_desc_unused(ring))) { 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8565 ret = IXGBE_XDP_CONSUMED; 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8566 goto out; 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8567 } 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8568 039930945a72d9 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jesper Dangaard Brouer 2018-04-17 8569 dma = dma_map_single(ring->dev, xdpf->data, len, DMA_TO_DEVICE); 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8570 if (dma_mapping_error(ring->dev, dma)) { 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8571 ret = IXGBE_XDP_CONSUMED; 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8572 goto out; 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8573 } 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8574 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8575 /* record the location of the first descriptor for this packet */ 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8576 tx_buffer = &ring->tx_buffer_info[ring->next_to_use]; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8577 tx_buffer->bytecount = len; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8578 tx_buffer->gso_segs = 1; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8579 tx_buffer->protocol = 0; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8580 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8581 i = ring->next_to_use; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8582 tx_desc = IXGBE_TX_DESC(ring, i); 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8583 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8584 dma_unmap_len_set(tx_buffer, len, len); 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8585 dma_unmap_addr_set(tx_buffer, dma, dma); 039930945a72d9 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jesper Dangaard Brouer 2018-04-17 8586 tx_buffer->xdpf = xdpf; 189ead81a83eba drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jesper Dangaard Brouer 2018-04-17 8587 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8588 tx_desc->read.buffer_addr = cpu_to_le64(dma); 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8589 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8590 /* put descriptor type bits */ 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8591 cmd_type = IXGBE_ADVTXD_DTYP_DATA | 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8592 IXGBE_ADVTXD_DCMD_DEXT | 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8593 IXGBE_ADVTXD_DCMD_IFCS; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8594 cmd_type |= len | IXGBE_TXD_CMD; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8595 tx_desc->read.cmd_type_len = cpu_to_le32(cmd_type); 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8596 tx_desc->read.olinfo_status = 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8597 cpu_to_le32(len << IXGBE_ADVTXD_PAYLEN_SHIFT); 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8598 7379f97a4fce3c drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-03-28 8599 /* Avoid any potential race with xdp_xmit and cleanup */ 7379f97a4fce3c drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-03-28 8600 smp_wmb(); 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8601 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8602 /* set next_to_watch value indicating a packet is present */ 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8603 i++; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8604 if (i == ring->count) 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8605 i = 0; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8606 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8607 tx_buffer->next_to_watch = tx_desc; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8608 ring->next_to_use = i; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8609 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8610 ret = IXGBE_XDP_TX; 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8611 out: 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8612 if (static_branch_unlikely(&ixgbe_xdp_locking_key)) 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 8613 spin_unlock(&ring->tx_lock); 2452ffa7fe1ae3 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c Jason Xing 2021-08-26 @8614 return ret; 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8615 } 33fdc82f08835d drivers/net/ethernet/intel/ixgbe/ixgbe_main.c John Fastabend 2017-04-24 8616 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org