it's the output, not ack coalescing (Re: TSO and FreeBSD vs Linux)
Luigi Rizzo
rizzo at iet.unipi.it
Thu Aug 15 03:19:02 UTC 2013
On Wed, Aug 14, 2013 at 12:40:19PM -0700, Peter Wemm wrote:
> On Wed, Aug 14, 2013 at 11:11 AM, Adrian Chadd <adrian at freebsd.org> wrote:
> > On 14 August 2013 04:47, Lev Serebryakov <lev at freebsd.org> wrote:
> >
> >
> >> And we should invalidate this info on ARP/route changes, or connection
> >> will be lost in such cases, am I right?.. So, on each such event code
> >> should look into all sockets and check, if routing/ARP information is
> >> still
> >> valid for them. Or we should store lists of sockets in routing and ARP
> >> tables... I don't know, what is worse.
> >>
> >
> > .. or per-CPU copies of the ARP table.. ?
>
> Local cache at each consumer and check a generation number to see if
> it needs to be re-validated before using. The obvious problem with
> this though is that big networks tend to kill your caches.
if you expect this to be problematic you can partition the entries
and use a different generation number per cluster.
Anyways if you really want to be guaranteed you need atomic
reads on the generation numbers (or ticks), which I have heard
are expensive on !i386/amd64 machines.
This is why I would probably try to live with races (which for
arp are a non problem).
cheers
luigi
More information about the freebsd-net
mailing list