lkml.org 
[lkml]   [2022]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[RFC,net-next v2 4/8] net: Add MSG_NTCOPY sendmsg flag
Date
Add MSG_NTCOPY so that user applications can ask the kernel for a
non-temporal copy when copying data into the kernel for TX.

A simple helper is provided to set the iovec iterator copy type if
MSG_NTCOPY is set.

Signed-off-by: Joe Damato <jdamato@fastly.com>
---
include/linux/socket.h | 9 +++++++++
1 file changed, 9 insertions(+)

diff --git a/include/linux/socket.h b/include/linux/socket.h
index 17311ad..98cb735 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -318,6 +318,7 @@ struct ucred {
* plain text and require encryption
*/

+#define MSG_NTCOPY 0x2000000 /* Use a non-temporal copy */
#define MSG_ZEROCOPY 0x4000000 /* Use user data in kernel path */
#define MSG_FASTOPEN 0x20000000 /* Send data in TCP SYN */
#define MSG_CMSG_CLOEXEC 0x40000000 /* Set close_on_exec for file
@@ -378,6 +379,14 @@ struct ucred {
extern int move_addr_to_kernel(void __user *uaddr, int ulen, struct sockaddr_storage *kaddr);
extern int put_cmsg(struct msghdr*, int level, int type, int len, void *data);

+static inline void msg_set_iter_copy_type(struct msghdr *msg)
+{
+ if (msg->msg_flags & MSG_NTCOPY)
+ msg->msg_iter.iter_copy_type = ITER_NOCACHE_COPY;
+ else
+ msg->msg_iter.iter_copy_type = ITER_COPY;
+}
+
struct timespec64;
struct __kernel_timespec;
struct old_timespec32;
--
2.7.4
\
 
 \ /
  Last update: 2022-06-12 11:02    [W:0.701 / U:0.128 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site