Subject: Re: [PATCH v2 0/2] Tracepoint for tcp retransmission

From: Hagen Paul Pfeifer <[email-masked]>
Date: Sat, 4 Feb 2012 16:58:07 +0100

* Neil Horman | 2012-02-04 09:28:23 [-0500]:

>So, I hadn't really considered this approach (missed the suggestion previously).
>Its not really accurate to disregard this solution entirely.  While the overhead
>of tcpdump (or libpcap more specifically) might be too much, it speaks to a
>possible solution that doesn't require adding additional tracepoints: a
>netfilter hook.  What about writing a kernel module to hook at various points
>(I'd guess IP_PREROUTE would be best), to detect duplicate sequence numbers on a
>particular connection.  You could export the information via a proc file, or do
>it asynchronously with a netlink socket or some such.  Thats the sort of module
>that pleasantly isolated (allow those not interested to not have to include it
>in their builds or see it in the source), efficiently provides the information
>you need, and can be expanded to other types of traffic should you need it in
>the future.

That sounds broken by design. Copy TCP sequence number mechanism one more time
as a netfilter module? You probably catch the retransmission drop with this,
but users *want* more: in one week Satoru realize that the retransmission
tracepoint doesn't cover all required information for their customer. Other
user may need information about TCP rate-halfing-SACK-rto-foo drops. You will
and up realizing that in-packet data (like sequence number) is not sufficient
for correct analysis. Ask Yuchung how many tracepoints they use. Maybe Google
guys should publish their git network-stack-trace topic branch, like the rt
branch: everybody who want more tracing should pull from this branch. (ok, too
revolutionary ;-)

What is required is a context aware tracing mechanism with no overhead and no
code modification ... Mmhh ... systemtap! ;-)

The problem is the usability of systemtap. One problem is that the scripts are
maintained out of kernel development (maybe) and thus source code
modifications are not aligned (kernel and systemtap scripts). IMO that's one
of the drawbacks of systemap. But maybe this is no problem in praxis:
end-customers normally use stable kernels for a longer time.

Hagen