From: rapier <rapier@psc.edu>
To: netdev <netdev@vger.kernel.org>
Subject: [PATCH net-next 0/3] Implementation of RFC 4898 Extended TCP Statistics (Web10G)
Date: Tue, 16 Dec 2014 12:49:59 -0500 [thread overview]
Message-ID: <549070C7.5070505@psc.edu> (raw)
The following patch increments and/or update select RFC 4898 (TCP
Extended Statistics MIB) metrics within the TCP stack; we refer to this
as the Kernel Instrument Set (or KIS). The goal of RFC 4898 is to
expose advanced statistics from TCP’s vantage point to userland in order
to help diagnose performance problems in both the network and
application. The metrics are gathered and cached within structures
defined in our header file (tcp_estats.h) on a per connection basis
allowing for highly detailed analysis of all TCP flows. More information
can be found at http://www.web10g.org/
Note, the KIS does not integrate any specific ABI. This allows for a
clear separation between the kernel instruments and the methodology used
to make the metrics available to userland. Currently, we have a netlink
implementation available as a DLKM and an associated API available at
https://sourceforge.net/projects/tcpestats/files/
Performance analysis provided by the kernel development teams at Google
and Facebook indicate that the overhead imposed when the KIS is
configured active and exposed via an ABI are minimal. Facebook related
performance impacts of between 0% and 2%, depending on the the frequency
of polling the KIS via ftrace. Analysis performed at Google indicate
similar performance characteristics.
Since the size of the KIS patch set is considerable (~2k lines), we have
broken it up into two components, the first provides our structures and
macros to the TCP networking DLKMs. The second provides the routines
that manage and control the TCP Extended Statistics, as well as
providing hooks for configuring and enabling the KIS. Each set of
patches patches, compiles, and runs independently. However, full
functionality requires both patch sets to be installed.
We took this approach because the control and management (C&M) routines
are, in our view, of secondary importance to the actual instrumentation.
As such, we did not want any issues with the C&M methods to impact the
adoption of the KIS. There is overlap between the two patch sets
(specifically the header files in the C&M) which will likely make
applying the C&M patch cleanly on top of the KIS patch problematic. As
such, I've also included a concatenated patch that includes both the KIS
and the C&M for evaluation.
A git repo is available at http://github.com/rapier/web10g The
net-next branch contains the instrumentation (1st patch set) and the
control and management (2nd patch set). The API is also available at
http://github.com/rapier1/web10g-userland
Chris Rapier
next reply other threads:[~2014-12-16 17:50 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-16 17:49 rapier [this message]
2014-12-16 18:24 ` [PATCH net-next 0/3] Implementation of RFC 4898 Extended TCP Statistics (Web10G) rapier
2014-12-16 19:13 ` rapier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=549070C7.5070505@psc.edu \
--to=rapier@psc.edu \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).