mbox series

[RFC,net-next,00/22] Introduce mb bit in xdp_buff/xdp_frame

Message ID cover.1595503780.git.lorenzo@kernel.org
Headers show
Series Introduce mb bit in xdp_buff/xdp_frame | expand

Message

Lorenzo Bianconi July 23, 2020, 11:42 a.m. UTC
Introduce multi-buffer bit (mb) in xdp_frame/xdp_buffer to specify
if shared_info area has been properly initialized for non-linear
xdp buffers.
Initialize mb to 0 for all xdp drivers

Lorenzo Bianconi (22):
  xdp: introduce mb in xdp_buff/xdp_frame
  xdp: initialize xdp_buff mb bit to 0 in netif_receive_generic_xdp
  net: virtio_net: initialize mb bit of xdp_buff to 0
  net: xen-netfront: initialize mb bit of xdp_buff to 0
  net: veth: initialize mb bit of xdp_buff to 0
  net: hv_netvsc: initialize mb bit of xdp_buff to 0
  net: bnxt: initialize mb bit in xdp_buff to 0
  net: dpaa2: initialize mb bit in xdp_buff to 0
  net: ti: initialize mb bit in xdp_buff to 0
  net: nfp: initialize mb bit in xdp_buff to 0
  net: mvpp2: initialize mb bit in xdp_buff to 0
  net: sfc: initialize mb bit in xdp_buff to 0
  net: qede: initialize mb bit in xdp_buff to 0
  net: amazon: ena: initialize mb bit in xdp_buff to 0
  net: cavium: thunder: initialize mb bit in xdp_buff to 0
  net: socionext: initialize mb bit in xdp_buff to 0
  net: tun: initialize mb bit in xdp_buff to 0
  net: ixgbe: initialize mb bit in xdp_buff to 0
  net: ice: initialize mb bit in xdp_buff to 0
  net: i40e: initialize mb bit in xdp_buff to 0
  net: mlx5: initialize mb bit in xdp_buff to 0
  net: mlx4: initialize mb bit in xdp_buff to 0

 drivers/net/ethernet/amazon/ena/ena_netdev.c        | 1 +
 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c       | 1 +
 drivers/net/ethernet/cavium/thunder/nicvf_main.c    | 1 +
 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c    | 1 +
 drivers/net/ethernet/intel/i40e/i40e_txrx.c         | 1 +
 drivers/net/ethernet/intel/ice/ice_txrx.c           | 1 +
 drivers/net/ethernet/intel/ixgbe/ixgbe_main.c       | 1 +
 drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c   | 1 +
 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c     | 1 +
 drivers/net/ethernet/mellanox/mlx4/en_rx.c          | 1 +
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c     | 1 +
 drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 1 +
 drivers/net/ethernet/qlogic/qede/qede_fp.c          | 1 +
 drivers/net/ethernet/sfc/rx.c                       | 1 +
 drivers/net/ethernet/socionext/netsec.c             | 1 +
 drivers/net/ethernet/ti/cpsw.c                      | 1 +
 drivers/net/ethernet/ti/cpsw_new.c                  | 1 +
 drivers/net/hyperv/netvsc_bpf.c                     | 1 +
 drivers/net/tun.c                                   | 2 ++
 drivers/net/veth.c                                  | 1 +
 drivers/net/virtio_net.c                            | 2 ++
 drivers/net/xen-netfront.c                          | 1 +
 include/net/xdp.h                                   | 8 ++++++--
 net/core/dev.c                                      | 1 +
 24 files changed, 31 insertions(+), 2 deletions(-)

Comments

Jesper Dangaard Brouer July 28, 2020, 2:48 p.m. UTC | #1
On Thu, 23 Jul 2020 13:42:12 +0200
Lorenzo Bianconi <lorenzo@kernel.org> wrote:

> Introduce multi-buffer bit (mb) in xdp_frame/xdp_buffer to specify
> if shared_info area has been properly initialized for non-linear
> xdp buffers.
> Initialize mb to 0 for all xdp drivers

