Re: [PATCH net-next v03 11/14] hinic3: Add Rss function
From: Jakub Kicinski <kuba@kernel.org>
Date: 2025-09-03 01:28:32
Also in:
linux-doc, lkml
From: Jakub Kicinski <kuba@kernel.org>
Date: 2025-09-03 01:28:32
Also in:
linux-doc, lkml
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);