Post a Comment On: /dev/dump

"hme GLDv3 and *hardware checksum*"

2 Comments -

1 – 2 of 2
Blogger bager said...

Excellent! I am very interested in results comparing DLPI,GLDv3 w/o hw checksum and GLDv3 with checksum on an Ultra SPARC II CPU based system.

Are there any other hardware features on hme which the old driver was not taking advantage of? What about Cassini? Does the existing ce driver make good use of all hardware offload cassini can do?

July 8, 2007 at 10:57 AM

Blogger Garrett D'Amore said...

The hardware feature I'm not making full use of in hme GLDv3 (in my driver) is polling support. This is a potential performance assist for very overloaded low end hardware. On anything with more than a single processor, its unlikely to make a noticeable difference.

It appears that hme *may* support a receive MAC address filter that allows more than a single unicast address to be configured. But since I don't have documentation handy, its hard to be sure. (Its a guess from looking at the header files.) Such a feature could be useful with Crossbow.

I am taking advantage of the tunable frame support in hme, which allows hme to process full-mtu VLAN frames. Note that the support in hardware is not adequate to enable jumbo frames. (The max frame size supported by the hardware is 4K.)

You will find other GLDv3 features which aren't part of hardware support, but which are nice. 802.3ad link aggregation (sometimes called "trunking" or "teaming"), VLAN support, DLPI link notification and IP instance support is all there.

Btw, I also tuned the receive code path slightly. For dealing with large number of small packets, this may have a noticeable impact.

Notably lacking hardware features for hme/qfe are 802.3x and advanced interrupt mitigation. Both of these features were introduced with the RIO chip (aka GEM).

Cassini is a totally different beast. It has very good offload support in its driver, but when the Crossbow framework comes out, it won't be able to take full advantage of its hardware features. This could change in the future, but it will require a GLDv3 ce driver, which is a "skunkworks" project I've been working on, unsanctioned by the current Cassini development staff.

July 8, 2007 at 11:36 PM