[PATCH ath-next] wifi: ath10k: spread the PCI copy engine interrupts over the CPUs
Julius Bairaktaris
julius at bairaktaris.de
Sat Nov 14 13:05:06 PST 2026
On Mon, Nov 2, 2026 at 1:13 PM Loic Poulain wrote:
> > - ret = pci_enable_msi(ar_pci->pdev);
> > - if (ret == 0)
> > + ret = pci_alloc_irq_vectors(ar_pci->pdev, 1, CE_COUNT_MAX + 1,
> > + PCI_IRQ_MSI);
>
> Why not simply using pci_alloc_irq_vectors_affinity()?
irq_calc_affinity_vectors() sizes the block by the possible CPUs: 5
vectors on the 4-CPU IPQ8074 with the firmware vector as pre_vector.
msi_setup_msi_desc() rounds that up and enables 8 in the device, so the
HTT copy engine's vector 6 has no handler: 226 interrupts in 14 s (one
run) against 36891-37590 with the hints (three runs). A calc_sets
callback allocates all 8, but group_cpus_evenly() makes at most one
group per CPU and the rest get irq_default_affinity. v2 takes the whole
block or one vector, and keeps the hints.
Julius
More information about the ath10k
mailing list