Add support for rx flow hash configuration in a network device
Subsystems (2)
cover Add support for rx flow hash configuration in a network device
Added new interface to ethtool to configure receive network flow classification. This patch adds support for flow distribution using hashing where the device can be configured with the fields in the receive packet to hash onto one of the multiple Rx rings.
This feature has 3 related patches:
1. An ethtool application patch.
2. A kernel patch for the ethtool interface.
3. A kernel patch for the niu driver that implements the ethtool config ioctl functions. NOTE: The niu driver already has rx flow hashing implemented. With these 3 patches, this feature is now configurable using ethtool.
Thanks!
--santwona
Quoted 5 lines · Santwona Behera
Added new interface to ethtool to configure receive network flow classification. This patch adds support for flow distribution using hashing where the device can be configured with the fields in the receive packet to hash onto one of the multiple Rx rings.
Quoted 8 lines
This feature has 3 related patches:
1. An ethtool application patch.
2. A kernel patch for the ethtool interface.
3. A kernel patch for the niu driver that implements the ethtool config ioctl functions. NOTE: The niu driver already has rx flow hashing implemented. With these 3 patches, this feature is now configurable using ethtool.
Are you sure ethtool is the right interface for this?
Me thinks the kernel should just do the right thing automatically for this, by distributing the flows over CPUs.
-Andi
David Miller
maintainerFrom: Andi Kleen <[email protected]>
Date: Sun, 29 Jun 2008 14:17:56 +0200
Quoted 1 line
Are you sure ethtool is the right interface for this?
Yes.
Quoted 2 lines
Me thinks the kernel should just do the right thing automatically for this, by distributing the flows over CPUs.
How the work, and what kind of work, should be distributed across the machine is the user's business.
Or maybe we should just get rid of all of those NUMA knobs we have too?
We've discussed this before and Jeff Garzik and I already told everyone that we want to make this configurable and ethtool is the way to do it no matter how adhoc and device specific the interfaces might end up being.
Please don't send submitters mixed messages like this after we've told them to do things this way, it only leads to discouragement for new contributors.
Quoted 1 line
Please don't send submitters mixed messages like this after we've
Sorry must have missed the official bulletin on the latest party line.
Quoted 2 lines
told them to do things this way, it only leads to discouragement for new contributors.
I suspect "adhoc and device specific interfaces" like you are advocating will finally lead to discouragement of end users. But it is your choice.
-Andi
Quoted 4 lines
We've discussed this before and Jeff Garzik and I already told everyone that we want to make this configurable and ethtool is the way to do it no matter how adhoc and device specific the interfaces might end up being.
I think it was a few weeks ago that Jeff said:
I know user interfaces are annoying because you have to think about chips other than your own, but that's life. Other hardware vendors have to do it too.
Letting each driver have a different user interface is /unfriendly/ to both developers users.
I guess as long as you stick an "ethtool" in front of the different interfaces it all becomes OK.
- R.
David Miller
maintainerFrom: Roland Dreier <[email protected]>
Date: Mon, 30 Jun 2008 20:33:45 -0700
Quoted 11 lines
Quoted 4 lines
We've discussed this before and Jeff Garzik and I already told everyone that we want to make this configurable and ethtool is the way to do it no matter how adhoc and device specific the interfaces might end up being.
I think it was a few weeks ago that Jeff said:
I know user interfaces are annoying because you have to think about chips other than your own, but that's life. Other hardware vendors have to do it too.
Quoted 5 lines
Letting each driver have a different user interface is /unfriendly/ to both developers users.
I guess as long as you stick an "ethtool" in front of the different interfaces it all becomes OK.
This interface we're talking about is in fact not all that device specific, and it's extensible so that we can describe different types of flow hashing types if so needed to support other chips.
Currently Sun's Neptune is the only one that offers so many options, and to be honest I expect other implementations to be subsets of what Neptune can do.
From: Santwona Behera <[email protected]>
Date: Fri, 27 Jun 2008 17:06:16 -0700
Quoted 8 lines
This feature has 3 related patches:
1. An ethtool application patch.
2. A kernel patch for the ethtool interface.
3. A kernel patch for the niu driver that implements the ethtool config ioctl functions. NOTE: The niu driver already has rx flow hashing implemented. With these 3 patches, this feature is now configurable using ethtool.
Thanks for doing this work Santwona.
I've applied patch 2 and 3 to my net-next-2.6 kernel tree.
I spoke with Jeff Garzik, and he will add your first patch to the ethtool tree when he gets a chance.
Thanks again!