From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7260F2566; Wed, 3 Sep 2025 01:28:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756862912; cv=none; b=H/7GEQJCM3iT+dWQxFIIxla9VHNEROkD+HrUUofm/1uI9K+itGS5J6qBUuoO+GRWsmXcO4FoMvxkNZYGLhs4kTZEmfvyohSiho3BVYa/nM1W+kBqu+LS8blU/g7VcUYzjRkAlKy3UQHMRGoCxG9so1dQ77Gk+/vEUwMXKgaAEr8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756862912; c=relaxed/simple; bh=91f4ejBaiZx+nJEgw2oR6OjbxgiL6Xnd7YDBpAbKlJc=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=Sw73qN229ZDJP5lIKrdHCOU50m0Em6oE04Ei27qSFcvcH6Fmx6P98UJvhwjnX06bwUyfihRJBX2jrFkqziaIKbQ0DFwPGaIYtQgib/xB3dl/YQBnP15TzYf+9ec4CH+SWlPuLjQrrGTEZUQUd2PXsQGvaDwKs5RFW9TnCAAgt/Y= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Q1Jkf2QJ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Q1Jkf2QJ" Received: by smtp.kernel.org (Postfix) with ESMTPSA id C3824C4CEED; Wed, 3 Sep 2025 01:28:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1756862912; bh=91f4ejBaiZx+nJEgw2oR6OjbxgiL6Xnd7YDBpAbKlJc=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=Q1Jkf2QJwqzDQ5WOiPoE5VwUHLDCGkskS87tfNqFOvY26ABHJ2MTpshPxwzBw8PA+ pEuOAAUQyZ0pivBsY7k54bo1zo3hO5HfphFfSEWj9WOMEaCH4JhnI6kd1WeXV1Wvwj dj2xQYQSKGsUFZvuwz1aTjFsi+5GBbP08QkvhO8uZmUeiyOvdA8MVD2hd1s8clSbBJ 90QJN8CF4LCHG2EwynlAQiE0aKcA6f+TNierJui7Ns9pnAMlvqZVlHLG94V+Q2Qq7e jIXPhxM6f9QsYuJ6X8AwwdZI77S18YJ9hEZTA57DHizpVhCDs2zmrFJ5HdOEBTowha dOM5w+SZT+frg== Date: Tue, 2 Sep 2025 18:28:29 -0700 From: Jakub Kicinski To: Fan Gong Cc: Zhu Yikai , , , "David S. Miller" , Eric Dumazet , Paolo Abeni , Simon Horman , Andrew Lunn , , Jonathan Corbet , Bjorn Helgaas , luosifu , Xin Guo , Shen Chenyang , Zhou Shuai , Wu Like , Shi Jing , Meny Yossefi , Gur Stavi , Lee Trager , Michael Ellerman , Vadim Fedorenko , Suman Ghosh , Przemek Kitszel , Joe Damato , Christophe JAILLET Subject: Re: [PATCH net-next v03 11/14] hinic3: Add Rss function Message-ID: <20250902182829.2fc36565@kernel.org> In-Reply-To: References: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Sat, 30 Aug 2025 16:08:50 +0800 Fan Gong wrote: > +static void hinic3_fillout_indir_tbl(struct net_device *netdev, u16 *indir) > +{ > + struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); > + u16 i, num_qps; > + > + num_qps = nic_dev->q_params.num_qps; > + for (i = 0; i < L2NIC_RSS_INDIR_SIZE; i++) > + indir[i] = i % num_qps; ethtool_rxfh_indir_default() > +/* Get number of CPUs on same NUMA node of device. */ > +static unsigned int dev_num_cpus(struct device *dev) > +{ > + unsigned int i, num_cpus, num_node_cpus; > + int dev_node; > + > + dev_node = dev_to_node(dev); > + num_cpus = num_online_cpus(); > + num_node_cpus = 0; > + > + for (i = 0; i < num_cpus; i++) { > + if (cpu_to_node(i) == dev_node) > + num_node_cpus++; > + } > + > + return num_node_cpus ? : num_cpus; Please use netif_get_num_default_rss_queues(). If you think its heuristic should be improved -- fix it, but don't invent driver-local logic. > +static void decide_num_qps(struct net_device *netdev) > +{ > + struct hinic3_nic_dev *nic_dev = netdev_priv(netdev); > + unsigned int dev_cpus; > + > + dev_cpus = dev_num_cpus(&nic_dev->pdev->dev); > + nic_dev->q_params.num_qps = min(dev_cpus, nic_dev->max_qps);