llvm.lists.linux.dev archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH net-next 8/8] virtio_net: introduce receive_small_xdp()
       [not found] <20230322030308.16046-9-xuanzhuo@linux.alibaba.com>
@ 2023-03-23  2:06 ` kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2023-03-23  2:06 UTC (permalink / raw)
  To: Xuan Zhuo, netdev
  Cc: llvm, oe-kbuild-all, Michael S. Tsirkin, Jason Wang,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Alexei Starovoitov,
	Daniel Borkmann, Jesper Dangaard Brouer, John Fastabend,
	virtualization, bpf

Hi Xuan,

Thank you for the patch! Perhaps something to improve:

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

url:    https://github.com/intel-lab-lkp/linux/commits/Xuan-Zhuo/virtio_net-mergeable-xdp-put-old-page-immediately/20230322-110445
patch link:    https://lore.kernel.org/r/20230322030308.16046-9-xuanzhuo%40linux.alibaba.com
patch subject: [PATCH net-next 8/8] virtio_net: introduce receive_small_xdp()
config: i386-randconfig-a002 (https://download.01.org/0day-ci/archive/20230323/202303230953.y0P1e1Fc-lkp@intel.com/config)
compiler: clang version 14.0.6 (https://github.com/llvm/llvm-project f28c006a5895fc0e329fe15fead81e37457cb1d1)
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-lab-lkp/linux/commit/6445923dc4c91e57f98b8356d0bd706e95dafaa1
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Xuan-Zhuo/virtio_net-mergeable-xdp-put-old-page-immediately/20230322-110445
        git checkout 6445923dc4c91e57f98b8356d0bd706e95dafaa1
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 olddefconfig
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/net/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202303230953.y0P1e1Fc-lkp@intel.com/

All warnings (new ones prefixed by >>):

>> drivers/net/virtio_net.c:969:6: warning: variable 'buflen' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized]
           if (unlikely(xdp_headroom < virtnet_get_headroom(vi))) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:22: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/virtio_net.c:990:22: note: uninitialized use occurs here
           xdp_init_buff(&xdp, buflen, &rq->xdp_rxq);
                               ^~~~~~
   drivers/net/virtio_net.c:969:2: note: remove the 'if' if its condition is always true
           if (unlikely(xdp_headroom < virtnet_get_headroom(vi))) {
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/virtio_net.c:958:21: note: initialize the variable 'buflen' to silence this warning
           unsigned int buflen;
                              ^
                               = 0
   drivers/net/virtio_net.c:1428:6: warning: variable 'page' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
           if (unlikely(len > truesize - room)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:22: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/virtio_net.c:1519:11: note: uninitialized use occurs here
           put_page(page);
                    ^~~~
   drivers/net/virtio_net.c:1428:2: note: remove the 'if' if its condition is always false
           if (unlikely(len > truesize - room)) {
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/virtio_net.c:1421:19: note: initialize the variable 'page' to silence this warning
           struct page *page;
                            ^
                             = NULL
   drivers/net/virtio_net.c:1428:6: warning: variable 'num_buf' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
           if (unlikely(len > truesize - room)) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:78:22: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/virtio_net.c:1520:25: note: uninitialized use occurs here
           mergeable_buf_free(rq, num_buf, dev, stats);
                                  ^~~~~~~
   drivers/net/virtio_net.c:1428:2: note: remove the 'if' if its condition is always false
           if (unlikely(len > truesize - room)) {
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/virtio_net.c:1422:13: note: initialize the variable 'num_buf' to silence this warning
           int num_buf;
                      ^
                       = 0
   3 warnings generated.


vim +969 drivers/net/virtio_net.c

4941d472bf95b4 Jason Wang             2017-07-19   941  
6445923dc4c91e Xuan Zhuo              2023-03-22   942  static struct sk_buff *receive_small_xdp(struct net_device *dev,
bb91accf27335c Jason Wang             2016-12-23   943  					 struct virtnet_info *vi,
bb91accf27335c Jason Wang             2016-12-23   944  					 struct receive_queue *rq,
6445923dc4c91e Xuan Zhuo              2023-03-22   945  					 struct bpf_prog *xdp_prog,
6445923dc4c91e Xuan Zhuo              2023-03-22   946  					 void *buf,
6445923dc4c91e Xuan Zhuo              2023-03-22   947  					 void *ctx,
186b3c998c50fc Jason Wang             2017-09-19   948  					 unsigned int len,
7d9d60fd4ab696 Toshiaki Makita        2018-07-23   949  					 unsigned int *xdp_xmit,
d46eeeaf99bcfa Jason Wang             2018-07-31   950  					 struct virtnet_rq_stats *stats)
f121159d72091f Michael S. Tsirkin     2013-11-28   951  {
4941d472bf95b4 Jason Wang             2017-07-19   952  	unsigned int xdp_headroom = (unsigned long)ctx;
f6b10209b90d48 Jason Wang             2017-02-21   953  	unsigned int header_offset = VIRTNET_RX_PAD + xdp_headroom;
f6b10209b90d48 Jason Wang             2017-02-21   954  	unsigned int headroom = vi->hdr_len + header_offset;
6445923dc4c91e Xuan Zhuo              2023-03-22   955  	struct virtio_net_hdr_mrg_rxbuf *hdr = buf + header_offset;
4941d472bf95b4 Jason Wang             2017-07-19   956  	struct page *page = virt_to_head_page(buf);
4941d472bf95b4 Jason Wang             2017-07-19   957  	struct page *xdp_page;
6445923dc4c91e Xuan Zhuo              2023-03-22   958  	unsigned int buflen;
0354e4d19cd5de John Fastabend         2017-02-02   959  	struct xdp_buff xdp;
6445923dc4c91e Xuan Zhuo              2023-03-22   960  	struct sk_buff *skb;
6445923dc4c91e Xuan Zhuo              2023-03-22   961  	unsigned int delta = 0;
6445923dc4c91e Xuan Zhuo              2023-03-22   962  	unsigned int metasize = 0;
f6b10209b90d48 Jason Wang             2017-02-21   963  	void *orig_data;
bb91accf27335c Jason Wang             2016-12-23   964  	u32 act;
bb91accf27335c Jason Wang             2016-12-23   965  
95dbe9e7b3720e Jesper Dangaard Brouer 2018-02-20   966  	if (unlikely(hdr->hdr.gso_type))
bb91accf27335c Jason Wang             2016-12-23   967  		goto err_xdp;
0354e4d19cd5de John Fastabend         2017-02-02   968  
4941d472bf95b4 Jason Wang             2017-07-19  @969  	if (unlikely(xdp_headroom < virtnet_get_headroom(vi))) {
4941d472bf95b4 Jason Wang             2017-07-19   970  		int offset = buf - page_address(page) + header_offset;
4941d472bf95b4 Jason Wang             2017-07-19   971  		unsigned int tlen = len + vi->hdr_len;
981f14d42a7f16 Heng Qi                2023-01-31   972  		int num_buf = 1;
4941d472bf95b4 Jason Wang             2017-07-19   973  
4941d472bf95b4 Jason Wang             2017-07-19   974  		xdp_headroom = virtnet_get_headroom(vi);
4941d472bf95b4 Jason Wang             2017-07-19   975  		header_offset = VIRTNET_RX_PAD + xdp_headroom;
4941d472bf95b4 Jason Wang             2017-07-19   976  		headroom = vi->hdr_len + header_offset;
4941d472bf95b4 Jason Wang             2017-07-19   977  		buflen = SKB_DATA_ALIGN(GOOD_PACKET_LEN + headroom) +
4941d472bf95b4 Jason Wang             2017-07-19   978  			SKB_DATA_ALIGN(sizeof(struct skb_shared_info));
4941d472bf95b4 Jason Wang             2017-07-19   979  		xdp_page = xdp_linearize_page(rq, &num_buf, page,
4941d472bf95b4 Jason Wang             2017-07-19   980  					      offset, header_offset,
4941d472bf95b4 Jason Wang             2017-07-19   981  					      &tlen);
4941d472bf95b4 Jason Wang             2017-07-19   982  		if (!xdp_page)
4941d472bf95b4 Jason Wang             2017-07-19   983  			goto err_xdp;
4941d472bf95b4 Jason Wang             2017-07-19   984  
4941d472bf95b4 Jason Wang             2017-07-19   985  		buf = page_address(xdp_page);
4941d472bf95b4 Jason Wang             2017-07-19   986  		put_page(page);
4941d472bf95b4 Jason Wang             2017-07-19   987  		page = xdp_page;
4941d472bf95b4 Jason Wang             2017-07-19   988  	}
4941d472bf95b4 Jason Wang             2017-07-19   989  
43b5169d8355cc Lorenzo Bianconi       2020-12-22   990  	xdp_init_buff(&xdp, buflen, &rq->xdp_rxq);
be9df4aff65f18 Lorenzo Bianconi       2020-12-22   991  	xdp_prepare_buff(&xdp, buf + VIRTNET_RX_PAD + vi->hdr_len,
be9df4aff65f18 Lorenzo Bianconi       2020-12-22   992  			 xdp_headroom, len, true);
f6b10209b90d48 Jason Wang             2017-02-21   993  	orig_data = xdp.data;
4249e276b1ab30 Xuan Zhuo              2023-03-22   994  
4249e276b1ab30 Xuan Zhuo              2023-03-22   995  	act = virtnet_xdp_handler(xdp_prog, &xdp, dev, xdp_xmit, stats);
0354e4d19cd5de John Fastabend         2017-02-02   996  
bb91accf27335c Jason Wang             2016-12-23   997  	switch (act) {
4249e276b1ab30 Xuan Zhuo              2023-03-22   998  	case VIRTNET_XDP_RES_PASS:
2de2f7f40ef923 John Fastabend         2017-02-02   999  		/* Recalculate length in case bpf program changed it */
f6b10209b90d48 Jason Wang             2017-02-21  1000  		delta = orig_data - xdp.data;
6870de435b90c0 Nikita V. Shirokov     2018-04-17  1001  		len = xdp.data_end - xdp.data;
503d539a6e417b Yuya Kusakabe          2020-02-25  1002  		metasize = xdp.data - xdp.data_meta;
bb91accf27335c Jason Wang             2016-12-23  1003  		break;
4249e276b1ab30 Xuan Zhuo              2023-03-22  1004  
4249e276b1ab30 Xuan Zhuo              2023-03-22  1005  	case VIRTNET_XDP_RES_CONSUMED:
bb91accf27335c Jason Wang             2016-12-23  1006  		goto xdp_xmit;
4249e276b1ab30 Xuan Zhuo              2023-03-22  1007  
4249e276b1ab30 Xuan Zhuo              2023-03-22  1008  	case VIRTNET_XDP_RES_DROP:
bb91accf27335c Jason Wang             2016-12-23  1009  		goto err_xdp;
bb91accf27335c Jason Wang             2016-12-23  1010  	}
bb91accf27335c Jason Wang             2016-12-23  1011  
f6b10209b90d48 Jason Wang             2017-02-21  1012  	skb = build_skb(buf, buflen);
053c9e18c6f9cf Wenliang Wang          2021-12-16  1013  	if (!skb)
f6b10209b90d48 Jason Wang             2017-02-21  1014  		goto err;
6445923dc4c91e Xuan Zhuo              2023-03-22  1015  
f6b10209b90d48 Jason Wang             2017-02-21  1016  	skb_reserve(skb, headroom - delta);
6870de435b90c0 Nikita V. Shirokov     2018-04-17  1017  	skb_put(skb, len);
503d539a6e417b Yuya Kusakabe          2020-02-25  1018  	if (metasize)
503d539a6e417b Yuya Kusakabe          2020-02-25  1019  		skb_metadata_set(skb, metasize);
503d539a6e417b Yuya Kusakabe          2020-02-25  1020  
f121159d72091f Michael S. Tsirkin     2013-11-28  1021  	return skb;
bb91accf27335c Jason Wang             2016-12-23  1022  
bb91accf27335c Jason Wang             2016-12-23  1023  err_xdp:
d46eeeaf99bcfa Jason Wang             2018-07-31  1024  	stats->xdp_drops++;
053c9e18c6f9cf Wenliang Wang          2021-12-16  1025  err:
d46eeeaf99bcfa Jason Wang             2018-07-31  1026  	stats->drops++;
4941d472bf95b4 Jason Wang             2017-07-19  1027  	put_page(page);
bb91accf27335c Jason Wang             2016-12-23  1028  xdp_xmit:
bb91accf27335c Jason Wang             2016-12-23  1029  	return NULL;
f121159d72091f Michael S. Tsirkin     2013-11-28  1030  }
f121159d72091f Michael S. Tsirkin     2013-11-28  1031  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests

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

only message in thread, other threads:[~2023-03-23  2:07 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20230322030308.16046-9-xuanzhuo@linux.alibaba.com>
2023-03-23  2:06 ` [PATCH net-next 8/8] virtio_net: introduce receive_small_xdp() kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).