All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mark Bloch <mbloch@nvidia.com>
To: "David S. Miller" <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Eric Dumazet <edumazet@google.com>,
	"Andrew Lunn" <andrew+netdev@lunn.ch>
Cc: <saeedm@nvidia.com>, <gal@nvidia.com>, <leonro@nvidia.com>,
	<tariqt@nvidia.com>, Leon Romanovsky <leon@kernel.org>,
	<netdev@vger.kernel.org>, <linux-rdma@vger.kernel.org>,
	<linux-kernel@vger.kernel.org>,
	Dragos Tatulea <dtatulea@nvidia.com>,
	"Cosmin Ratiu" <cratiu@nvidia.com>,
	Mark Bloch <mbloch@nvidia.com>
Subject: [PATCH net-next v4 02/11] net: Add skb_can_coalesce for netmem
Date: Tue, 10 Jun 2025 18:09:41 +0300	[thread overview]
Message-ID: <20250610150950.1094376-3-mbloch@nvidia.com> (raw)
In-Reply-To: <20250610150950.1094376-1-mbloch@nvidia.com>

From: Dragos Tatulea <dtatulea@nvidia.com>

Allow drivers that have moved over to netmem to do fragment coalescing.

Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
Signed-off-by: Cosmin Ratiu <cratiu@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: Mark Bloch <mbloch@nvidia.com>
---
 include/linux/skbuff.h | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 5520524c93bf..9508968cb300 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -3873,20 +3873,26 @@ static inline int __must_check skb_put_padto(struct sk_buff *skb, unsigned int l
 bool csum_and_copy_from_iter_full(void *addr, size_t bytes, __wsum *csum, struct iov_iter *i)
 	__must_check;
 
-static inline bool skb_can_coalesce(struct sk_buff *skb, int i,
-				    const struct page *page, int off)
+static inline bool skb_can_coalesce_netmem(struct sk_buff *skb, int i,
+					   netmem_ref netmem, int off)
 {
 	if (skb_zcopy(skb))
 		return false;
 	if (i) {
 		const skb_frag_t *frag = &skb_shinfo(skb)->frags[i - 1];
 
-		return page == skb_frag_page(frag) &&
+		return netmem == skb_frag_netmem(frag) &&
 		       off == skb_frag_off(frag) + skb_frag_size(frag);
 	}
 	return false;
 }
 
+static inline bool skb_can_coalesce(struct sk_buff *skb, int i,
+				    const struct page *page, int off)
+{
+	return skb_can_coalesce_netmem(skb, i, page_to_netmem(page), off);
+}
+
 static inline int __skb_linearize(struct sk_buff *skb)
 {
 	return __pskb_pull_tail(skb, skb->data_len) ? 0 : -ENOMEM;
-- 
2.34.1


  parent reply	other threads:[~2025-06-10 15:10 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-10 15:09 [PATCH net-next v4 00/11] net/mlx5e: Add support for devmem and io_uring TCP zero-copy Mark Bloch
2025-06-10 15:09 ` [PATCH net-next v4 01/11] net: Allow const args for of page_to_netmem() Mark Bloch
2025-06-12  4:52   ` Mina Almasry
2025-06-12  8:06     ` [PATCH net-next v4 01/11] net: Allow const args for of page_to_netmem()y Dragos Tatulea
2025-06-10 15:09 ` Mark Bloch [this message]
2025-06-12  4:53   ` [PATCH net-next v4 02/11] net: Add skb_can_coalesce for netmem Mina Almasry
2025-06-10 15:09 ` [PATCH net-next v4 03/11] net/mlx5e: SHAMPO: Reorganize mlx5_rq_shampo_alloc Mark Bloch
2025-06-10 15:09 ` [PATCH net-next v4 04/11] net/mlx5e: SHAMPO: Remove redundant params Mark Bloch
2025-06-10 15:09 ` [PATCH net-next v4 05/11] net/mlx5e: SHAMPO: Improve hw gro capability checking Mark Bloch
2025-06-10 15:09 ` [PATCH net-next v4 06/11] net/mlx5e: SHAMPO: Separate pool for headers Mark Bloch
2025-06-10 15:09 ` [PATCH net-next v4 07/11] net/mlx5e: Convert over to netmem Mark Bloch
2025-06-12  5:11   ` Mina Almasry
2025-06-12  8:19     ` Dragos Tatulea
2025-06-10 15:09 ` [PATCH net-next v4 08/11] net/mlx5e: Add support for UNREADABLE netmem page pools Mark Bloch
2025-06-12  5:16   ` Mina Almasry
2025-06-12  8:46     ` Dragos Tatulea
2025-06-12 20:47       ` Mina Almasry
2025-06-10 15:09 ` [PATCH net-next v4 09/11] net/mlx5e: Implement queue mgmt ops and single channel swap Mark Bloch
2025-06-11 13:26   ` Jakub Kicinski
2025-06-10 15:09 ` [PATCH net-next v4 10/11] net/mlx5e: Support ethtool tcp-data-split settings Mark Bloch
2025-06-11 13:26   ` Jakub Kicinski
2025-06-10 15:09 ` [PATCH net-next v4 11/11] net/mlx5e: Add TX support for netmems Mark Bloch
2025-06-12  5:17   ` Mina Almasry

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=20250610150950.1094376-3-mbloch@nvidia.com \
    --to=mbloch@nvidia.com \
    --cc=andrew+netdev@lunn.ch \
    --cc=cratiu@nvidia.com \
    --cc=davem@davemloft.net \
    --cc=dtatulea@nvidia.com \
    --cc=edumazet@google.com \
    --cc=gal@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=leon@kernel.org \
    --cc=leonro@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=saeedm@nvidia.com \
    --cc=tariqt@nvidia.com \
    /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: link
Be 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.