Reg Intel Fortville IXL driver on 11-CURRENT
Ryan Stone
rysto32 at gmail.com
Wed Jun 17 19:17:52 UTC 2015
On Wed, Jun 17, 2015 at 7:00 AM, Lakshmi Narasimhan Sundararajan <
lakshmi.n at msystechnologies.com> wrote:
> [lakshmis at mau-bsd-10a ~/fortville/hol/sys/dev/ixl]$ diff -c5pt ixl_txrx.c
> ixl_txrx.c.mod
> *** ixl_txrx.c Fri Jun 12 06:56:51 2015
> --- ixl_txrx.c.mod Fri Jun 12 06:56:33 2015
> *************** ixl_mq_start(struct ifnet *ifp, struct m
> *** 96,112 ****
> --- 96,115 ----
> } else
> #endif
> i = m->m_pkthdr.flowid % vsi->num_queues;
> } else
> i = curcpu % vsi->num_queues;
> +
> + #if 0
> /*
> ** This may not be perfect, but until something
> ** better comes along it will keep from scheduling
> ** on stalled queues.
> */
> if (((1 << i) & vsi->active_queues) == 0)
> i = ffsl(vsi->active_queues);
> + #endif
>
> que = &vsi->queues[i];
> txr = &que->txr;
>
> err = drbr_enqueue(ifp, txr->br, m);
> [lakshmis at mau-bsd-10a ~/fortville/hol/sys/dev/ixl]$
>
My understanding is that this code is intended to be triggered as a last
resort. If that code is firing regularly then the driver is not correctly
tracking which queues are alive in the "active_queues" bitmask.
More information about the freebsd-net
mailing list