All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH netdev 0/5] virtio-net support xdp socket zero copy xmit
@ 2021-01-05  9:11 Xuan Zhuo
  2021-01-05  9:11 ` [PATCH netdev 1/5] xsk: support get page for drv Xuan Zhuo
                   ` (7 more replies)
  0 siblings, 8 replies; 41+ messages in thread
From: Xuan Zhuo @ 2021-01-05  9:11 UTC (permalink / raw)
  To: netdev
  Cc: dust.li, tonylu, Michael S. Tsirkin, Jason Wang, David S. Miller,
	Jakub Kicinski, Björn Töpel, Magnus Karlsson,
	Jonathan Lemon, Alexei Starovoitov, Daniel Borkmann,
	Jesper Dangaard Brouer, John Fastabend, Andrii Nakryiko,
	Martin KaFai Lau, Song Liu, Yonghong Song, KP Singh,
	open list:VIRTIO CORE AND NET DRIVERS, open list,
	open list:XDP SOCKETS (AF_XDP)

The first patch made some adjustments to xsk.

The second patch itself can be used as an independent patch to solve the problem
that XDP may fail to load when the number of queues is insufficient.

The third to last patch implements support for xsk in virtio-net.

A practical problem with virtio is that tx interrupts are not very reliable.
There will always be some missing or delayed tx interrupts. So I specially added
a point timer to solve this problem. Of course, considering performance issues,
The timer only triggers when the ring of the network card is full.

Regarding the issue of virtio-net supporting xsk's zero copy rx, I am also
developing it, but I found that the modification may be relatively large, so I
consider this patch set to be separated from the code related to xsk zero copy
rx.

Xuan Zhuo (5):
  xsk: support get page for drv
  virtio-net: support XDP_TX when not more queues
  virtio-net, xsk: distinguish XDP_TX and XSK XMIT ctx
  xsk, virtio-net: prepare for support xsk
  virtio-net, xsk: virtio-net support xsk zero copy tx

 drivers/net/virtio_net.c    | 643 +++++++++++++++++++++++++++++++++++++++-----
 include/linux/netdevice.h   |   1 +
 include/net/xdp_sock_drv.h  |  10 +
 include/net/xsk_buff_pool.h |   1 +
 net/xdp/xsk_buff_pool.c     |  10 +-
 5 files changed, 597 insertions(+), 68 deletions(-)

--
1.8.3.1


^ permalink raw reply	[flat|nested] 41+ messages in thread
* Re: [PATCH netdev 2/5] virtio-net: support XDP_TX when not more queues
@ 2021-01-05 12:14 kernel test robot
  0 siblings, 0 replies; 41+ messages in thread
From: kernel test robot @ 2021-01-05 12:14 UTC (permalink / raw)
  To: kbuild

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

CC: kbuild-all(a)lists.01.org
In-Reply-To: <aa8d42a567f9e97a5071cad4ba88abc3ac5ac760.1609837120.git.xuanzhuo@linux.alibaba.com>
References: <aa8d42a567f9e97a5071cad4ba88abc3ac5ac760.1609837120.git.xuanzhuo@linux.alibaba.com>
TO: Xuan Zhuo <xuanzhuo@linux.alibaba.com>
TO: netdev(a)vger.kernel.org
CC: dust.li(a)linux.alibaba.com
CC: tonylu(a)linux.alibaba.com
CC: "Michael S. Tsirkin" <mst@redhat.com>
CC: Jason Wang <jasowang@redhat.com>
CC: Jakub Kicinski <kuba@kernel.org>
CC: "Björn Töpel" <bjorn.topel@intel.com>
CC: Magnus Karlsson <magnus.karlsson@intel.com>
CC: Jonathan Lemon <jonathan.lemon@gmail.com>
CC: Alexei Starovoitov <ast@kernel.org>

