From: Thomas Monjalon <thomas@monjalon.net>
To: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Cc: David Marchand <david.marchand@redhat.com>,
dev@dpdk.org, Chenbo Xia <chenbo.xia@intel.com>,
Ajit Khaparde <ajit.khaparde@broadcom.com>,
Rosen Xu <rosen.xu@intel.com>,
Stephen Hemminger <stephen@networkplumber.org>,
Joyce Kong <joyce.kong@arm.com>,
Jie Zhou <jizh@linux.microsoft.com>,
konstantin.v.ananyev@yandex.ru, ferruh.yigit@amd.com,
andrew.rybchenko@oktetlabs.ru,
Ajit Khaparde <ajit.khaparde@broadcom.com>
Subject: Re: [PATCH 1/1] test/pmd_perf: handling of unknown connection speed
Date: Mon, 27 Jun 2022 09:54:21 +0200 [thread overview]
Message-ID: <3598033.OYXXYNVTWy@thomas> (raw)
In-Reply-To: <7f3fcb4e-430a-6fd6-147c-492929cafc0d@canonical.com>
27/06/2022 09:18, Heinrich Schuchardt:
> On 6/26/22 17:15, Thomas Monjalon wrote:
> > 11/05/2022 18:33, Heinrich Schuchardt:
> >> When running DPDK in QEMU it cannot determine the connection speed.
> >> pmd_perf_autotest treats this as if the connection speed where
> >> UNIT32_MAX Mbps:
> >>
> >> RTE>>pmd_perf_autotest
> >> Start PMD RXTX cycles cost test.
> >> Allocated mbuf pool on socket 0
> >> CONFIG RXD=1024 TXD=1024
> >> Performance test runs on lcore 1 socket 0
> >> Port 0 Address:52:54:00:12:34:57
> >> Port 1 Address:52:54:00:12:34:58
> >> Checking link statuses...
> >> Port 0 Link up at Unknown FDX Autoneg
> >> Port 1 Link up at Unknown FDX Autoneg
> >> IPv4 pktlen 46
> >> UDP pktlen 26
> >> Generate 4096 packets @socket 0
> >> inject 2048 packet to port 0
> >> inject 2048 packet to port 1
> >> Total packets inject to prime ports = 4096
> >> Each port will do 6391320379464 packets per second
> >> Test will stop after at least 25565281517856 packets received
> >>
> >> This will not allow the test to terminate in a reasonable timespan.
> >> Just assume 10 Gbps in this case instead:
> >>
> >> ...
> >> Test will stop after at least 59523808 packets received
> >>
> >> Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
> >> ---
> >> app/test/test_pmd_perf.c | 15 +++++++++++----
> >> 1 file changed, 11 insertions(+), 4 deletions(-)
> >>
> >> diff --git a/app/test/test_pmd_perf.c b/app/test/test_pmd_perf.c
> >> index 25611bfe9b..ee08c8aade 100644
> >> --- a/app/test/test_pmd_perf.c
> >> +++ b/app/test/test_pmd_perf.c
> >> @@ -486,10 +486,17 @@ main_loop(__rte_unused void *args)
> >> }
> >> printf("Total packets inject to prime ports = %u\n", idx);
> >>
> >> - packets_per_second = (link_mbps * 1000 * 1000) /
> >> - ((PACKET_SIZE + FRAME_GAP + MAC_PREAMBLE) * CHAR_BIT);
> >> - printf("Each port will do %"PRIu64" packets per second\n",
> >> - packets_per_second);
> >> + if (link_mbps != RTE_ETH_SPEED_NUM_UNKNOWN) {
> >> + packets_per_second = (link_mbps * 1000 * 1000) /
> >> + ((PACKET_SIZE + FRAME_GAP + MAC_PREAMBLE) * CHAR_BIT);
> >> + printf("Each port will do %"PRIu64" packets per second\n",
> >> + packets_per_second);
> >> + total_packets = RTE_TEST_DURATION * conf->nb_ports * packets_per_second;
>
> Yes this line should be removed.
>
> >
> > This is redundant with below.
> >
> >> + } else {
> >> + /* We don't know the speed. Pretend it is 10G */
> >> + packets_per_second = ((uint64_t)RTE_ETH_SPEED_NUM_10G * 1000 * 1000) /
> >> + ((PACKET_SIZE + FRAME_GAP + MAC_PREAMBLE) * CHAR_BIT);
> >> + }
> >>
> >> total_packets = RTE_TEST_DURATION * conf->nb_ports * packets_per_second;
> >
> > Why not just inserting this:
> >
> > if (link_mbps == RTE_ETH_SPEED_NUM_UNKNOWN)
> > link_mbps = RTE_ETH_SPEED_NUM_10G;
>
> Following your suggestion the message "Each port will do %"PRIu64"
> packets per second\n" would provide misleading information to the user.
> This should be avoided.
OK so we can have the printf inside an "if condition":
bool speed_unknown = (link_mbps == RTE_ETH_SPEED_NUM_UNKNOWN);
if (speed_unknown)
link_mbps = RTE_ETH_SPEED_NUM_10G;
packets_per_second = ...;
if (!speed_unknown)
printf(...);
total_packets = ...;
prev parent reply other threads:[~2022-06-27 7:54 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-11 16:33 [PATCH 1/1] test/pmd_perf: handling of unknown connection speed Heinrich Schuchardt
2022-06-26 15:15 ` Thomas Monjalon
2022-06-26 22:23 ` Ajit Khaparde
2022-06-27 7:18 ` Heinrich Schuchardt
2022-06-27 7:54 ` Thomas Monjalon [this message]
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=3598033.OYXXYNVTWy@thomas \
--to=thomas@monjalon.net \
--cc=ajit.khaparde@broadcom.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=chenbo.xia@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@amd.com \
--cc=heinrich.schuchardt@canonical.com \
--cc=jizh@linux.microsoft.com \
--cc=joyce.kong@arm.com \
--cc=konstantin.v.ananyev@yandex.ru \
--cc=rosen.xu@intel.com \
--cc=stephen@networkplumber.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 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.