[CFT] SIFTR - Statistical Information For TCP Research: Uncle Lawrence needs YOU!

Lawrence Stewart lstewart at freebsd.org
Mon Jun 28 08:56:15 UTC 2010

Hi again,

After my most recent appeal for testers, I received some excellent 
feedback and thank everyone that has tried the patch. I've ironed out a 
couple of bugs and have what I hope is the import-ready candidate patch 
available for a final round of testing.

Please read on if you are able and willing to (re)test the code.

On 06/19/10 13:27, Lawrence Stewart wrote:
> Amount of feedback received thus far: nichts, nil, nada
> *sings "I'm so ronery" in his best Kim Jong-il voice* [4]
> Just like Uncle Sam [5], Uncle Lawrence needs you too - yes, I'm
> pointing at YOU!
> More specifically, people out there running current with 10-15 mins to
> spare for some testing, please read on.
> On 06/13/10 18:12, Lawrence Stewart wrote:
>> Hi all,
>> The time has come to solicit some external testing for my SIFTR tool.
>> I'm hoping to commit it within a week or so unless problems are
>> discovered.
>> SIFTR is a kernel module that logs a range of statistics on active TCP
>> connections to a log file. It provides the ability to make highly
>> granular measurements of TCP connection state, aimed at system
>> administrators, developers and researchers. You can use the data to find
>> bugs in the stack, understand why connections are performing badly and
>> test new code to name a few uses.
>> Development has been made possible in part by grants from the Cisco
>> University Research Program Fund at Community Foundation Silicon Valley,
>> and the FreeBSD Foundation. Bringing it into FreeBSD proper is being
>> carried out under the auspices of the "Enhancing the FreeBSD TCP
>> Implementation" FreeBSD Foundation project. More details are available
>> at [1,2,3].
>> If you can help out, please read on!


Latest patch which fixes 2 bugs reported by testers and adds a bit more 
discussion to the man page is available here:


Fixed bugs:
- Running SIFTR on an INVARIANTS enabled kernel with a large number of 
TCP flows terminating on the machine would lead to a KASSERT triggering 
in the ALQ framework when SIFTR was disabled.
- The "SACK enabled" data log message field was not being set correctly.

If you would like to test on a kernel revision older then r209558, make 
sure you have my r209325 diff to <sys/pcpu.h> applied. It is safe to 
apply r209325 stand alone as it is self contained and not used by any 
code in the tree other than SIFTR.

Please adapt the following instructions as appropriate based on the 
patch version you're testing.

>> Copy it to the root of your source tree and run the following:
>> patch -p1 < siftr_9.x.r209119.patch
>> It's a loadable kernel module so you can build it for testing like so:
>> cd <path/to/src>/sys/modules/siftr
>> make
>> kldload ./siftr.ko
>> (don't forget to "make cleandir" to remove cruft when finished testing)

It turns out that the above instructions to build the module can produce 
a .ko that is out of sync with your kernel in such a way that the module 
can load, but may blow up unexpectedly. This was observed when KTR was 
enabled in the running kernel.

To be safe, please use the following procedure instead:

- Ensure <path/to/src> is the source tree that the kernel you are 
currently running was built from.

cd <path/to/src>
make buildkernel
kldload /tmp/siftr.ko

Alternatively for the last 2 steps, you can "make installkernel ; 
shutdown -r now" after the kernel build completes and then simply 
"kldload siftr" as the module will be installed to /boot/kernel/ as per 

>> After applying the patch, you can read the man page by running:
>> man -M <path/to/src>/share/man siftr
>> If I've done a decent job, all the info you need to understand what it
>> does and how to use it should be in the man page.
>> I'm interested in all feedback and reports of success/failure, along
>> with details of the architecture tested and number of CPUs if you would
>> be so kind.
>> That should be enough to get the ball rolling. Thanks and I look forward
>> to hearing from you!
>> Cheers,
>> Lawrence
>> [1] http://caia.swin.edu.au/freebsd/etcp09/
>> [2] http://www.freebsdfoundation.org/projects.shtml#Swinburne
>> [3] http://caia.swin.edu.au/urp/newtcp/
> [4] http://www.youtube.com/watch?v=xh_9QhRzJEs (language warning)
> [5] http://www.sonofthesouth.net/uncle-sam/images/uncle-sam-wants-you.jpg


More information about the freebsd-current mailing list