Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp153009pxb; Wed, 18 Nov 2020 00:28:12 -0800 (PST) X-Google-Smtp-Source: ABdhPJwEEorhDabwzICiJynlk0c6won7El8d+b1ZbX49FGCUG1JzWsgmK4RzqY6IdMO/LAYH8Zdx X-Received: by 2002:a05:6402:1a33:: with SMTP id be19mr25541293edb.47.1605688092207; Wed, 18 Nov 2020 00:28:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605688092; cv=none; d=google.com; s=arc-20160816; b=Aar8x2qkl0/rJQ8POwb8stiPMyNJxqJC/SsGo1fpO3yc4UM2z+tdi3a5D7L67U7Jga zBe7XU9z/dFq3KpxiA8ZmeC9yCFV01/6dIRokTd2JYsQCKeKJnP48+X9Z7PEzULUH8HR C7RvA4n227KxzL40RzgByIDSlQtfrxUbxhCftIXgGxHDV1yOmlewpX+NZZmtSfleAkOl zPasDLzUMlybshPp5YkaA2mz/W70+D0MlZpuiT8cenD4fGthD+ZwFMX3c4ZWvWdqMACH 570/zg/B1aDjTQpju1gaIujBCjfd5NqOiA8CXZCt9QE73Rs76OErlaGUE31hY3jTG/+m 3kNw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:references:in-reply-to:references:in-reply-to :message-id:date:subject:cc:to:from; bh=DyUncRieCXlNthc9D3lHvoPXiJHJjQoZb0cdUPv3UDg=; b=ufE7yPsMr8ZWRZHouwO/cwgxyfLPTodCaE9t57tw2x8Yx6b86xrmaePdqKC79tVf0l mRArPbPFNpRvVkcAFfi9g091MJBtdHRD6yN/Wayv2tzQmwUGXY+D1LeO31Zy0if0bdCU n7/+oE7aYJUdKX61K/KJLnkxh8jfdlSqGYMIRkIzLOWkVZArs2G1fO3lOfMgD6kAUZ2f N6gp/3n3tExaJoZRMd2K2k0BcwOyoomBJReX8e6pIEIjGI7+Hnt4JVDZgC9xAUZdxWog zDcyuflWPNePyUz7f5GtW+vLrP3blAsNUKtb9jr1FVuLEcpsmzD/Zi2v+3l/MQ9DCktJ KGuQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id s17si13808649edt.578.2020.11.18.00.27.49; Wed, 18 Nov 2020 00:28:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=alibaba.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727521AbgKRIZS (ORCPT + 99 others); Wed, 18 Nov 2020 03:25:18 -0500 Received: from out30-133.freemail.mail.aliyun.com ([115.124.30.133]:54216 "EHLO out30-133.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726296AbgKRIZR (ORCPT ); Wed, 18 Nov 2020 03:25:17 -0500 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R171e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=e01e01424;MF=xuanzhuo@linux.alibaba.com;NM=1;PH=DS;RN=12;SR=0;TI=SMTPD_---0UFn7TNs_1605687913; Received: from localhost(mailfrom:xuanzhuo@linux.alibaba.com fp:SMTPD_---0UFn7TNs_1605687913) by smtp.aliyun-inc.com(127.0.0.1); Wed, 18 Nov 2020 16:25:13 +0800 From: Xuan Zhuo To: bjorn.topel@intel.com Cc: Magnus Karlsson , Jonathan Lemon , "David S. Miller" , Jakub Kicinski , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , netdev@vger.kernel.org, bpf@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/3] xsk: set tx/rx the min entries Date: Wed, 18 Nov 2020 16:25:10 +0800 Message-Id: X-Mailer: git-send-email 1.8.3.1 In-Reply-To: References: <3306b4d8-8689-b0e7-3f6d-c3ad873b7093@intel.com> In-Reply-To: References: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- include/uapi/linux/if_xdp.h | 2 ++ net/xdp/xsk.c | 2 ++ 2 files changed, 4 insertions(+) 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) { -- 1.8.3.1