Thread (58 messages) 58 messages, 5 authors, 2024-07-17

Re: [PATCH net-next v9 09/13] net: introduce the skb_copy_to_va_nocache() helper

From: Alexander H Duyck <hidden>
Date: 2024-07-02 15:52:03
Also in: lkml

On Tue, 2024-06-25 at 21:52 +0800, Yunsheng Lin wrote:
quoted hunk ↗ jump to hunk
introduce the skb_copy_to_va_nocache() helper to avoid
calling virt_to_page() and skb_copy_to_page_nocache().

CC: Alexander Duyck <redacted>
Signed-off-by: Yunsheng Lin <redacted>
---
 include/net/sock.h | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
diff --git a/include/net/sock.h b/include/net/sock.h
index cce23ac4d514..7ad235465485 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -2201,6 +2201,21 @@ static inline int skb_copy_to_page_nocache(struct sock *sk, struct iov_iter *fro
 	return 0;
 }
 
+static inline int skb_copy_to_va_nocache(struct sock *sk, struct iov_iter *from,
+					 struct sk_buff *skb, char *va, int copy)
+{
+	int err;
+
+	err = skb_do_copy_data_nocache(sk, skb, from, va, copy, skb->len);
+	if (err)
+		return err;
+
+	skb_len_add(skb, copy);
+	sk_wmem_queued_add(sk, copy);
+	sk_mem_charge(sk, copy);
+	return 0;
+}
+
 /**
  * sk_wmem_alloc_get - returns write allocations
  * @sk: socket
One minor nit. Rather than duplicate skb_copy_to_page_nocache you would
be better served to implement this one before it, and then just update
skb_copy_to_page_nocache to be:
	return skb_copy_to_va_nocache(sk, from, skb,
				      page_address(page) + off, copy);

We can save ourselves at least a few lines of code that way and it
creates one spot to do any changes.
				
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help