From: Kevin Laatz <kevin.laatz@intel.com> To: netdev@vger.kernel.org, ast@kernel.org, daniel@iogearbox.net, bjorn.topel@intel.com, magnus.karlsson@intel.com Cc: bpf@vger.kernel.com, intel-wired-lan@lists.osuosl.org, bruce.richardson@intel.com, ciara.loftus@intel.com, Kevin Laatz <kevin.laatz@intel.com> Subject: [PATCH 05/11] ixgbe: add offset to zca_free Date: Thu, 20 Jun 2019 08:39:18 +0000 [thread overview] Message-ID: <20190620083924.1996-6-kevin.laatz@intel.com> (raw) In-Reply-To: <20190620083924.1996-1-kevin.laatz@intel.com> This patch adds the offset param to for zero_copy_allocator to ixgbe_zca_free. This change is required to calculate the handle, otherwise, this function will not work in unaligned chunk mode since we can't easily mask back to the original handle in unaligned chunk mode. Signed-off-by: Kevin Laatz <kevin.laatz@intel.com> --- drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h | 3 ++- drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h index d93a690aff74..49702e2a4360 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h @@ -33,7 +33,8 @@ struct xdp_umem *ixgbe_xsk_umem(struct ixgbe_adapter *adapter, int ixgbe_xsk_umem_setup(struct ixgbe_adapter *adapter, struct xdp_umem *umem, u16 qid); -void ixgbe_zca_free(struct zero_copy_allocator *alloc, unsigned long handle); +void ixgbe_zca_free(struct zero_copy_allocator *alloc, unsigned long handle, + off_t off); void ixgbe_alloc_rx_buffers_zc(struct ixgbe_ring *rx_ring, u16 cleaned_count); int ixgbe_clean_rx_irq_zc(struct ixgbe_q_vector *q_vector, diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c index 49536adafe8e..1ec02077ccb2 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c @@ -268,16 +268,16 @@ static void ixgbe_reuse_rx_buffer_zc(struct ixgbe_ring *rx_ring, obi->skb = NULL; } -void ixgbe_zca_free(struct zero_copy_allocator *alloc, unsigned long handle) +void ixgbe_zca_free(struct zero_copy_allocator *alloc, unsigned long handle, + off_t off) { struct ixgbe_rx_buffer *bi; struct ixgbe_ring *rx_ring; - u64 hr, mask; + u64 hr; u16 nta; rx_ring = container_of(alloc, struct ixgbe_ring, zca); hr = rx_ring->xsk_umem->headroom + XDP_PACKET_HEADROOM; - mask = rx_ring->xsk_umem->chunk_mask; nta = rx_ring->next_to_alloc; bi = rx_ring->rx_buffer_info; @@ -285,7 +285,7 @@ void ixgbe_zca_free(struct zero_copy_allocator *alloc, unsigned long handle) nta++; rx_ring->next_to_alloc = (nta < rx_ring->count) ? nta : 0; - handle &= mask; + handle -= off; bi->dma = xdp_umem_get_dma(rx_ring->xsk_umem, handle); bi->dma += hr; -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: Kevin Laatz <kevin.laatz@intel.com> To: intel-wired-lan@osuosl.org Subject: [Intel-wired-lan] [PATCH 05/11] ixgbe: add offset to zca_free Date: Thu, 20 Jun 2019 08:39:18 +0000 [thread overview] Message-ID: <20190620083924.1996-6-kevin.laatz@intel.com> (raw) In-Reply-To: <20190620083924.1996-1-kevin.laatz@intel.com> This patch adds the offset param to for zero_copy_allocator to ixgbe_zca_free. This change is required to calculate the handle, otherwise, this function will not work in unaligned chunk mode since we can't easily mask back to the original handle in unaligned chunk mode. Signed-off-by: Kevin Laatz <kevin.laatz@intel.com> --- drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h | 3 ++- drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h b/drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h index d93a690aff74..49702e2a4360 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_txrx_common.h @@ -33,7 +33,8 @@ struct xdp_umem *ixgbe_xsk_umem(struct ixgbe_adapter *adapter, int ixgbe_xsk_umem_setup(struct ixgbe_adapter *adapter, struct xdp_umem *umem, u16 qid); -void ixgbe_zca_free(struct zero_copy_allocator *alloc, unsigned long handle); +void ixgbe_zca_free(struct zero_copy_allocator *alloc, unsigned long handle, + off_t off); void ixgbe_alloc_rx_buffers_zc(struct ixgbe_ring *rx_ring, u16 cleaned_count); int ixgbe_clean_rx_irq_zc(struct ixgbe_q_vector *q_vector, diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c index 49536adafe8e..1ec02077ccb2 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c @@ -268,16 +268,16 @@ static void ixgbe_reuse_rx_buffer_zc(struct ixgbe_ring *rx_ring, obi->skb = NULL; } -void ixgbe_zca_free(struct zero_copy_allocator *alloc, unsigned long handle) +void ixgbe_zca_free(struct zero_copy_allocator *alloc, unsigned long handle, + off_t off) { struct ixgbe_rx_buffer *bi; struct ixgbe_ring *rx_ring; - u64 hr, mask; + u64 hr; u16 nta; rx_ring = container_of(alloc, struct ixgbe_ring, zca); hr = rx_ring->xsk_umem->headroom + XDP_PACKET_HEADROOM; - mask = rx_ring->xsk_umem->chunk_mask; nta = rx_ring->next_to_alloc; bi = rx_ring->rx_buffer_info; @@ -285,7 +285,7 @@ void ixgbe_zca_free(struct zero_copy_allocator *alloc, unsigned long handle) nta++; rx_ring->next_to_alloc = (nta < rx_ring->count) ? nta : 0; - handle &= mask; + handle -= off; bi->dma = xdp_umem_get_dma(rx_ring->xsk_umem, handle); bi->dma += hr; -- 2.17.1
next prev parent reply other threads:[~2019-06-20 16:53 UTC|newest] Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-20 8:39 [PATCH 00/11] XDP unaligned chunk placement support Kevin Laatz 2019-06-20 8:39 ` [Intel-wired-lan] " Kevin Laatz 2019-06-20 8:39 ` [PATCH 01/11] i40e: simplify Rx buffer recycle Kevin Laatz 2019-06-20 8:39 ` [Intel-wired-lan] " Kevin Laatz 2019-06-20 8:39 ` [PATCH 02/11] ixgbe: " Kevin Laatz 2019-06-20 8:39 ` [Intel-wired-lan] " Kevin Laatz 2019-06-20 8:39 ` [PATCH 03/11] xdp: add offset param to zero_copy_allocator Kevin Laatz 2019-06-20 8:39 ` [Intel-wired-lan] " Kevin Laatz 2019-06-20 8:39 ` [PATCH 04/11] i40e: add offset to zca_free Kevin Laatz 2019-06-20 8:39 ` [Intel-wired-lan] " Kevin Laatz 2019-06-20 8:39 ` Kevin Laatz [this message] 2019-06-20 8:39 ` [Intel-wired-lan] [PATCH 05/11] ixgbe: " Kevin Laatz 2019-06-20 8:39 ` [PATCH 06/11] xsk: add support to allow unaligned chunk placement Kevin Laatz 2019-06-20 8:39 ` [Intel-wired-lan] " Kevin Laatz 2019-06-20 8:39 ` [PATCH 07/11] libbpf: add flags to umem config Kevin Laatz 2019-06-20 8:39 ` [Intel-wired-lan] " Kevin Laatz 2019-06-20 8:39 ` [PATCH 08/11] samples/bpf: add unaligned chunks mode support to xdpsock Kevin Laatz 2019-06-20 8:39 ` [Intel-wired-lan] " Kevin Laatz 2019-06-20 8:39 ` [PATCH 09/11] samples/bpf: add buffer recycling for unaligned chunks " Kevin Laatz 2019-06-20 8:39 ` [Intel-wired-lan] " Kevin Laatz 2019-06-20 8:39 ` [PATCH 10/11] samples/bpf: use hugepages in xdpsock app Kevin Laatz 2019-06-20 8:39 ` [Intel-wired-lan] " Kevin Laatz 2019-06-20 8:39 ` [PATCH 11/11] doc/af_xdp: include unaligned chunk case Kevin Laatz 2019-06-20 8:39 ` [Intel-wired-lan] " Kevin Laatz 2019-06-24 15:38 ` [PATCH 00/11] XDP unaligned chunk placement support Björn Töpel 2019-06-24 15:38 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-25 13:12 ` Laatz, Kevin 2019-06-25 13:12 ` [Intel-wired-lan] " Laatz, Kevin 2019-06-25 18:44 ` Jonathan Lemon 2019-06-25 18:44 ` [Intel-wired-lan] " Jonathan Lemon 2019-06-27 11:14 ` Laatz, Kevin 2019-06-27 11:14 ` [Intel-wired-lan] " Laatz, Kevin 2019-06-27 21:25 ` Jakub Kicinski 2019-06-27 21:25 ` [Intel-wired-lan] " Jakub Kicinski 2019-06-28 16:19 ` Laatz, Kevin 2019-06-28 16:19 ` [Intel-wired-lan] " Laatz, Kevin 2019-06-28 16:51 ` Björn Töpel 2019-06-28 16:51 ` [Intel-wired-lan] " =?unknown-8bit?q?Bj=C3=B6rn_T=C3=B6pel?= 2019-06-28 20:08 ` Jakub Kicinski 2019-06-28 20:08 ` [Intel-wired-lan] " Jakub Kicinski 2019-06-28 20:25 ` Jakub Kicinski 2019-06-28 20:25 ` [Intel-wired-lan] " Jakub Kicinski 2019-06-28 20:29 ` Jonathan Lemon 2019-06-28 20:29 ` [Intel-wired-lan] " Jonathan Lemon 2019-07-01 14:44 ` Laatz, Kevin 2019-07-01 21:20 ` Jakub Kicinski 2019-07-01 21:20 ` [Intel-wired-lan] " Jakub Kicinski 2019-07-02 9:27 ` Richardson, Bruce 2019-07-02 9:27 ` [Intel-wired-lan] " Richardson, Bruce 2019-07-02 16:33 ` Jonathan Lemon 2019-07-02 16:33 ` [Intel-wired-lan] " Jonathan Lemon 2019-07-01 14:58 ` Laatz, Kevin 2019-07-01 14:58 ` [Intel-wired-lan] " Laatz, Kevin 2019-06-20 9:09 Kevin Laatz 2019-06-20 9:09 ` [PATCH 05/11] ixgbe: add offset to zca_free Kevin Laatz 2019-06-24 14:32 ` Björn Töpel
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190620083924.1996-6-kevin.laatz@intel.com \ --to=kevin.laatz@intel.com \ --cc=ast@kernel.org \ --cc=bjorn.topel@intel.com \ --cc=bpf@vger.kernel.com \ --cc=bruce.richardson@intel.com \ --cc=ciara.loftus@intel.com \ --cc=daniel@iogearbox.net \ --cc=intel-wired-lan@lists.osuosl.org \ --cc=magnus.karlsson@intel.com \ --cc=netdev@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.