Message ID | 158634671052.707275.5680515403770560550.stgit@firesoul |
---|---|
State | RFC |
Delegated to: | BPF Maintainers |
Headers | show |
Series | [RFC,v2,01/33] xdp: add frame size to xdp_buff | expand |
Acked-by: Sameeh Jubran <sameehj@amazon.com> > -----Original Message----- > From: Jesper Dangaard Brouer <brouer@redhat.com> > Sent: Wednesday, April 8, 2020 2:52 PM > To: Jubran, Samih <sameehj@amazon.com> > Cc: Kiyanovski, Arthur <akiyano@amazon.com>; Jesper Dangaard Brouer > <brouer@redhat.com>; netdev@vger.kernel.org; bpf@vger.kernel.org; > Machulsky, Zorik <zorik@amazon.com>; Kiyanovski, Arthur > <akiyano@amazon.com>; Tzalik, Guy <gtzalik@amazon.com>; Toke Høiland- > Jørgensen <toke@redhat.com>; Daniel Borkmann > <borkmann@iogearbox.net>; Alexei Starovoitov > <alexei.starovoitov@gmail.com>; John Fastabend > <john.fastabend@gmail.com>; Alexander Duyck > <alexander.duyck@gmail.com>; Jeff Kirsher <jeffrey.t.kirsher@intel.com>; > David Ahern <dsahern@gmail.com>; Willem de Bruijn > <willemdebruijn.kernel@gmail.com>; Ilias Apalodimas > <ilias.apalodimas@linaro.org>; Lorenzo Bianconi <lorenzo@kernel.org>; > Saeed Mahameed <saeedm@mellanox.com> > Subject: [EXTERNAL] [PATCH RFC v2 15/33] ena: add XDP frame size to > amazon NIC driver > > CAUTION: This email originated from outside of the organization. Do not click > links or open attachments unless you can confirm the sender and know the > content is safe. > > > > Frame size ENA_PAGE_SIZE is limited to 16K on systems with larger > PAGE_SIZE than 16K. Change ENA_XDP_MAX_MTU to also take into account > the reserved tailroom. > > Cc: Arthur Kiyanovski <akiyano@amazon.com> > Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> > --- > drivers/net/ethernet/amazon/ena/ena_netdev.c | 1 + > drivers/net/ethernet/amazon/ena/ena_netdev.h | 5 +++-- > 2 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c > b/drivers/net/ethernet/amazon/ena/ena_netdev.c > index 2cc765df8da3..0fd7db1769f8 100644 > --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c > +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c > @@ -1606,6 +1606,7 @@ static int ena_clean_rx_irq(struct ena_ring > *rx_ring, struct napi_struct *napi, > "%s qid %d\n", __func__, rx_ring->qid); > res_budget = budget; > xdp.rxq = &rx_ring->xdp_rxq; > + xdp.frame_sz = ENA_PAGE_SIZE; > > do { > xdp_verdict = XDP_PASS; > diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h > b/drivers/net/ethernet/amazon/ena/ena_netdev.h > index 97dfd0c67e84..dd00127dfe9f 100644 > --- a/drivers/net/ethernet/amazon/ena/ena_netdev.h > +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h > @@ -151,8 +151,9 @@ > * The buffer size we share with the device is defined to be ENA_PAGE_SIZE > */ > > -#define ENA_XDP_MAX_MTU (ENA_PAGE_SIZE - ETH_HLEN - ETH_FCS_LEN > - \ > - VLAN_HLEN - XDP_PACKET_HEADROOM) > +#define ENA_XDP_MAX_MTU (ENA_PAGE_SIZE - ETH_HLEN - > ETH_FCS_LEN - \ > + VLAN_HLEN - XDP_PACKET_HEADROOM - \ > + SKB_DATA_ALIGN(sizeof(struct skb_shared_info))) > > #define ENA_IS_XDP_INDEX(adapter, index) (((index) >= (adapter)- > >xdp_first_ring) && \ > ((index) < (adapter)->xdp_first_ring + (adapter)->xdp_num_queues)) >
diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.c b/drivers/net/ethernet/amazon/ena/ena_netdev.c index 2cc765df8da3..0fd7db1769f8 100644 --- a/drivers/net/ethernet/amazon/ena/ena_netdev.c +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.c @@ -1606,6 +1606,7 @@ static int ena_clean_rx_irq(struct ena_ring *rx_ring, struct napi_struct *napi, "%s qid %d\n", __func__, rx_ring->qid); res_budget = budget; xdp.rxq = &rx_ring->xdp_rxq; + xdp.frame_sz = ENA_PAGE_SIZE; do { xdp_verdict = XDP_PASS; diff --git a/drivers/net/ethernet/amazon/ena/ena_netdev.h b/drivers/net/ethernet/amazon/ena/ena_netdev.h index 97dfd0c67e84..dd00127dfe9f 100644 --- a/drivers/net/ethernet/amazon/ena/ena_netdev.h +++ b/drivers/net/ethernet/amazon/ena/ena_netdev.h @@ -151,8 +151,9 @@ * The buffer size we share with the device is defined to be ENA_PAGE_SIZE */ -#define ENA_XDP_MAX_MTU (ENA_PAGE_SIZE - ETH_HLEN - ETH_FCS_LEN - \ - VLAN_HLEN - XDP_PACKET_HEADROOM) +#define ENA_XDP_MAX_MTU (ENA_PAGE_SIZE - ETH_HLEN - ETH_FCS_LEN - \ + VLAN_HLEN - XDP_PACKET_HEADROOM - \ + SKB_DATA_ALIGN(sizeof(struct skb_shared_info))) #define ENA_IS_XDP_INDEX(adapter, index) (((index) >= (adapter)->xdp_first_ring) && \ ((index) < (adapter)->xdp_first_ring + (adapter)->xdp_num_queues))
Frame size ENA_PAGE_SIZE is limited to 16K on systems with larger PAGE_SIZE than 16K. Change ENA_XDP_MAX_MTU to also take into account the reserved tailroom. Cc: Arthur Kiyanovski <akiyano@amazon.com> Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com> --- drivers/net/ethernet/amazon/ena/ena_netdev.c | 1 + drivers/net/ethernet/amazon/ena/ena_netdev.h | 5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-)