Message ID | 20201207224526.95773-1-awogbemila@google.com (mailing list archive) |
---|---|
Headers | show |
Series | GVE Raw Addressing | expand |
On Mon, Dec 7, 2020 at 2:45 PM David Awogbemila <awogbemila@google.com> wrote: > > Patchset description: > This patchset introduces "raw addressing" mode to the GVE driver. > Previously (in "queue_page_list" or "qpl" mode), the driver would > pre-allocate and dma_map buffers to be used on egress and ingress. > On egress, it would copy data from the skb provided to the > pre-allocated buffers - this was expensive. > In raw addressing mode, the driver can avoid this copy and simply > dma_map the skb's data so that the NIC can use it. > On ingress, the driver passes buffers up to the networking stack and > then frees and reallocates buffers when necessary instead of using > skb_copy_to_linear_data. > Patch 3 separates the page refcount tracking mechanism > into a function gve_rx_can_recycle_buffer which uses get_page - this will > be changed in a future patch to eliminate the use of get_page in tracking > page refcounts. > > Changes from v9: > Patch 4: Use u64, not u32 for new tx stat counters. > > Catherine Sullivan (3): > gve: Add support for raw addressing device option > gve: Add support for raw addressing to the rx path > gve: Add support for raw addressing in the tx path > > David Awogbemila (1): > gve: Rx Buffer Recycling > > > drivers/net/ethernet/google/gve/gve.h | 39 +- > drivers/net/ethernet/google/gve/gve_adminq.c | 89 ++++- > drivers/net/ethernet/google/gve/gve_adminq.h | 15 +- > drivers/net/ethernet/google/gve/gve_desc.h | 19 +- > drivers/net/ethernet/google/gve/gve_ethtool.c | 2 + > drivers/net/ethernet/google/gve/gve_main.c | 11 +- > drivers/net/ethernet/google/gve/gve_rx.c | 364 +++++++++++++----- > drivers/net/ethernet/google/gve/gve_tx.c | 197 ++++++++-- > 8 files changed, 574 insertions(+), 162 deletions(-) > > Reviewed-by: Alexander Duyck <alexanderduyck@fb.com> Normally the reviewed-by should be included on the individual patches instead of here. It can be moved if you end up needing to resubmit.
On Mon, Dec 7, 2020 at 7:17 PM Alexander Duyck <alexander.duyck@gmail.com> wrote: > > On Mon, Dec 7, 2020 at 2:45 PM David Awogbemila <awogbemila@google.com> wrote: > > > > Patchset description: > > This patchset introduces "raw addressing" mode to the GVE driver. > > Previously (in "queue_page_list" or "qpl" mode), the driver would > > pre-allocate and dma_map buffers to be used on egress and ingress. > > On egress, it would copy data from the skb provided to the > > pre-allocated buffers - this was expensive. > > In raw addressing mode, the driver can avoid this copy and simply > > dma_map the skb's data so that the NIC can use it. > > On ingress, the driver passes buffers up to the networking stack and > > then frees and reallocates buffers when necessary instead of using > > skb_copy_to_linear_data. > > Patch 3 separates the page refcount tracking mechanism > > into a function gve_rx_can_recycle_buffer which uses get_page - this will > > be changed in a future patch to eliminate the use of get_page in tracking > > page refcounts. > > > > Changes from v9: > > Patch 4: Use u64, not u32 for new tx stat counters. > > > > Catherine Sullivan (3): > > gve: Add support for raw addressing device option > > gve: Add support for raw addressing to the rx path > > gve: Add support for raw addressing in the tx path > > > > David Awogbemila (1): > > gve: Rx Buffer Recycling > > > > > > drivers/net/ethernet/google/gve/gve.h | 39 +- > > drivers/net/ethernet/google/gve/gve_adminq.c | 89 ++++- > > drivers/net/ethernet/google/gve/gve_adminq.h | 15 +- > > drivers/net/ethernet/google/gve/gve_desc.h | 19 +- > > drivers/net/ethernet/google/gve/gve_ethtool.c | 2 + > > drivers/net/ethernet/google/gve/gve_main.c | 11 +- > > drivers/net/ethernet/google/gve/gve_rx.c | 364 +++++++++++++----- > > drivers/net/ethernet/google/gve/gve_tx.c | 197 ++++++++-- > > 8 files changed, 574 insertions(+), 162 deletions(-) > > > > Reviewed-by: Alexander Duyck <alexanderduyck@fb.com> > > Normally the reviewed-by should be included on the individual patches > instead of here. It can be moved if you end up needing to resubmit. Thanks, I'll take note.
From: David Awogbemila <awogbemila@google.com> Date: Mon, 7 Dec 2020 14:45:22 -0800 > Patchset description: > This patchset introduces "raw addressing" mode to the GVE driver. > Previously (in "queue_page_list" or "qpl" mode), the driver would > pre-allocate and dma_map buffers to be used on egress and ingress. > On egress, it would copy data from the skb provided to the > pre-allocated buffers - this was expensive. > In raw addressing mode, the driver can avoid this copy and simply > dma_map the skb's data so that the NIC can use it. > On ingress, the driver passes buffers up to the networking stack and > then frees and reallocates buffers when necessary instead of using > skb_copy_to_linear_data. > Patch 3 separates the page refcount tracking mechanism > into a function gve_rx_can_recycle_buffer which uses get_page - this will > be changed in a future patch to eliminate the use of get_page in tracking > page refcounts. > > Changes from v9: > Patch 4: Use u64, not u32 for new tx stat counters. Series applied, thanks.
Patchset description: This patchset introduces "raw addressing" mode to the GVE driver. Previously (in "queue_page_list" or "qpl" mode), the driver would pre-allocate and dma_map buffers to be used on egress and ingress. On egress, it would copy data from the skb provided to the pre-allocated buffers - this was expensive. In raw addressing mode, the driver can avoid this copy and simply dma_map the skb's data so that the NIC can use it. On ingress, the driver passes buffers up to the networking stack and then frees and reallocates buffers when necessary instead of using skb_copy_to_linear_data. Patch 3 separates the page refcount tracking mechanism into a function gve_rx_can_recycle_buffer which uses get_page - this will be changed in a future patch to eliminate the use of get_page in tracking page refcounts. Changes from v9: Patch 4: Use u64, not u32 for new tx stat counters. Catherine Sullivan (3): gve: Add support for raw addressing device option gve: Add support for raw addressing to the rx path gve: Add support for raw addressing in the tx path David Awogbemila (1): gve: Rx Buffer Recycling drivers/net/ethernet/google/gve/gve.h | 39 +- drivers/net/ethernet/google/gve/gve_adminq.c | 89 ++++- drivers/net/ethernet/google/gve/gve_adminq.h | 15 +- drivers/net/ethernet/google/gve/gve_desc.h | 19 +- drivers/net/ethernet/google/gve/gve_ethtool.c | 2 + drivers/net/ethernet/google/gve/gve_main.c | 11 +- drivers/net/ethernet/google/gve/gve_rx.c | 364 +++++++++++++----- drivers/net/ethernet/google/gve/gve_tx.c | 197 ++++++++-- 8 files changed, 574 insertions(+), 162 deletions(-) Reviewed-by: Alexander Duyck <alexanderduyck@fb.com>