It is nice to see that we have some many XDP drivers, but 20 separate
patches for drivers is a bit much.  Perhaps we can do all the drivers
in one patch? What do others think?

> Lorenzo Bianconi (22):
>   xdp: introduce mb in xdp_buff/xdp_frame
>   xdp: initialize xdp_buff mb bit to 0 in netif_receive_generic_xdp
>   net: virtio_net: initialize mb bit of xdp_buff to 0
>   net: xen-netfront: initialize mb bit of xdp_buff to 0
>   net: veth: initialize mb bit of xdp_buff to 0
>   net: hv_netvsc: initialize mb bit of xdp_buff to 0
>   net: bnxt: initialize mb bit in xdp_buff to 0
>   net: dpaa2: initialize mb bit in xdp_buff to 0
>   net: ti: initialize mb bit in xdp_buff to 0
>   net: nfp: initialize mb bit in xdp_buff to 0
>   net: mvpp2: initialize mb bit in xdp_buff to 0
>   net: sfc: initialize mb bit in xdp_buff to 0
>   net: qede: initialize mb bit in xdp_buff to 0
>   net: amazon: ena: initialize mb bit in xdp_buff to 0
>   net: cavium: thunder: initialize mb bit in xdp_buff to 0
>   net: socionext: initialize mb bit in xdp_buff to 0
>   net: tun: initialize mb bit in xdp_buff to 0
>   net: ixgbe: initialize mb bit in xdp_buff to 0
>   net: ice: initialize mb bit in xdp_buff to 0
>   net: i40e: initialize mb bit in xdp_buff to 0
>   net: mlx5: initialize mb bit in xdp_buff to 0
>   net: mlx4: initialize mb bit in xdp_buff to 0
>
>  drivers/net/ethernet/amazon/ena/ena_netdev.c        | 1 +
>  drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c       | 1 +
>  drivers/net/ethernet/cavium/thunder/nicvf_main.c    | 1 +
>  drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c    | 1 +
>  drivers/net/ethernet/intel/i40e/i40e_txrx.c         | 1 +
>  drivers/net/ethernet/intel/ice/ice_txrx.c           | 1 +
>  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c       | 1 +
>  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c   | 1 +
>  drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c     | 1 +

I see that mvneta is missing, but maybe it is doing another kind of
init of struct xdp_buff?

>  drivers/net/ethernet/mellanox/mlx4/en_rx.c          | 1 +
>  drivers/net/ethernet/mellanox/mlx5/core/en_rx.c     | 1 +
>  drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 1 +
>  drivers/net/ethernet/qlogic/qede/qede_fp.c          | 1 +
>  drivers/net/ethernet/sfc/rx.c                       | 1 +
>  drivers/net/ethernet/socionext/netsec.c             | 1 +
>  drivers/net/ethernet/ti/cpsw.c                      | 1 +
>  drivers/net/ethernet/ti/cpsw_new.c                  | 1 +
>  drivers/net/hyperv/netvsc_bpf.c                     | 1 +
>  drivers/net/tun.c                                   | 2 ++
>  drivers/net/veth.c                                  | 1 +
>  drivers/net/virtio_net.c                            | 2 ++
>  drivers/net/xen-netfront.c                          | 1 +
>  include/net/xdp.h                                   | 8 ++++++--
>  net/core/dev.c                                      | 1 +
>  24 files changed, 31 insertions(+), 2 deletions(-)
Lorenzo Bianconi July 28, 2020, 3:10 p.m. UTC | #2
> On Thu, 23 Jul 2020 13:42:12 +0200
> Lorenzo Bianconi <lorenzo@kernel.org> wrote:
> 
> > Introduce multi-buffer bit (mb) in xdp_frame/xdp_buffer to specify
> > if shared_info area has been properly initialized for non-linear
> > xdp buffers.
> > Initialize mb to 0 for all xdp drivers
> 
> It is nice to see that we have some many XDP drivers, but 20 separate
> patches for drivers is a bit much.  Perhaps we can do all the drivers
> in one patch? What do others think?

