[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <Pine.WNT.4.64.0901060909280.6204@ppwaskie-MOBL2.amr.corp.intel.com>
Date: Tue, 6 Jan 2009 10:40:38 -0800 (Pacific Standard Time)
From: "Waskiewicz Jr, Peter P" <peter.p.waskiewicz.jr@...el.com>
To: Herbert Xu <herbert@...dor.apana.org.au>
cc: "davem@...emloft.net" <davem@...emloft.net>,
"shemminger@...tta.com" <shemminger@...tta.com>,
"Kirsher, Jeffrey T" <jeffrey.t.kirsher@...el.com>,
"Skidmore, Donald C" <donald.c.skidmore@...el.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: Re: ixgbe select_queue broken in 2.6.28
On Tue, 6 Jan 2009, Herbert Xu wrote:
> Waskiewicz Jr, Peter P <peter.p.waskiewicz.jr@...el.com> wrote:
> >
> > I understand why you want to remove this, but at the same time it is
> > something that is useful if we don't abuse it. I know for a fact this
> > function pointer is very useful for routing performance setups, where
> > binding a Tx queue to the CPU is very useful. Jesse actually did the work
> > on testing and getting good results with this.
>
> Sure. But that is not driver-specific. The only reason to do
> an override is if the hash needs to be driver-specific. So far
> the only reasons that have been given are deficiencies in the
> current hash, rather than a genuine need by the driver.
I agree with your statement 100%. I do have a genuine need though, now
that I understand why the select_queue was being overridden for DCB. When
ixgbe is running in DCB mode, traffic will be filtered into the traffic
classes (i.e. Tx queues) via tc filters. Since each queue has a specific
priority in the hardware queueing, it's important that traffic isn't
distributed across queues without specifically being filtered there. The
best way to address this is to have select_queue return Tx queue 0, which
is the lowest priority queue for DCB. Then if we exit DCB mode, we return
select_queue to NULL, so the kernel's hash takes back control.
If that sounds reasonable, I can fix the original problem Stephen pointed
out that select_queue in DCB isn't using the netdev_ops pointer. I do
still believe the existence of this function pointer is necessary; please
consider the DCB case and let me know if you agree or not.
Cheers,
-PJ Waskiewicz
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists