* 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).