From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f228.google.com (mail-qk1-f228.google.com [209.85.222.228]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AFDFD318BA8 for ; Fri, 14 Aug 2026 01:15:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.228 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786670143; cv=none; b=VE9v5W1ZAKSm7hCyKQRyMo2cxSK8tWs/9pJ/iSEgPD6+rZCDnWeYhreryNotS9iq5gstpKu+tJsySYn5FVT0xJ3h3qwTeEa4rKPzgOWY2A/Mnd6InIwfWcS428WYC4qTHBOxijuqadpVYGZMCwMvlqMPK83PYJxyRFcZdbm2NmQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786670143; c=relaxed/simple; bh=SXUPdxPTDZc4HnKD0Zk9Z6mqUhdu0czMIdY86JUcqHE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bjnk8czADbh+RZf7Z9/Ae0g/6iR4Vz077jQfIPNQUudzubcM79daEzDrx2lSLCjRcdyn+FPym65LZebd3VbnXF+PlbuCl7etLa4WxqDQ/aRCMC4au7DpKzYNe/KCTr5u81XBwSVYaoThNCjdpRwAOGmFsUZv3k2dWpkKRxQ7iMs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com; spf=fail smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b=GnMCr6d5; arc=none smtp.client-ip=209.85.222.228 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="GnMCr6d5" Received: by mail-qk1-f228.google.com with SMTP id af79cd13be357-934944f2d22so28122585a.0 for ; Thu, 13 Aug 2026 18:15:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786670140; x=1787274940; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=yJ/IoKEgFFx8EFbs+Y6vP+6q0YJIwuDeB3WzhyOt9jU=; b=ZFxMs2DchcI/mgplM9iJbA7HuueMPMyRiDIsisw7wBCt4FXXzp6ZDGEFdOAgaCfzf3 VzwhXfW1WzuU72ENZ01hDdmpeZBaGgAIWhJ21j5B7L6jIS2We1dH6A1AF78qmd5fI6Xj 5eqKmZO0yaghpdtTmxB4EVnFEE3ZYl9ZdXdpCvvCtRZHeAuIzI1OcdpgU7/cq5az43i2 ilge7MdwHf6b+BUjgmhF6DDgctt8AAk7Lhnp+4kkQd8DXGGWzgjuqxj4Wfeieo2NUafm o6r7/EI8prPpFeJKJLQofDnOf7Ji0IBBHAOVemLX7sEL+jACJo3tuEpZvienbw4jduIi YuYw== X-Forwarded-Encrypted: i=1; AHgh+Rp9UJsJGZNWX4r0OXSor442UNbHFp44LOfY8gzYoIiSYE1H3JxTq4+z6HU0TJBXpr0HtGy6ULmiTnG0igk=@vger.kernel.org X-Gm-Message-State: AOJu0YyYNZCbgnPaADMsKuirfV6arEsIA65KqwO+6fVsDKi9EYECHGs9 qCaUsKhoSNDyzhJB7E8LBgfcNkm0M1KgYCtFrYN/amxHWTJCKs2ZY7BHGKHl+gFbivcoyTk6FFe oLJqrwkeEWfPIEoDu7EdRAO9rxRGRGY3M+uf9VBd7omiPpbc2D6vCubaKNfjYcOguQAbtXu7/lv WwgaEskH/1n0nfO4nGCTrl7tVjlmrtcYaX6+di3inMgzSOrN7urlOsuGu+n7RB6pbxmo611oEHA 97F95sOqRHaTxYfAQ== X-Gm-Gg: AR+sD10YK4RoEXm0B7XXJ4ZfNowmGbYW2VJxxXdPx4GxnUxS+g2HrvqY/AWij63uuT9 dvpjeru5/cdcl1F1sQ1EXz4pWgNOxYAXuAr+QqLDi5iN6Xe44japdoAk+BS5qCBPNZoHyn7TXKt 4lQmzcc93Vsj4eqJTV1zZHxhJwpSmBk3zaUu5QfJ/MU08Ttcq3fbLpeSj9uNn2BKZM29TUvkXHo n+NlabLvJ9NspYwCLKG+jxzhs4YE176Z7vsEhNmldffThx8AASdSLlkITzfTonjRkZic3iaxJb+ lGiz3vawa079izmNbkHmJ8vr6tr8lHuYXeqAYz0iIxrN3CMP/S63DM82rcDmuL3vcoErIWamD/1 NT3tmBdueoy3Y24anWmAI5wa1QicxQ4aAjqkNZjo7po1OdBUBXlIcoojBVoOAI80y5S8KTE62+F P3pDtaJPTWiRbSvnALeVMJnc814X9FkyakMQ== X-Received: by 2002:ae9:e701:0:b0:931:4b6:a9e6 with SMTP id af79cd13be357-936d23d17fbmr173352885a.47.1786670140292; Thu, 13 Aug 2026 18:15:40 -0700 (PDT) Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-20.dlp.protect.broadcom.com. [144.49.247.20]) by smtp-relay.gmail.com with ESMTPS id af79cd13be357-936cdf40fe6sm40037885a.1.2026.08.13.18.15.40 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Aug 2026 18:15:40 -0700 (PDT) X-Relaying-Domain: broadcom.com X-CFilter-Loop: Reflected Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-cbee5bab340so557291a12.2 for ; Thu, 13 Aug 2026 18:15:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1786670139; x=1787274939; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=yJ/IoKEgFFx8EFbs+Y6vP+6q0YJIwuDeB3WzhyOt9jU=; b=GnMCr6d5Cr4y0+vmZxODNOvmLU08HJa5zYR/jx0/X8QPifLuKPNs5p8em6Zg1/Miys 6IhReD4oTibvM3eTBVUIu70cJRsea3cX96qIjf9JNF9+CIrIgZrcg5mdqMpKzxX/fhUY 32so2Tv3+p4zidgYtpjsJp71w8pIMRKWTD3vY= X-Forwarded-Encrypted: i=1; AHgh+Rp6efwdBazX8C4lgNW6OWJVqbIeDhdduD/saXWB7k7FA09kVt94jX/5Wy/X1dXwUGGC+KCzTir89SxA5Qk=@vger.kernel.org X-Received: by 2002:a05:6a21:3389:b0:3c4:36ef:3dc9 with SMTP id adf61e73a8af0-3cc71d1e1d5mr2029206637.17.1786670139160; Thu, 13 Aug 2026 18:15:39 -0700 (PDT) X-Received: by 2002:a05:6a21:3389:b0:3c4:36ef:3dc9 with SMTP id adf61e73a8af0-3cc71d1e1d5mr2029158637.17.1786670138711; Thu, 13 Aug 2026 18:15:38 -0700 (PDT) Received: from localhost.localdomain ([192.19.203.250]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31ebcb69fbbsm12174177eec.11.2026.08.13.18.15.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Aug 2026 18:15:38 -0700 (PDT) From: Vikas Gupta To: davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, andrew+netdev@lunn.ch, horms@kernel.org Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bhargava.marreddy@broadcom.com, rahul-rg.gupta@broadcom.com, vsrama-krishna.nemani@broadcom.com, rajashekar.hudumula@broadcom.com, dharmender.garg@broadcom.com, ajit.khaparde@broadcom.com, Vikas Gupta Subject: [PATCH net-next 11/11] bnge: add cpu_rmap support for IRQ affinity Date: Fri, 14 Aug 2026 06:44:35 +0530 Message-ID: <20260814011435.194631-12-vikas.gupta@broadcom.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20260814011435.194631-1-vikas.gupta@broadcom.com> References: <20260814011435.194631-1-vikas.gupta@broadcom.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e When CONFIG_RFS_ACCEL is enabled, allocate and populate a cpu_rmap for the RX IRQ vectors so that the kernel's aRFS infrastructure can correctly map flows to the RX queues serviced by the nearest CPU. This ensures that NTUPLE rules created by the kernel steer packets to the optimal queue based on CPU/IRQ affinity. Signed-off-by: Vikas Gupta Reviewed-by: Bhargava Chenna Marreddy Reviewed-by: Dharmender Garg --- .../net/ethernet/broadcom/bnge/bnge_netdev.c | 35 ++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c b/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c index fc752fe879b6..48de88924a7f 100644 --- a/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c +++ b/drivers/net/ethernet/broadcom/bnge/bnge_netdev.c @@ -18,6 +18,7 @@ #include #include #include +#include #include "bnge.h" #include "bnge_hwrm.h" @@ -2432,10 +2433,23 @@ static int bnge_setup_interrupts(struct bnge_net *bn) { struct net_device *dev = bn->netdev; struct bnge_dev *bd = bn->bd; + int rc; bnge_setup_msix(bn); - return netif_set_real_num_queues(dev, bd->tx_nr_rings, bd->rx_nr_rings); + rc = netif_set_real_num_queues(dev, bd->tx_nr_rings, bd->rx_nr_rings); + if (rc) + return rc; + +#ifdef CONFIG_RFS_ACCEL + if (bn->priv_flags & BNGE_NET_EN_NTUPLE) { + dev->rx_cpu_rmap = alloc_irq_cpu_rmap(bd->rx_nr_rings); + if (!dev->rx_cpu_rmap) + return -ENOMEM; + } +#endif + + return rc; } static void bnge_hwrm_resource_free(struct bnge_net *bn, bool close_path) @@ -2451,6 +2465,11 @@ static void bnge_free_irq(struct bnge_net *bn) struct bnge_irq *irq; int i; +#ifdef CONFIG_RFS_ACCEL + free_irq_cpu_rmap(bn->netdev->rx_cpu_rmap); + bn->netdev->rx_cpu_rmap = NULL; +#endif + for (i = 0; i < bd->nq_nr_rings; i++) { int map_idx = bnge_cp_num_to_irq_num(bn, i); @@ -2470,6 +2489,7 @@ static void bnge_free_irq(struct bnge_net *bn) static int bnge_request_irq(struct bnge_net *bn) { + struct cpu_rmap *rmap = NULL; struct bnge_dev *bd = bn->bd; int i, rc; @@ -2478,10 +2498,23 @@ static int bnge_request_irq(struct bnge_net *bn) netdev_err(bn->netdev, "bnge_setup_interrupts err: %d\n", rc); return rc; } + +#ifdef CONFIG_RFS_ACCEL + rmap = bn->netdev->rx_cpu_rmap; +#endif + for (i = 0; i < bd->nq_nr_rings; i++) { int map_idx = bnge_cp_num_to_irq_num(bn, i); struct bnge_irq *irq = &bd->irq_tbl[map_idx]; + if (IS_ENABLED(CONFIG_RFS_ACCEL) && + rmap && bn->bnapi[i]->rx_ring) { + rc = irq_cpu_rmap_add(rmap, irq->vector); + if (rc) + netdev_warn(bn->netdev, + "failed adding irq rmap for ring %d\n", i); + } + rc = request_irq(irq->vector, irq->handler, 0, irq->name, bn->bnapi[i]); if (rc) -- 2.47.1