Re: [PATCH] tcp: make urg+gso work for real this time
From: Petr Tesarik <hidden>
Date: 2008-12-17 10:45:14
Herbert Xu píše v St 17. 12. 2008 v 21:17 +1100:
Petr Tesarik [off-list ref] wrote:quoted
1. Currently this code path will never get run, because large offloads are avoided both for hardware TSO and software GSO. You'd also have to modify the conditionals that guard calls to tcp_mss_split_point().Obviously one would revert the existing fixes after this is applied.quoted
2. Is it worth the trouble? This slows down the software GSO slightly. I mean, urgent data should be quite rare, so it makes sense to treat non-urgent data as "fast path" and urgent data as "slow path". While Ilpo's approach only slows down the slow path, your patch slows down both.Well it might slow down the GSO path slightly, but it speeds up the TSO generation path accordingly :) I think the cost is negligible in either case so the benefit of TSO dominates.
You're talking about the urgent-data case, right? Yes, for urgent data, correctly implemented GSO will no doubt be faster than splitting the skb. But GSO will also get (a bit) slower for the non-urgent-data case, where the slowdown is not compensated by anything. Or did I miss something obvious? Petr Tesarik
quoted
Anyway, we have to keep the code that avoids large offloads with URG, because many NICs are broken in this regard (at least all Intel NICs I've seen so far), so why treat software GSO specially?That's not a problem. Unless the NIC sets NETIF_F_TSO_URG (which nobody does currently because it's a new flag), we'll do the segmentation in software, but only if the packet is marked as URG. This is identical to how we handle ECN which most NICs get wrong as well. Cheers,