On Tue, Apr 18, 2017, at 17:16, David Miller wrote: > From: Simon Horman <simon.hor...@netronome.com> > Date: Tue, 18 Apr 2017 17:09:04 +0900 > > > On Wed, Mar 08, 2017 at 11:22:01AM -0800, Eric Dumazet wrote: > >> On Wed, 2017-03-08 at 12:11 -0700, Subash Abhinov Kasiviswanathan wrote: > >> > On 2017-03-08 11:40, Eric Dumazet wrote: > >> > > Well, this 'optimization' actually hurts when UDP sockets are not > >> > > connected, since this adds an extra cache line miss per incoming > >> > > packet. > >> > > > >> > > (DNS servers for example) > >> > > >> > Hi Eric > >> > > >> > Thanks for your comments. Would it be preferable to disable early demux > >> > for the > >> > servers with large unconnected workloads in that case? > >> > >> Well, many servers handle both TCP and UDP. > >> > >> For TCP, there is no question about early demux, this is definitely a > >> win. > >> > >> We probably should have one sysctl to enable TCP early demux, one for > >> UDP early demux. > > > > If early demux is a clear win for TCP then I wonder if it is > > unnecessary and by some leap also undesirable to have a configuration > > knob for that case. > > For forwarding workloads it is pure overhead since the early demux will > never find a local socket, and therefore it is wasted work.
Also for some more complicated fib rules setups the early demux logic could end up causing doing wrong lookups, because some route might not be actually local in one fib rule but it is in another one. Bye, Hannes