All of lore.kernel.org
 help / color / mirror / Atom feed
* [intel-lts:5.10/yocto 17074/20393] drivers/net/ethernet/intel/igc/igc_main.c:2709:17: warning: variable 'timestamp' set but not used
@ 2022-02-10 13:56 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-02-10 13:56 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 7904 bytes --]

Hi Muhammad,

FYI, the error/warning still remains.

tree:   https://github.com/intel/linux-intel-lts.git 5.10/yocto
head:   2dafc777a64181d42982628c7f5907a03da5f070
commit: 765ce62a0644876bc2eb57fe84ab526f74129d6a [17074/20393] igc: Enable HW TX Timestamp for AF_XDP ZC
config: alpha-allyesconfig (https://download.01.org/0day-ci/archive/20220210/202202102122.OOXYUIIf-lkp(a)intel.com/config)
compiler: alpha-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel/linux-intel-lts/commit/765ce62a0644876bc2eb57fe84ab526f74129d6a
        git remote add intel-lts https://github.com/intel/linux-intel-lts.git
        git fetch --no-tags intel-lts 5.10/yocto
        git checkout 765ce62a0644876bc2eb57fe84ab526f74129d6a
        # save the config file to linux build tree
        mkdir build_dir
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=alpha SHELL=/bin/bash drivers/net/ethernet/intel/igc/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   drivers/net/ethernet/intel/igc/igc_main.c: In function 'igc_clean_tx_irq':
>> drivers/net/ethernet/intel/igc/igc_main.c:2709:17: warning: variable 'timestamp' set but not used [-Wunused-but-set-variable]
    2709 |         ktime_t timestamp = 0;
         |                 ^~~~~~~~~


vim +/timestamp +2709 drivers/net/ethernet/intel/igc/igc_main.c

  2692	
  2693	/**
  2694	 * igc_clean_tx_irq - Reclaim resources after transmit completes
  2695	 * @q_vector: pointer to q_vector containing needed info
  2696	 * @napi_budget: Used to determine if we are in netpoll
  2697	 *
  2698	 * returns true if ring is completely cleaned
  2699	 */
  2700	static bool igc_clean_tx_irq(struct igc_q_vector *q_vector, int napi_budget)
  2701	{
  2702		struct igc_adapter *adapter = q_vector->adapter;
  2703		unsigned int total_bytes = 0, total_packets = 0;
  2704		unsigned int budget = q_vector->tx.work_limit;
  2705		struct igc_ring *tx_ring = q_vector->tx.ring;
  2706		unsigned int i = tx_ring->next_to_clean;
  2707		struct igc_tx_buffer *tx_buffer;
  2708		union igc_adv_tx_desc *tx_desc;
> 2709		ktime_t timestamp = 0;
  2710		u32 xsk_frames = 0;
  2711	
  2712		if (test_bit(__IGC_DOWN, &adapter->state))
  2713			return true;
  2714	
  2715		tx_buffer = &tx_ring->tx_buffer_info[i];
  2716		tx_desc = IGC_TX_DESC(tx_ring, i);
  2717		i -= tx_ring->count;
  2718	
  2719		do {
  2720			union igc_adv_tx_desc *eop_desc = tx_buffer->next_to_watch;
  2721	
  2722			/* if next_to_watch is not set then there is no work pending */
  2723			if (!eop_desc)
  2724				break;
  2725	
  2726			/* prevent any other reads prior to eop_desc */
  2727			smp_rmb();
  2728	
  2729			/* if DD is not set pending work has not been completed */
  2730			if (!(eop_desc->wb.status & cpu_to_le32(IGC_TXD_STAT_DD)))
  2731				break;
  2732	
  2733			if (eop_desc->wb.status & cpu_to_le32(IGC_TXD_STAT_TS_STAT) &&
  2734			    tx_buffer->tx_flags & IGC_TX_FLAGS_DMA_TSTAMP) {
  2735				u64 tstamp = le64_to_cpu(eop_desc->wb.dma_tstamp);
  2736	
  2737				if (tx_ring->xsk_pool && adapter->tstamp_config.tx_type == HWTSTAMP_TX_ON)
  2738					timestamp = igc_tx_dma_hw_tstamp(adapter, tstamp);
  2739				else
  2740					igc_ptp_tx_dma_tstamp(adapter, tx_buffer->skb, tstamp);
  2741			}
  2742	
  2743			/* clear next_to_watch to prevent false hangs */
  2744			tx_buffer->next_to_watch = NULL;
  2745	
  2746			/* update the statistics for this packet */
  2747			total_bytes += tx_buffer->bytecount;
  2748			total_packets += tx_buffer->gso_segs;
  2749	
  2750			switch (tx_buffer->type) {
  2751			case IGC_TX_BUFFER_TYPE_XSK:
  2752				xsk_frames++;
  2753				break;
  2754			case IGC_TX_BUFFER_TYPE_XDP:
  2755				xdp_return_frame(tx_buffer->xdpf);
  2756				igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);
  2757				break;
  2758			case IGC_TX_BUFFER_TYPE_SKB:
  2759				napi_consume_skb(tx_buffer->skb, napi_budget);
  2760				igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);
  2761				break;
  2762			default:
  2763				netdev_warn_once(tx_ring->netdev,
  2764						 "Unknown tx buffer type\n");
  2765				break;
  2766			}
  2767	
  2768			/* clear last DMA location and unmap remaining buffers */
  2769			while (tx_desc != eop_desc) {
  2770				tx_buffer++;
  2771				tx_desc++;
  2772				i++;
  2773				if (unlikely(!i)) {
  2774					i -= tx_ring->count;
  2775					tx_buffer = tx_ring->tx_buffer_info;
  2776					tx_desc = IGC_TX_DESC(tx_ring, 0);
  2777				}
  2778	
  2779				/* unmap any remaining paged data */
  2780				if (dma_unmap_len(tx_buffer, len))
  2781					igc_unmap_tx_buffer(tx_ring->dev, tx_buffer);
  2782			}
  2783	
  2784			/* move us one more past the eop_desc for start of next pkt */
  2785			tx_buffer++;
  2786			tx_desc++;
  2787			i++;
  2788			if (unlikely(!i)) {
  2789				i -= tx_ring->count;
  2790				tx_buffer = tx_ring->tx_buffer_info;
  2791				tx_desc = IGC_TX_DESC(tx_ring, 0);
  2792			}
  2793	
  2794			/* issue prefetch for next Tx descriptor */
  2795			prefetch(tx_desc);
  2796	
  2797			/* update budget accounting */
  2798			budget--;
  2799		} while (likely(budget));
  2800	
  2801		netdev_tx_completed_queue(txring_txq(tx_ring),
  2802					  total_packets, total_bytes);
  2803	
  2804		i += tx_ring->count;
  2805		tx_ring->next_to_clean = i;
  2806	
  2807		igc_update_tx_stats(q_vector, total_packets, total_bytes);
  2808	
  2809		if (tx_ring->xsk_pool) {
  2810			if (xsk_frames)
  2811				xsk_tx_completed(tx_ring->xsk_pool, xsk_frames);
  2812			if (xsk_uses_need_wakeup(tx_ring->xsk_pool))
  2813				xsk_set_tx_need_wakeup(tx_ring->xsk_pool);
  2814			igc_xdp_xmit_zc(tx_ring);
  2815		}
  2816	
  2817		if (test_bit(IGC_RING_FLAG_TX_DETECT_HANG, &tx_ring->flags)) {
  2818			struct igc_hw *hw = &adapter->hw;
  2819	
  2820			/* Detect a transmit hang in hardware, this serializes the
  2821			 * check with the clearing of time_stamp and movement of i
  2822			 */
  2823			clear_bit(IGC_RING_FLAG_TX_DETECT_HANG, &tx_ring->flags);
  2824			if (tx_buffer->next_to_watch &&
  2825			    time_after(jiffies, tx_buffer->time_stamp +
  2826			    (adapter->tx_timeout_factor * HZ)) &&
  2827			    !(rd32(IGC_STATUS) & IGC_STATUS_TXOFF)) {
  2828				/* detected Tx unit hang */
  2829				netdev_err(tx_ring->netdev,
  2830					   "Detected Tx Unit Hang\n"
  2831					   "  Tx Queue             <%d>\n"
  2832					   "  TDH                  <%x>\n"
  2833					   "  TDT                  <%x>\n"
  2834					   "  next_to_use          <%x>\n"
  2835					   "  next_to_clean        <%x>\n"
  2836					   "buffer_info[next_to_clean]\n"
  2837					   "  time_stamp           <%lx>\n"
  2838					   "  next_to_watch        <%p>\n"
  2839					   "  jiffies              <%lx>\n"
  2840					   "  desc.status          <%x>\n",
  2841					   tx_ring->queue_index,
  2842					   rd32(IGC_TDH(tx_ring->reg_idx)),
  2843					   readl(tx_ring->tail),
  2844					   tx_ring->next_to_use,
  2845					   tx_ring->next_to_clean,
  2846					   tx_buffer->time_stamp,
  2847					   tx_buffer->next_to_watch,
  2848					   jiffies,
  2849					   tx_buffer->next_to_watch->wb.status);
  2850				netif_stop_subqueue(tx_ring->netdev,
  2851						    tx_ring->queue_index);
  2852	
  2853				/* we are about to reset, no point in enabling stuff */
  2854				return true;
  2855			}
  2856		}
  2857	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-02-10 13:56 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-10 13:56 [intel-lts:5.10/yocto 17074/20393] drivers/net/ethernet/intel/igc/igc_main.c:2709:17: warning: variable 'timestamp' set but not used kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.