Thread (47 messages) 47 messages, 5 authors, 2008-12-26

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,
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help