On 2022/06/29 13:19, Stuart Henderson wrote:
> On 2022/06/28 23:11, Jonathan Matthew wrote:
> > This adds the (not quite) final bits to em(4) to enable multiple rx/tx
> > queues.
> > Note that desktop/laptop models (I218, I219 etc.) do not support multiple
> > queues,
> > so this only really applies to servers and network appliances (including
> > APU2).
> >
> > It also removes the 'em_enable_msix' variable, in favour of using MSI-X on
> > devices
> > that support multiple queues and MSI or INTX everywhere else.
> >
> > I've tested this with an I350 on amd64 and arm64, where it works as
> > expected, and
> > with the I218-LM in my laptop where it does nothing (as expected).
> > More testing is welcome, especially in forwarding environments.
>
> Doesn't break things but doesn't do anything on i386 (I guess there's no
> MSI-X?)
On amd64 on a similar machine, it works
I guess it maybe related to this in ppb.c
#ifdef __i386__
if (pci_intr_map(pa, &ih) == 0)
sc->sc_intrhand = pci_intr_establish(pc, ih, IPL_BIO,
ppb_intr, sc, self->dv_xname);
#else
if (pci_intr_map_msi(pa, &ih) == 0 ||
pci_intr_map(pa, &ih) == 0)
sc->sc_intrhand = pci_intr_establish(pc, ih, IPL_BIO,
ppb_intr, sc, self->dv_xname);
#endif