From: Paolo Abeni <pabeni@redhat.com>
To: Eric Dumazet <eric.dumazet@gmail.com>, netdev@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>
Subject: Re: [PATCH net-next 2/2] udp: implement and use per cpu rx skbs cache
Date: Thu, 19 Apr 2018 09:40:37 +0200 [thread overview]
Message-ID: <1524123637.3160.16.camel@redhat.com> (raw)
In-Reply-To: <3270c995-4eea-b3e1-128c-82921d89eb79@gmail.com>
Hi,
On Wed, 2018-04-18 at 12:21 -0700, Eric Dumazet wrote:
>
> On 04/18/2018 10:15 AM, Paolo Abeni wrote:
> is not appealing to me :/
> >
> > Thank you for the feedback.
> > Sorry for not being clear about it, but knotd is using SO_REUSEPORT and
> > the above tests are leveraging it.
> >
> > That 5% is on top of that 300%.
>
> Then there is something wrong.
>
> Adding copies should not increase performance.
The skb and data are copied into the UDP skb cache only if the socket
is under memory pressure, and that happens if and only if the receiver
is slower than the BH/IP receive path.
The copy slows down the RX path - which was dropping packets - and
makes the udp_recvmsg() considerably faster, as consuming skb becomes
almost a no-op.
AFAICS, this is similar to the strategy you used in:
ommit c8c8b127091b758f5768f906bcdeeb88bc9951ca
Author: Eric Dumazet <edumazet@google.com>
Date: Wed Dec 7 09:19:33 2016 -0800
udp: under rx pressure, try to condense skbs
with the difference that with the UDP skb cache there is an hard limit
to the amount of memory the BH is allowed to copy.
> If it does, there is certainly another way, reaching 10% instead of 5%
I benchmarked vs a DNS server to test and verify that we get measurable
benefits in real life scenario. The measured performance gain for the
RX path with reasonable configurations is ~20%.
Any suggestions for better results are more than welcome!
Cheers,
Paolo
next prev parent reply other threads:[~2018-04-19 7:40 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-18 10:22 [PATCH net-next 0/2] UDP: introduce RX skb cache Paolo Abeni
2018-04-18 10:22 ` [PATCH net-next 1/2] udp: if the rx queue is full, free the skb in __udp_enqueue_schedule_skb() Paolo Abeni
2018-04-18 10:22 ` [PATCH net-next 2/2] udp: implement and use per cpu rx skbs cache Paolo Abeni
2018-04-18 16:56 ` Eric Dumazet
2018-04-18 17:15 ` Paolo Abeni
2018-04-18 19:21 ` Eric Dumazet
2018-04-19 7:40 ` Paolo Abeni [this message]
2018-04-19 13:47 ` Eric Dumazet
2018-04-20 13:48 ` Jesper Dangaard Brouer
2018-04-21 15:54 ` Willem de Bruijn
2018-04-21 16:45 ` Eric Dumazet
2018-04-22 11:22 ` Paolo Abeni
2018-04-23 8:52 ` Jesper Dangaard Brouer
2018-04-23 8:13 ` Tariq Toukan
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=1524123637.3160.16.camel@redhat.com \
--to=pabeni@redhat.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).