Skip to content

Commit e993ffe

Browse files
isilenceaxboe
authored andcommitted
net: flag sockets supporting msghdr originated zerocopy
We need an efficient way in io_uring to check whether a socket supports zerocopy with msghdr provided ubuf_info. Add a new flag into the struct socket flags fields. Cc: <[email protected]> # 6.0 Signed-off-by: Pavel Begunkov <[email protected]> Acked-by: Jakub Kicinski <[email protected]> Link: https://lore.kernel.org/r/3dafafab822b1c66308bb58a0ac738b1e3f53f74.1666346426.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <[email protected]>
1 parent 996d3ef commit e993ffe

File tree

3 files changed

+3
-0
lines changed

3 files changed

+3
-0
lines changed

include/linux/net.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ struct net;
4141
#define SOCK_NOSPACE 2
4242
#define SOCK_PASSCRED 3
4343
#define SOCK_PASSSEC 4
44+
#define SOCK_SUPPORT_ZC 5
4445

4546
#ifndef ARCH_HAS_SOCKET_TYPES
4647
/**

net/ipv4/tcp.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -457,6 +457,7 @@ void tcp_init_sock(struct sock *sk)
457457
WRITE_ONCE(sk->sk_sndbuf, READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_wmem[1]));
458458
WRITE_ONCE(sk->sk_rcvbuf, READ_ONCE(sock_net(sk)->ipv4.sysctl_tcp_rmem[1]));
459459

460+
set_bit(SOCK_SUPPORT_ZC, &sk->sk_socket->flags);
460461
sk_sockets_allocated_inc(sk);
461462
}
462463
EXPORT_SYMBOL(tcp_init_sock);

net/ipv4/udp.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1624,6 +1624,7 @@ int udp_init_sock(struct sock *sk)
16241624
{
16251625
skb_queue_head_init(&udp_sk(sk)->reader_queue);
16261626
sk->sk_destruct = udp_destruct_sock;
1627+
set_bit(SOCK_SUPPORT_ZC, &sk->sk_socket->flags);
16271628
return 0;
16281629
}
16291630

0 commit comments

Comments
 (0)