Messages in this thread Patch in this message | | | From | Joe Damato <> | Subject | [RFC,net-next v2 4/8] net: Add MSG_NTCOPY sendmsg flag | Date | Sun, 12 Jun 2022 01:57:53 -0700 |
| |
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
| |