Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Apr 2012 17:40:13 +0000
From:      "Li, Qing" <qing.li@bluecoat.com>
To:        Luigi Rizzo <rizzo@iet.unipi.it>
Cc:        "current@freebsd.org" <current@freebsd.org>, "net@freebsd.org" <net@freebsd.org>
Subject:   RE: Some performance measurements on the FreeBSD network stack
Message-ID:  <B143A8975061C446AD5E29742C531723C7CA49@pwsvl-excmbx-05.internal.cacheflow.com>
In-Reply-To: <20120424163423.GA59530@onelab2.iet.unipi.it>
References:  <20120419133018.GA91364@onelab2.iet.unipi.it> <4F907011.9080602@freebsd.org> <20120419204622.GA94904@onelab2.iet.unipi.it> <B143A8975061C446AD5E29742C531723C7C16A@pwsvl-excmbx-05.internal.cacheflow.com> <20120424163423.GA59530@onelab2.iet.unipi.it>

next in thread | previous in thread | raw e-mail | index | archive | help
Yup, all good points. In fact we have considered all of these while doing
the work. In case you haven't seen it already, we did write about these=20
issues in our paper and how we tried to address those, flow-table was one
of the solutions.

http://dl.acm.org/citation.cfm?id=3D1592641

--Qing


> >
> > Well, the routing table no longer maintains any lle info, so there
> > isn't much to copy out the rtentry at the completion of route
> > lookup.
> >
> > If I understood you correctly, you do believe there is a lot of value
> > in Flowtable caching concept, but you are not suggesting we reverting
> > back to having the routing table maintain L2 entries, are you ?
>=20
> I see a lot of value in caching in general.
>=20
> Especially for a bound socket it seems pointless to lookup the
> route, iface and mac address(es) on every single packet instead of
> caching them. And, routes and MAC addresses are volatile anyways
> so making sure that we do the lookup 1us closer to the actual use
> gives no additional guarantee.
>=20
> The frequency with which these info (routes and MAC addresses)
> change clearly influences the mechanism to validate the cache.
> I suppose we have the following options:
>=20
> - direct notification: a failure in a direct chain of calls
>   can be used to invalidate the info cached in the socket.
>   Similarly, some incoming traffic (e.g. TCP RST, FIN,
>   ICMP messages) that reach a socket can invalidate the cached values
> - assume a minimum lifetime for the info (i think this is what
>   happens in the flowtable) and flush it unconditionally
>   every such interval (say 10ms).
> - if some info changes infrequently (e.g. MAC addresses) one could
>   put a version number in the cached value and use it to validate
>   the cache.
>=20
> cheers
> luigi



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B143A8975061C446AD5E29742C531723C7CA49>