Hi misc@, I figure this may not be worthy of tech@. Just wanted to mention some thoughts.
I see a lot of work done around the various NIC offloading features. Personally, I've had a lot of problems with these. Typically involving virtualization at the guest level or the host level. Now a lot of my experience here comes from Linux many moons ago. But I found a lot of hardware that wouldn't play nicely unless offloading was disabled, with the most aggravating bugs. There's also minor nuisances, like checksums not matching in tcpdump under some circumstances. And some NICs would seem to "go bad" at some point at not play nicely with those settings enabled. I'm not 100% sure what the CPU savings are, but for my cases I've never found a situation that was impacted an obvious amount by having offloading features disabled. I also think that there can be some security issues where a packet might get by that the NIC splits up (I think segmentation offloading can do this) and it gets broken into another packet that would normally not be permitted. I certainly don't have all the answers here, and my experience on the matter is rather old. I just had enough of a persistently poor experience with offloading features to where I assume that I would rather not have any offloading code at all. That said, maybe some chipsets work great. And maybe some of the features, especially say outbound, are quite reliable. I'm just a skeptic after being bitten by it. Maybe some of it was Linux related? I'm sure someone here has had a more positive experience with it, or can attest that the performance gains are worthwhile, or that it can be utilized only on hardware known to be reliable with it. Most of my experience involves gigabit hardware and performance requirements, so I can see how at say 40gbit/sec, offloading is 40x more valuable. Thanks for reading. -Henrich

