lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1387306031.19078.286.camel@edumazet-glaptop2.roam.corp.google.com>
Date:	Tue, 17 Dec 2013 10:47:11 -0800
From:	Eric Dumazet <eric.dumazet@...il.com>
To:	Tom Herbert <therbert@...gle.com>
Cc:	davem@...emloft.net, edumazet@...gle.com, netdev@...r.kernel.org
Subject: Re: PATCH] net: Cache align dst refcnt

On Tue, 2013-12-17 at 10:29 -0800, Eric Dumazet wrote:
> On Tue, 2013-12-17 at 10:15 -0800, Tom Herbert wrote:
> > ipv4_dst_check is coming up very high in perf top for TCP_RR tests and
> > it really is not doing much interesting. Looks like we have false
> > sharing with dst->refcnt. This patch cache aligns refcnt. There were
> > already some comments in the code that refcnt needs to be cache aligned.
> > 
> > Signed-off-by: Tom Herbert <therbert@...gle.com>
> > ---
> >  include/net/dst.h | 11 +++--------
> >  1 file changed, 3 insertions(+), 8 deletions(-)

BTW, this dst refcount dirtying is because of netperf using blocking
reads, enabling prequeuing (assuming /proc/sys/net/ipv4/tcp_low_latency
is 0)

And the rx dst is shared by all cpus, if you use concurrent netperfs all
coming from one particular source.

This could be solved (if we really care about this case on real
workloads) by making nh_rth_input a per cpu var, as we did for
nh_pcpu_rth_output





--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