Subject: Re: multiple rx/tx rings and interrupt delivery on newer nics
To: Darren Reed <darrenr@netbsd.org>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-net
Date: 06/13/2007 09:50:29
On Wed, Jun 13, 2007 at 01:12:23AM -0700, Darren Reed wrote:
>
> Has anyone started to think about how NetBSD can take advantage
> of NICs that have a larger number of rx/tx descriptor rings,
> and/or MSI interrupts?

Think, yes -- do, no.

> For example, would this get tied in with ALTQ or something else?

Ooh, I hope not.  ALTQ is slow.

> Should I be able to dedicate a rx/tx ring pair to http traffic
> and another to ssh, etc?

I've been thinking about this -- I know Solaris can do this now -- and
I have to say I'm somewhat skeptical.  Does this really save much overhead?

I might rather have the packets all land in one ring, tagged for what
rule they've matched in classification.  Now, on the other hand, what would
be of great performance benefit for _my_ application, at least, on a
multiprocessor, would be the ability to use multiple rings according to
a slightly different set of classification parameters, e.g. destination
IP address.  That way you can avoid stomping the cache of CPU A when
packets come in that will only ever be touched by the network stack on
CPU B.

> ...but to do any of that will require some sort of framework.

Yes.  Do you know how what Sun recently did has been working out?

It seems to me our highest priority for accomodating smarter NICs ought
to be header splitting.  It's ubiquitous and should give a good performance
boost while we try to figure out how to handle the fancier new NICs that
can classify packets and the like.

Thor