From: "Mattias Rönnblom" <mattias.ronnblom@ericsson.com>
To: Venky Venkatesh <vvenkatesh@paloaltonetworks.com>,
"dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] Application used for DSW event_dev performance testing
Date: Wed, 28 Nov 2018 17:55:41 +0100 [thread overview]
Message-ID: <4af7e731-6243-ce80-cc78-4d6c0ebd7135@ericsson.com> (raw)
In-Reply-To: <7E26E1F9-4148-4F6C-9BC1-B79A419B2A97@paloaltonetworks.com>
On 2018-11-27 23:33, Venky Venkatesh wrote:
>
> As you can see the DSW overhead dominates the scene and very little real work is getting done. Is there some configuration or tuning to be done to get the sort of performance you are seeing with multiple cores?
>
I can't explain the behavior you are seeing based on the information you
have supplied.
Attached is a small DSW throughput test program, that I thought might
help you to find the issue. It works much like the pipeline simulator I
used when developing the scheduler, but it's a lot simpler. Remember to
supply "--vdev=event_dsw0".
I ran it on my 12-core Skylake desktop (@2,9 GHz, turbo disabled). With
zero work and one stage, I get ~640 Mevent/s. For the first few stages
you add, you'll see a drop in performance. For example, with 3 stages,
you are at ~310 Mevent/s.
If you increase DSW_MAX_PORT_OUT_BUFFER and DSW_MAX_PORT_OPS_PER_BG_TASK
you see improvements in efficiency on high-core-count machines. On my
system, the above goes to 675 M/s for a 1-stage pipeline, and 460 M/s on
a 3-stage pipeline, if I apply the following changes to dsw_evdev.h:
-#define DSW_MAX_PORT_OUT_BUFFER (32)
+#define DSW_MAX_PORT_OUT_BUFFER (64)
-#define DSW_MAX_PORT_OPS_PER_BG_TASK (128)
+#define DSW_MAX_PORT_OPS_PER_BG_TASK (512)
With 500 clock cycles of dummy work, the per-event overhead is ~16 TSC
clock cycles/stage and event (i.e. per scheduled event; enqueue +
dequeue), if my quick-and-dirty benchmark program does the math
correctly. This also includes the overhead from the benchmark program
itself.
Overhead with a real application will be higher.
next prev parent reply other threads:[~2018-11-28 16:55 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-14 19:16 Venky Venkatesh
2018-11-14 19:41 ` Mattias Rönnblom
2018-11-14 21:56 ` Venky Venkatesh
2018-11-15 5:46 ` Mattias Rönnblom
2018-11-27 22:33 ` Venky Venkatesh
2018-11-28 16:55 ` Mattias Rönnblom [this message]
2018-11-28 17:09 ` Mattias Rönnblom
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=4af7e731-6243-ce80-cc78-4d6c0ebd7135@ericsson.com \
--to=mattias.ronnblom@ericsson.com \
--cc=dev@dpdk.org \
--cc=vvenkatesh@paloaltonetworks.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 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).