I am fine with it, not sure what is the best approach.

> 
> > Lorenzo Bianconi (22):
> >   xdp: introduce mb in xdp_buff/xdp_frame
> >   xdp: initialize xdp_buff mb bit to 0 in netif_receive_generic_xdp
> >   net: virtio_net: initialize mb bit of xdp_buff to 0
> >   net: xen-netfront: initialize mb bit of xdp_buff to 0
> >   net: veth: initialize mb bit of xdp_buff to 0
> >   net: hv_netvsc: initialize mb bit of xdp_buff to 0
> >   net: bnxt: initialize mb bit in xdp_buff to 0
> >   net: dpaa2: initialize mb bit in xdp_buff to 0
> >   net: ti: initialize mb bit in xdp_buff to 0
> >   net: nfp: initialize mb bit in xdp_buff to 0
> >   net: mvpp2: initialize mb bit in xdp_buff to 0
> >   net: sfc: initialize mb bit in xdp_buff to 0
> >   net: qede: initialize mb bit in xdp_buff to 0
> >   net: amazon: ena: initialize mb bit in xdp_buff to 0
> >   net: cavium: thunder: initialize mb bit in xdp_buff to 0
> >   net: socionext: initialize mb bit in xdp_buff to 0
> >   net: tun: initialize mb bit in xdp_buff to 0
> >   net: ixgbe: initialize mb bit in xdp_buff to 0
> >   net: ice: initialize mb bit in xdp_buff to 0
> >   net: i40e: initialize mb bit in xdp_buff to 0
> >   net: mlx5: initialize mb bit in xdp_buff to 0
> >   net: mlx4: initialize mb bit in xdp_buff to 0
> >
> >  drivers/net/ethernet/amazon/ena/ena_netdev.c        | 1 +
> >  drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c       | 1 +
> >  drivers/net/ethernet/cavium/thunder/nicvf_main.c    | 1 +
> >  drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.c    | 1 +
> >  drivers/net/ethernet/intel/i40e/i40e_txrx.c         | 1 +
> >  drivers/net/ethernet/intel/ice/ice_txrx.c           | 1 +
> >  drivers/net/ethernet/intel/ixgbe/ixgbe_main.c       | 1 +
> >  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c   | 1 +
> >  drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c     | 1 +
> 
> I see that mvneta is missing, but maybe it is doing another kind of
> init of struct xdp_buff?

yes, mvneta has been done in a previous patch.

Regards,
Lorenzo

> 
> >  drivers/net/ethernet/mellanox/mlx4/en_rx.c          | 1 +
> >  drivers/net/ethernet/mellanox/mlx5/core/en_rx.c     | 1 +
> >  drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 1 +
> >  drivers/net/ethernet/qlogic/qede/qede_fp.c          | 1 +
> >  drivers/net/ethernet/sfc/rx.c                       | 1 +
> >  drivers/net/ethernet/socionext/netsec.c             | 1 +
> >  drivers/net/ethernet/ti/cpsw.c                      | 1 +
> >  drivers/net/ethernet/ti/cpsw_new.c                  | 1 +
> >  drivers/net/hyperv/netvsc_bpf.c                     | 1 +
> >  drivers/net/tun.c                                   | 2 ++
> >  drivers/net/veth.c                                  | 1 +
> >  drivers/net/virtio_net.c                            | 2 ++
> >  drivers/net/xen-netfront.c                          | 1 +
> >  include/net/xdp.h                                   | 8 ++++++--
> >  net/core/dev.c                                      | 1 +
> >  24 files changed, 31 insertions(+), 2 deletions(-)
> 
> -- 
> Best regards,
>   Jesper Dangaard Brouer
>   MSc.CS, Principal Kernel Engineer at Red Hat
>   LinkedIn: http://www.linkedin.com/in/brouer
>