net/enic: Allow at least 8 RQs to always be used
authorNelson Escobar <neescoba@cisco.com>
Wed, 21 May 2025 01:19:29 +0000 (01:19 +0000)
committerJakub Kicinski <kuba@kernel.org>
Thu, 22 May 2025 03:34:30 +0000 (20:34 -0700)
Enic started using netif_get_num_default_rss_queues() to set the number
of RQs used in commit cc94d6c4d40c ("enic: Adjust used MSI-X
wq/rq/cq/interrupt resources in a more robust way")

This resulted in machines with less than 16 cpus using less than 8 RQs.
Allow enic to use at least 8 RQs no matter how many cpus are in the
machine to not impact existing enic workloads after a kernel upgrade.

Reviewed-by: John Daley <johndale@cisco.com>
Reviewed-by: Satish Kharat <satishkh@cisco.com>
Signed-off-by: Nelson Escobar <neescoba@cisco.com>
Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
Link: https://patch.msgid.link/20250521-enic_min_8rq-v1-1-691bd2353273@cisco.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/cisco/enic/enic.h
drivers/net/ethernet/cisco/enic/enic_main.c

index 9c12e967e9f1299e1cf3e280a16fb9bf93ac607b..301b3f3114afa8f60c34c05661ee3cf67d4d6808 100644 (file)
@@ -26,6 +26,7 @@
 
 #define ENIC_WQ_MAX            256
 #define ENIC_RQ_MAX            256
+#define ENIC_RQ_MIN_DEFAULT    8
 
 #define ENIC_WQ_NAPI_BUDGET    256
 
index c753c35b26ebd12c500f2056b3eb583de8c6b076..6ef8a0d90bce38781d931f62518cf9bafb223288 100644 (file)
@@ -2296,7 +2296,8 @@ static int enic_adjust_resources(struct enic *enic)
                 * used based on which resource is the most constrained
                 */
                wq_avail = min(enic->wq_avail, ENIC_WQ_MAX);
-               rq_default = netif_get_num_default_rss_queues();
+               rq_default = max(netif_get_num_default_rss_queues(),
+                                ENIC_RQ_MIN_DEFAULT);
                rq_avail = min3(enic->rq_avail, ENIC_RQ_MAX, rq_default);
                max_queues = min(enic->cq_avail,
                                 enic->intr_avail - ENIC_MSIX_RESERVED_INTR);