Subject: Re: packet capturing
To: Darren Reed <darrenr@mail.netbsd.org>
From: Jonathan Stone <jonathan@dsg.stanford.edu>
List: tech-kern
Date: 01/21/2004 12:22:02
In message <Pine.NEB.4.58.0401211743110.18750@mail.netbsd.org>Darren Reed write
>That there are serious problems with "standard" BPF performance is well
>known since NFR
Longer, possibly. Vern Paxson was well aware of it back when he was
still at LBL.
>looked at using it for its first range of products some
>years ago now. To sit back and say "my super-fast PC has no problem"
Darren, take a couple of deep breaths. Y ou've totally missed my
point, so, here it is again:
1. that was a stock Dell machine that I happened
to have around; not superfast at all.
2. That machine was acutally __handling__ the ``DoS'' traffic
in question, as well as keeping up. As the closest I could
come to a slow machine.
3. Most of the NetBSD developers here *know* the default bpf buffer
sizes are too small. If we do serious packet capture, we
increase them by several powers of two: from 32k up to a megabyte or
so. Once that's done, even a 133 Pentium can do a reasonable job
at keeping up with a real-life 100 Mbit stream.
At that point one should start to ask, seriously, just what
Luca Deri's paper is telling us.
4. I have committed changes to our tree to make that 1 Mbyte
buffer size the default *for libpcap* (i.e., tcpdump, ethereal, ...)
and available to other native bpf apps, if the authors want it.
5. At that point, Luca Deri's packet-capture statistics are a strawman.
The context-switch overhead, and number of invocations of the bpf
copyout machinery, have dropped by a factor of 32.
6. As I said earlier: driver polling __is not necessary__.
Modern NICs in the US $20 range provide good Rx interrupt deferal,
to the point where polling simply doesn't buy anything significant.
Really. I tell you three times.
Sure, there may well be some benefit to the ring-buffer API to avoid
the copy overhead. But if there were any worthwhile conclusions *about
bpf* in that paper, they are no longer directly relevant, since we're
no longer measuring the same thing. (and I defy you to find any
worthwhile concliusions about BPF in that paper, above and beyond
Table 1, which says FreeBSD BPF is 68 times better than stock Linux.)