]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
idpf: change the method for mailbox workqueue allocation
authorMilena Olech <milena.olech@intel.com>
Wed, 16 Apr 2025 12:19:00 +0000 (14:19 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Fri, 16 May 2025 16:13:02 +0000 (09:13 -0700)
Since workqueues are created per CPU, the works scheduled to this
workqueues are run on the CPU they were assigned. It may result in
overloaded CPU that is not able to handle virtchnl messages in
relatively short time. Allocating workqueue with WQ_UNBOUND and
WQ_HIGHPRI flags allows scheduler to queue virtchl messages on less loaded
CPUs, what eliminates delays.

Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Milena Olech <milena.olech@intel.com>
Tested-by: Samuel Salin <Samuel.salin@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/idpf/idpf_main.c

index b35713036a54ab8fc5d059cf9651a6a59b337581..ae7066b506e6cb21e693582a9f6381ffcef34d20 100644 (file)
@@ -199,9 +199,8 @@ static int idpf_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                goto err_serv_wq_alloc;
        }
 
-       adapter->mbx_wq = alloc_workqueue("%s-%s-mbx",
-                                         WQ_UNBOUND | WQ_MEM_RECLAIM, 0,
-                                         dev_driver_string(dev),
+       adapter->mbx_wq = alloc_workqueue("%s-%s-mbx", WQ_UNBOUND | WQ_HIGHPRI,
+                                         0, dev_driver_string(dev),
                                          dev_name(dev));
        if (!adapter->mbx_wq) {
                dev_err(dev, "Failed to allocate mailbox workqueue\n");