Hi Xuan,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on ipvs/master]
[also build test WARNING on linus/master v5.11-rc2 next-20210104]
[cannot apply to sparc-next/master]
[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/Xuan-Zhuo/virtio-net-support-xdp-socket-zero-copy-xmit/20210105-171505
base:   https://git.kernel.org/pub/scm/linux/kernel/git/horms/ipvs.git master
:::::: branch date: 3 hours ago
:::::: commit date: 3 hours ago
config: x86_64-randconfig-s032-20210105 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-208-g46a52ca4-dirty
        # https://github.com/0day-ci/linux/commit/a2d366b9711956a7a3309fe64c206567fc7bdc9a
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Xuan-Zhuo/virtio-net-support-xdp-socket-zero-copy-xmit/20210105-171505
        git checkout a2d366b9711956a7a3309fe64c206567fc7bdc9a
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 

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


"sparse warnings: (new ones prefixed by >>)"
>> drivers/net/virtio_net.c:498:9: sparse: sparse: context imbalance in 'virtnet_get_xdp_sq' - different lock contexts for basic block
   drivers/net/virtio_net.c:507:22: sparse: sparse: context imbalance in 'virtnet_put_xdp_sq' - unexpected unlock

vim +/virtnet_get_xdp_sq +498 drivers/net/virtio_net.c

56434a01b12e99e John Fastabend  2016-12-15  484  
a2d366b9711956a Xuan Zhuo       2021-01-05  485  static struct send_queue *virtnet_get_xdp_sq(struct virtnet_info *vi)
2a43565c0646532 Toshiaki Makita 2018-07-23  486  {
2a43565c0646532 Toshiaki Makita 2018-07-23  487  	unsigned int qp;
a2d366b9711956a Xuan Zhuo       2021-01-05  488  	struct netdev_queue *txq;
2a43565c0646532 Toshiaki Makita 2018-07-23  489  
a2d366b9711956a Xuan Zhuo       2021-01-05  490  	if (vi->curr_queue_pairs > nr_cpu_ids) {
2a43565c0646532 Toshiaki Makita 2018-07-23  491  		qp = vi->curr_queue_pairs - vi->xdp_queue_pairs + smp_processor_id();
a2d366b9711956a Xuan Zhuo       2021-01-05  492  	} else {
a2d366b9711956a Xuan Zhuo       2021-01-05  493  		qp = smp_processor_id() % vi->curr_queue_pairs;
a2d366b9711956a Xuan Zhuo       2021-01-05  494  		txq = netdev_get_tx_queue(vi->dev, qp);
a2d366b9711956a Xuan Zhuo       2021-01-05  495  		__netif_tx_lock(txq, raw_smp_processor_id());
a2d366b9711956a Xuan Zhuo       2021-01-05  496  	}
a2d366b9711956a Xuan Zhuo       2021-01-05  497  
2a43565c0646532 Toshiaki Makita 2018-07-23 @498  	return &vi->sq[qp];
2a43565c0646532 Toshiaki Makita 2018-07-23  499  }
2a43565c0646532 Toshiaki Makita 2018-07-23  500  

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

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32997 bytes --]

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2021-01-19  5:02 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-05  9:11 [PATCH netdev 0/5] virtio-net support xdp socket zero copy xmit Xuan Zhuo
2021-01-05  9:11 ` [PATCH netdev 1/5] xsk: support get page for drv Xuan Zhuo
2021-01-05  9:11 ` [PATCH netdev 2/5] virtio-net: support XDP_TX when not more queues Xuan Zhuo
2021-01-05  9:11 ` [PATCH netdev 3/5] virtio-net, xsk: distinguish XDP_TX and XSK XMIT ctx Xuan Zhuo
2021-01-05  9:11 ` [PATCH netdev 4/5] xsk, virtio-net: prepare for support xsk Xuan Zhuo
2021-01-05  9:11 ` [PATCH netdev 5/5] virtio-net, xsk: virtio-net support xsk zero copy tx Xuan Zhuo
2021-01-05 13:19   ` kernel test robot
2021-01-05 13:19     ` kernel test robot
2021-01-05 13:21   ` Michael S. Tsirkin
2021-01-05 13:21     ` Michael S. Tsirkin
2021-01-05 13:25   ` [kbuild] " Dan Carpenter
2021-01-05 13:25     ` Dan Carpenter
2021-01-05 13:25     ` Dan Carpenter
2021-01-05 13:29   ` kernel test robot
2021-01-05 13:29     ` kernel test robot
2021-01-05 13:35   ` kernel test robot
2021-01-05 13:35     ` kernel test robot
2021-01-05  9:32 ` [PATCH netdev 0/5] virtio-net support xdp socket zero copy xmit Jason Wang
2021-01-05  9:32   ` Jason Wang
2021-01-05 12:25 ` Michael S. Tsirkin
2021-01-05 12:25   ` Michael S. Tsirkin
2021-01-16  2:59 ` [PATCH net-next v2 0/7] " Xuan Zhuo
2021-01-16  2:59   ` [PATCH net-next v2 1/7] xsk: support get page for drv Xuan Zhuo
2021-01-16  2:59   ` [PATCH net-next v2 2/7] virtio-net, xsk: distinguish XDP_TX and XSK XMIT ctx Xuan Zhuo
2021-01-18  6:45     ` Jason Wang
2021-01-18  6:45       ` Jason Wang
2021-01-16  2:59   ` [PATCH net-next v2 3/7] xsk, virtio-net: prepare for support xsk zerocopy xmit Xuan Zhuo
2021-01-16  2:59   ` [PATCH net-next v2 4/7] virtio-net, xsk: support xsk enable/disable Xuan Zhuo
2021-01-16  2:59   ` [PATCH net-next v2 5/7] virtio-net, xsk: realize the function of xsk packet sending Xuan Zhuo
2021-01-16  4:47     ` Jakub Kicinski
2021-01-18  9:10     ` Jason Wang
2021-01-18  9:10       ` Jason Wang
2021-01-18 12:27       ` Michael S. Tsirkin
2021-01-18 12:27         ` Michael S. Tsirkin
2021-01-16  2:59   ` [PATCH net-next v2 6/7] virtio-net, xsk: implement xsk wakeup callback Xuan Zhuo
2021-01-19  4:50     ` Jason Wang
2021-01-19  4:50       ` Jason Wang
2021-01-16  2:59   ` [PATCH net-next v2 7/7] virtio-net, xsk: set xsk completed when packet sent done Xuan Zhuo
2021-01-18  6:28   ` [PATCH net-next v2 0/7] virtio-net support xdp socket zero copy xmit Jason Wang
2021-01-18  6:28     ` Jason Wang
2021-01-05 12:14 [PATCH netdev 2/5] virtio-net: support XDP_TX when not more queues 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.