[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