[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1408060093.6804.44.camel@edumazet-glaptop2.roam.corp.google.com>
Date: Thu, 14 Aug 2014 16:48:13 -0700
From: Eric Dumazet <eric.dumazet@...il.com>
To: Alexander Duyck <alexander.h.duyck@...el.com>
Cc: David Miller <davem@...emloft.net>, netdev <netdev@...r.kernel.org>
Subject: Re: Performance regression on kernels 3.10 and newer
On Thu, 2014-08-14 at 16:16 -0700, Alexander Duyck wrote:
> On 08/14/2014 11:46 AM, Eric Dumazet wrote:
> > In real life, applications do not use prequeue, because nobody wants one
> > thread per flow.
>
> I still say this is just an argument to remove it. It looks like you
> submitted a patch to allow stripping it from the build about 7 years go.
> I assume it was rejected.
>
> > Each socket has its own dst now route cache was removed, but if your
> > netperf migrates cpu (and NUMA node), we do not detect the dst should be
> > re-created onto a different NUMA node.
>
> Are you sure about each socket having it's own DST? Everything I see
> seems to indicate it is somehow associated with IP. For example I can
> actually work around the issue by setting up a second subnet on the same
> port and then running the tests with each subnet affinitized to a
> specific node.
Here is the thing
nh_pcpu_rth_output is a per cpu cache.
But nh_rth_input is not, because we did not optimize the case where dst
has to be refcounted, yet.
Rationale is explained in d26b3a7c4b3b26319f18bb645de93eba8f4bdcd5
("ipv4: percpu nh_rth_output cache")
If you guys really believe we should have a percpu dst, go for it, but
again, if the softirq handler runs on a different cpu than the
application thread, it wont work.
And, given 72 core servers are now on the way, we'll consume more ram,
for netperf users.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists