Some performance measurements on the FreeBSD network stack

K. Macy kmacy at
Thu Apr 19 21:35:39 UTC 2012

> Yes, but the lookup requires a lock?  Or is every entry replicated
> to every CPU?  So a number of concurrent CPU's sending to the same
> UDP destination would content on that lock?

No. In the default case it's per CPU, thus no serialization is
required. But yes, if your transmitting thread manages to bounce to
every core during send within the flow expiration window you'll have
an extra 12 or however many bytes per peer times the number of cores.
There is usually a fair amount of CPU affinity over a given unit time.

   “The real damage is done by those millions who want to 'get by.'
The ordinary men who just want to be left in peace. Those who don’t
want their little lives disturbed by anything bigger than themselves.
Those with no sides and no causes. Those who won’t take measure of
their own strength, for fear of antagonizing their own weakness. Those
who don’t like to make waves—or enemies.

   Those for whom freedom, honour, truth, and principles are only
literature. Those who live small, love small, die small. It’s the
reductionist approach to life: if you keep it small, you’ll keep it
under control. If you don’t make any noise, the bogeyman won’t find

   But it’s all an illusion, because they die too, those people who
roll up their spirits into tiny little balls so as to be safe. Safe?!
>From what? Life is always on the edge of death; narrow streets lead to
the same place as wide avenues, and a little candle burns itself out
just like a flaming torch does.

   I choose my own way to burn.”

   Sophie Scholl

More information about the freebsd-net mailing list