Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp2626832pxb; Tue, 24 Aug 2021 03:56:06 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzInwFm7uB27fLkjsjrzjNkIzedff8vWmT0Lz/mwWvZOzhovxRoutD/YZrByDjRnCTj6Mdr X-Received: by 2002:aa7:d54f:: with SMTP id u15mr39954633edr.178.1629802566535; Tue, 24 Aug 2021 03:56:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629802566; cv=none; d=google.com; s=arc-20160816; b=rA3dxh0cGFxH6M2hwC28brYQuxqlB91hs38Nnus01Um/vcEC86wBv436H0s5h5w33P a8ZXoKMO5vsKoZdWOz93WWvGDL75B7Bw513B0mTOK//+j4p/TkJcTQsEMy+V+3S/nyWT H8DSj4MZP+NBmIB9jp4d8Oi/KrWW+enhowX7kY/a994MdhOqOvA4EGLkUpMWVxloDE0r p9vgC32MgLKYtRh8qp9OxNkxxbh8vJ/TjyOQHm51OMAhya2LSDPFZxSunK9lFfHWdtTC 633W0nsiI9sCR+KFoSJFH6QL8G5I4xu3v3iMsNlyZ6NRtDnDHeexl/AtsxnSNppcV4iI HwEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=LNPUq/my7v0mlOT+sydB1v9A4usTz8ZuFnFZblPYipE=; b=ieH2GcEjlIPzrlYDHljFcX7hH4IXhoIP0BjqgY0c3VQoWP16YR2gPT8aRdeiyen2vJ XtNVqzjpu0znAp4mDrjYnlVK7MJJIdjQ24S+/qvP9h9ZiT6rC3ATRJx/OVTLMKNuwNfi sZJ6MzSYhtm9nXFS5neX/DTJewrgK07XBRKod6gAwexeHxLmx9RpQibSkxjrWNcDPzIH v/ufMuTFq/QcWoQPMXCxY+dfnUfFGqi5JAROEa0e6jR6vybvdyFmPc3e32AhFWEMYHsK Q6QgYRzIEfL8OV4Ebf6sATxdCHKlOgxJVyeRzlUMqEtjs+6+IyU6JNoQIvdqbiRilhtx LyZg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ac6NqL2k; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h12si7379457ede.98.2021.08.24.03.55.43; Tue, 24 Aug 2021 03:56:06 -0700 (PDT) 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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=ac6NqL2k; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236380AbhHXKxr (ORCPT + 99 others); Tue, 24 Aug 2021 06:53:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54932 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236150AbhHXKxp (ORCPT ); Tue, 24 Aug 2021 06:53:45 -0400 Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A3FCC061757; Tue, 24 Aug 2021 03:53:01 -0700 (PDT) Received: by mail-pg1-x52c.google.com with SMTP id c17so19395718pgc.0; Tue, 24 Aug 2021 03:53:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=LNPUq/my7v0mlOT+sydB1v9A4usTz8ZuFnFZblPYipE=; b=ac6NqL2kYMbSjIW7lO8U2EAfeZ8ZSvdYpRAN5FtVqf26LMPDTR/PlH9M2ZVJqumiQW RJDD+CSR17WXxqAkHvZ0bDjZ08DUhoo9s+30kz8LmAM0Q5g52gTe1ZAN3aG+YV5Wls8z ehmq4UcLfCOGpaui3XKMdm9knQgZO0LvG6jZkyqUnadxQQVmu0vU9X3iDAFyJhQhptTt LMzauYG6fQWOJbmpUlMzdAWEGD9PZD5pCdGe/baFjq5R5Gw9fo8Yk6bqQ6pXfPeri4Mv BIcAnN0KkSLu472Ek1yiBAUbpXNK/vaY9z6jz4/hhrwlCM5R2hD2ugLKZh2+1u8HWvRw zYpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=LNPUq/my7v0mlOT+sydB1v9A4usTz8ZuFnFZblPYipE=; b=og7vJphA2O2qLFFTXPOXq+DK/AMHthuHJX72vVrHcGeP15yQAhCqNlXDXLnLNzEC5u O5Qi7BfFsgY2tWOTtU1NfORmiE6hGvg/XFP6mhDZMng/39WEO8nlF7gcaJ1C9kYvhKYv jonBpNTnIoXBzgcxRQF7C8k49XCQbxYreb4VvNCFYPoSk8GR/qaUOVtGjsO86iwBdJng ILG2+IaoBYVj4Y0Q7lIbDmYRxqbLLrZEsDOREqLEs0GOYVirkfyMcF/mIjjJ7YxUgbxO HAN4DBRKtL9BmSAVPi6uOeREljmjFXYIYK/tl8AUVy7x3sG1t3/pJKf7GQDFeDibvtWO AhXQ== X-Gm-Message-State: AOAM530WLEIJfkweq0bVm1KjNVezXljArMNqexhnjaI45D/4IuEK32UY isOJ1wqakVMhDk5un5vYA24= X-Received: by 2002:a63:170d:: with SMTP id x13mr35222225pgl.216.1629802380966; Tue, 24 Aug 2021 03:53:00 -0700 (PDT) Received: from localhost.localdomain ([162.219.34.246]) by smtp.gmail.com with ESMTPSA id q12sm2085126pfj.153.2021.08.24.03.52.56 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 24 Aug 2021 03:53:00 -0700 (PDT) From: kerneljasonxing@gmail.com To: jesse.brandeburg@intel.com, anthony.l.nguyen@intel.com, davem@davemloft.net, kuba@kernel.org, ast@kernel.org, daniel@iogearbox.net, hawk@kernel.org, john.fastabend@gmail.com, andrii@kernel.org, kafai@fb.com, songliubraving@fb.com, yhs@fb.com, kpsingh@kernel.org Cc: intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bpf@vger.kernel.org, kerneljasonxing@gmail.com, Jason Xing , Shujin Li Subject: [PATCH] ixgbe: let the xdpdrv work with more than 64 cpus Date: Tue, 24 Aug 2021 18:49:18 +0800 Message-Id: <20210824104918.7930-1-kerneljasonxing@gmail.com> X-Mailer: git-send-email 2.30.1 (Apple Git-130) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Jason Xing Originally, ixgbe driver doesn't allow the mounting of xdpdrv if the server is equipped with more than 64 cpus online. So it turns out that the loading of xdpdrv causes the "NOMEM" failure. Actually, we can adjust the algorithm and then make it work, which has no harm at all, only if we set the maxmium number of xdp queues. Fixes: 33fdc82f08 ("ixgbe: add support for XDP_TX action") Co-developed-by: Shujin Li Signed-off-by: Shujin Li Signed-off-by: Jason Xing --- drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c | 2 +- drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c index 0218f6c..5953996 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_lib.c @@ -299,7 +299,7 @@ static void ixgbe_cache_ring_register(struct ixgbe_adapter *adapter) static int ixgbe_xdp_queues(struct ixgbe_adapter *adapter) { - return adapter->xdp_prog ? nr_cpu_ids : 0; + return adapter->xdp_prog ? min_t(int, MAX_XDP_QUEUES, nr_cpu_ids) : 0; } #define IXGBE_RSS_64Q_MASK 0x3F diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c index 14aea40..b36d16b 100644 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c @@ -10130,9 +10130,6 @@ static int ixgbe_xdp_setup(struct net_device *dev, struct bpf_prog *prog) return -EINVAL; } - if (nr_cpu_ids > MAX_XDP_QUEUES) - return -ENOMEM; - old_prog = xchg(&adapter->xdp_prog, prog); need_reset = (!!prog != !!old_prog); -- 1.8.3.1