3 ms·
Doesn't disabling offloading (of anything) result in increased CPU usage when transferring lots of data? Is it now that it's faster but uses more CPU, or is it
by herpderperator 3y ago
Doesn't disabling offloading (of anything) result in increased CPU usage when transferring lots of data? Is it now that it's faster but uses more CPU, or is it actually faster with the same CPU usage (a "proper" fix)?
- majke 3y agoThere are probably a couple of independent things: (1) HW GRO, most often LRO (TCP) (2) SW GRO aka GRO Hardware GRO was typically called LRO for TCP and is often disabled in practice. One reason is XDP, with XDP some offloads need to stay off. Another is device quirks: while idea of waiting for more data, and passing larger packets into kernel soiunds nice, it also means that device must do packet concatenation. Think about ECN or selective-acks. The concatentation is lossy and unless the flow is perfect, it might not be possible to concatenate packets. Furthermore devices often had issues with being too aggrressive and loosing important data. In Linux there is a software approach that does kindof the same thing, but in software, called GRO, and this is often sufficient. It also supports more than just TCP. In other words - having LRO disabled is common.