From: Paolo Abeni <pabeni@redhat.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: David Miller <davem@davemloft.net>,
netdev <netdev@vger.kernel.org>,
Willem de Bruijn <willemb@google.com>
Subject: Re: [PATCH] net/udp: do not touch skb->peeked unless really needed
Date: Tue, 06 Dec 2016 20:16:26 +0100 [thread overview]
Message-ID: <1481051786.7129.22.camel@redhat.com> (raw)
In-Reply-To: <1481050715.18162.604.camel@edumazet-glaptop3.roam.corp.google.com>
On Tue, 2016-12-06 at 10:58 -0800, Eric Dumazet wrote:
> On Tue, 2016-12-06 at 19:31 +0100, Paolo Abeni wrote:
>
> > cacheline 2 boundary (128 bytes) is 8 bytes before sk_lock: cacheline 2
> > includes also skc_refcnt and skc_rxhash from __sk_common (I use 'pahole
> > -E ...' to get the full blown output). skc_rxhash is read for each
> > packet in inet_recvmsg()/sock_rps_record_flow() if CONFIG_RPS is set. I
> > get a cache miss per packet there and inet_recvmsg() in my test takes
> > about 8% of the whole u/s processing time.
>
> Wait a minute, this sk->sk_rxhash should only be read on connected
> socket. Relying on it being 0 was okay only if we did not care
> of false sharing. And UDP sockets used to grab socket refcount, so we
> had false sharing a _lot_ in the past.
Thank you for the pointer.
> We must fix this if not already done properly.
>
> Can you take care of this problem ?
I'll try, but it can be very soon: I'll have limited time and bad
internet connection up to next week.
Cheers,
Paolo
next prev parent reply other threads:[~2016-12-06 19:16 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-05 2:43 [RFC] udp: some improvements on RX path Eric Dumazet
2016-12-05 13:22 ` Paolo Abeni
2016-12-05 14:28 ` Eric Dumazet
2016-12-05 15:37 ` Jesper Dangaard Brouer
2016-12-05 15:54 ` Eric Dumazet
2016-12-05 17:57 ` [PATCH] net/udp: do not touch skb->peeked unless really needed Eric Dumazet
2016-12-06 9:53 ` Paolo Abeni
2016-12-06 12:10 ` Paolo Abeni
2016-12-06 14:35 ` Eric Dumazet
2016-12-06 14:34 ` Eric Dumazet
2016-12-06 10:34 ` Paolo Abeni
2016-12-06 17:08 ` Paolo Abeni
2016-12-06 17:47 ` Eric Dumazet
2016-12-06 18:31 ` Paolo Abeni
2016-12-06 18:58 ` Eric Dumazet
2016-12-06 19:16 ` Paolo Abeni [this message]
2016-12-06 19:35 ` Eric Dumazet
2016-12-07 3:32 ` [PATCH net-next] net: sock_rps_record_flow() is for connected sockets Eric Dumazet
2016-12-07 6:47 ` Eric Dumazet
2016-12-07 7:57 ` Paolo Abeni
2016-12-07 14:26 ` Eric Dumazet
2016-12-08 17:49 ` Paolo Abeni
2016-12-07 14:29 ` Eric Dumazet
2016-12-07 15:59 ` Eric Dumazet
2016-12-08 18:50 ` Paolo Abeni
2016-12-08 19:32 ` Eric Dumazet
2016-12-08 19:20 ` Edward Cree
2016-12-08 17:49 ` Tom Herbert
2016-12-08 18:02 ` Eric Dumazet
2016-12-08 19:15 ` Tom Herbert
2016-12-08 20:05 ` Hannes Frederic Sowa
2016-12-08 20:30 ` Tom Herbert
2016-12-08 20:44 ` Tom Herbert
2016-12-08 18:07 ` Eric Dumazet
2016-12-07 7:59 ` Paolo Abeni
2016-12-07 13:58 ` Eric Dumazet
2016-12-07 15:47 ` David Miller
2016-12-07 17:09 ` [PATCH] net/udp: do not touch skb->peeked unless really needed David Laight
2016-12-07 17:32 ` Eric Dumazet
2016-12-07 17:37 ` Hannes Frederic Sowa
2016-12-07 17:52 ` Eric Dumazet
2016-12-07 17:55 ` Eric Dumazet
2016-12-06 15:42 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1481051786.7129.22.camel@redhat.com \
--to=pabeni@redhat.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=willemb@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.