On Wed, Jul 17, 2024 at 03:55:10PM -0500, Wei Huang wrote: > From: Manoj Panicker <manoj.panicker2@xxxxxxx> > > Implement TPH support in Broadcom BNXT device driver by invoking > pcie_tph_set_st() function when interrupt affinity is changed. *and* invoking pcie_tph_set_st() when setting up the IRQ in the first place, I guess? I guess this gives a significant performance benefit? The series includes "pci=nostmode" so the benefit can be quantified, so now I'm curious about what you measured :) > +static void bnxt_rtnl_lock_sp(struct bnxt *bp); > +static void bnxt_rtnl_unlock_sp(struct bnxt *bp); These duplicate declarations can't be right, can they? OK for work-in-progress, but it doesn't look like the final solution. > +static void __bnxt_irq_affinity_notify(struct irq_affinity_notify *notify, > + const cpumask_t *mask) > +{ > + struct bnxt_irq *irq; > + > + irq = container_of(notify, struct bnxt_irq, affinity_notify); > + cpumask_copy(irq->cpu_mask, mask); > + > + if (!pcie_tph_set_st(irq->bp->pdev, irq->msix_nr, > + cpumask_first(irq->cpu_mask), > + TPH_MEM_TYPE_VM, PCI_TPH_REQ_TPH_ONLY)) > + netdev_dbg(irq->bp->dev, "error in setting steering tag\n"); > + > + if (netif_running(irq->bp->dev)) { > + rtnl_lock(); > + bnxt_close_nic(irq->bp, false, false); > + bnxt_open_nic(irq->bp, false, false); > + rtnl_unlock(); > + } > +}