Message ID | ed585669ba63dbbef5ec0d5568574e5e51e23c06.1605686678.git.xuanzhuo@linux.alibaba.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | BPF |
Headers | show |
Series | xsk: fix for xsk_poll writeable | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Guessed tree name to be net-next |
netdev/subject_prefix | warning | Target tree name not specified in the subject |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 53 this patch: 53 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 16 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 53 this patch: 53 |
netdev/header_inline | success | Link |
netdev/stable | success | Stable not CCed |
diff --git a/include/uapi/linux/if_xdp.h b/include/uapi/linux/if_xdp.h index a78a809..d55ba79 100644 --- a/include/uapi/linux/if_xdp.h +++ b/include/uapi/linux/if_xdp.h @@ -64,6 +64,8 @@ struct xdp_mmap_offsets { #define XDP_STATISTICS 7 #define XDP_OPTIONS 8 +#define XDP_RXTX_RING_MIN_ENTRIES 1024 + struct xdp_umem_reg { __u64 addr; /* Start of packet data area */ __u64 len; /* Length of packet data area */ diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c index bc3d4ece..e62c795 100644 --- a/net/xdp/xsk.c +++ b/net/xdp/xsk.c @@ -831,6 +831,8 @@ static int xsk_setsockopt(struct socket *sock, int level, int optname, return -EINVAL; if (copy_from_sockptr(&entries, optval, sizeof(entries))) return -EFAULT; + if (entries < XDP_RXTX_RING_MIN_ENTRIES) + return -EINVAL; mutex_lock(&xs->mutex); if (xs->state != XSK_READY) {
We expect tx entries to be greater than twice the number of packets that the network card can send at a time, so that when the remaining number of the tx queue is less than half of the queue, it can be guaranteed that there are recycled items in the cq that can be used. At the same time, rx will not cause packet loss because it cannot receive the packets uploaded by the network card at one time. Of course, the 1024 here is only an estimated value, and the number of packets sent by each network card at a time may be different. Signed-off-by: Xuan Zhuo <xuanzhuo@linux.alibaba.com> --- include/uapi/linux/if_xdp.h | 2 ++ net/xdp/xsk.c | 2 ++ 2 files changed, 4 insertions(+)