From: David Marchand <david.marchand@redhat.com>
To: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
"thomas@monjalon.net" <thomas@monjalon.net>,
"aconole@redhat.com" <aconole@redhat.com>,
"msantana@redhat.com" <msantana@redhat.com>,
Yipeng Wang <yipeng1.wang@intel.com>, nd <nd@arm.com>
Subject: Re: [dpdk-dev] [PATCH 14/14] test: skip tests when missing requirements
Date: Sat, 8 Jun 2019 10:01:20 +0200 [thread overview]
Message-ID: <CAJFAV8y1Jk3Sgtp9Yoi3E3AE0nm4F3N1hT4fh1RMScOG2-XEew@mail.gmail.com> (raw)
In-Reply-To: <VE1PR08MB51496DEC99E9989FBADE5D9598100@VE1PR08MB5149.eurprd08.prod.outlook.com>
(pruning a little bit of the CC: list...)
On Fri, Jun 7, 2019 at 10:55 PM Honnappa Nagarahalli <
Honnappa.Nagarahalli@arm.com> wrote:
> >
> > Let's mark as skipped the tests when they are missing some requirements
> like a
> > number of used cores or specific hardware availability, like compress,
> crypto or
> > eventdev devices.
> >
> > Signed-off-by: David Marchand <david.marchand@redhat.com>
> > ---
> > app/test/test.c | 24 ++++++++++++++++--------
> > app/test/test_compressdev.c | 4 ++--
> > app/test/test_cryptodev.c | 4 ++--
> > app/test/test_distributor.c | 4 ++--
> > app/test/test_distributor_perf.c | 4 ++--
> > app/test/test_event_timer_adapter.c | 5 +++--
> > app/test/test_eventdev.c | 2 ++
> > app/test/test_func_reentrancy.c | 6 +++---
> > app/test/test_hash_multiwriter.c | 7 +++----
> > app/test/test_hash_readwrite.c | 7 +++----
> > app/test/test_hash_readwrite_lf.c | 8 ++++----
> > app/test/test_ipsec.c | 4 ++--
> > app/test/test_mbuf.c | 13 ++++++-------
> > app/test/test_rcu_qsbr.c | 10 +++++-----
> > app/test/test_rcu_qsbr_perf.c | 9 +++++----
> > app/test/test_service_cores.c | 14 ++++++++++++++
> > app/test/test_stack.c | 8 +++++---
> > app/test/test_timer.c | 10 +++++-----
> > app/test/test_timer_secondary.c | 10 ++++++----
> > 19 files changed, 90 insertions(+), 63 deletions(-)
> >
>
> <snip>
>
> >
> > RTE_LCORE_FOREACH_SLAVE(core_id) {
> > diff --git a/app/test/test_hash_readwrite_lf.c
> > b/app/test/test_hash_readwrite_lf.c
> > index 5644361..2664f51 100644
> > --- a/app/test/test_hash_readwrite_lf.c
> > +++ b/app/test/test_hash_readwrite_lf.c
> > @@ -1254,10 +1254,10 @@ struct {
> > int htm;
> > int use_jhash = 0;
> > int ext_bkt = 0;
> > - if (rte_lcore_count() == 1) {
> > - printf("More than one lcore is required "
> > - "to do read write lock-free concurrency test\n");
> > - return -1;
> > +
> > + if (rte_lcore_count() < 2) {
> > + printf("Not enough cores for hash_readwrite_lf_autotest,
> > expecting at least 2\n");
> > + return TEST_SKIPPED;
> > }
> Looks good
>
> > diff --git a/app/test/test_rcu_qsbr.c b/app/test/test_rcu_qsbr.c index
> > 92ab0c2..725d27d 100644
> > --- a/app/test/test_rcu_qsbr.c
> > +++ b/app/test/test_rcu_qsbr.c
> > @@ -949,14 +949,14 @@
> > static int
> > test_rcu_qsbr_main(void)
> > {
> > + if (rte_lcore_count() < 5) {
> Should be '4'. 4 cores are enough for the test.
>
Well, if we make it 4, then there was an issue before.
num_cores < 4 means 'at least 4 slave cores', so with the master core, we
are at 5.
See:
static inline int
get_enabled_cores_mask(void)
{
uint16_t core_id;
uint32_t max_cores = rte_lcore_count();
if (max_cores > TEST_RCU_MAX_LCORE) {
printf("Number of cores exceed %d\n", TEST_RCU_MAX_LCORE);
return -1;
}
core_id = 0;
num_cores = 0;
RTE_LCORE_FOREACH_SLAVE(core_id) {
enabled_core_ids[num_cores] = core_id;
num_cores++;
}
return 0;
}
> > + printf("Not enough cores for rcu_qsbr_autotest, expecting
> at
> > least 5\n");
> > + return TEST_SKIPPED;
> > + }
> > +
> > if (get_enabled_cores_mask() != 0)
> > return -1;
> >
> > - if (num_cores < 4) {
> > - printf("Test failed! Need 4 or more cores\n");
> > - goto test_fail;
> > - }
> There is another check in 'get_enabled_cores_mask' function. We should
> convert that as well. Suggest pulling the check in 'get_enabled_cores_mask'
> to 'test_rcu_qsbr_main'
>
Already said it before, can't we just shoot this enabled_core_ids[] array?
Is there a real need to enumerate per core rank?
> > -
> > /* Error-checking test cases */
> > if (test_rcu_qsbr_get_memsize() < 0)
> > goto test_fail;
> > diff --git a/app/test/test_rcu_qsbr_perf.c
> b/app/test/test_rcu_qsbr_perf.c
> > index 6b1912c..dcdd9da 100644
> > --- a/app/test/test_rcu_qsbr_perf.c
> > +++ b/app/test/test_rcu_qsbr_perf.c
> > @@ -623,6 +623,11 @@
> > static int
> > test_rcu_qsbr_main(void)
> > {
> > + if (rte_lcore_count() < 3) {
> Should be 2. Minimum 2 cores are required.
>
Idem num_cores < 2.
Was the check incorrect before?
> > + printf("Not enough cores for rcu_qsbr_perf_autotest,
> > expecting at least 3\n");
> > + return TEST_SKIPPED;
> > + }
> > +
> > rte_atomic64_init(&updates);
> > rte_atomic64_init(&update_cycles);
> > rte_atomic64_init(&checks);
> > @@ -632,10 +637,6 @@
> > return -1;
> >
> > printf("Number of cores provided = %d\n", num_cores);
> > - if (num_cores < 2) {
> > - printf("Test failed! Need 2 or more cores\n");
> > - goto test_fail;
> > - }
> > if (num_cores > TEST_RCU_MAX_LCORE) {
> Should convert this check as well to return TEST_SKIPPED.
>
Hum, skipped if there is a real issue at running the test with more than
128 cores (I'd like to hear how this value was chosen).
Or, we size this array RTE_MAX_LCORES and there is no check at all.
Or, we shoot enabled_core_ids[] array :-)
--
David Marchand
next prev parent reply other threads:[~2019-06-08 8:01 UTC|newest]
Thread overview: 71+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-04 8:59 [dpdk-dev] [PATCH 00/14] Unit tests fixes for CI David Marchand
2019-06-04 8:59 ` [dpdk-dev] [PATCH 01/14] test/bonding: add missing sources for link bonding RSS David Marchand
2019-06-04 12:59 ` Aaron Conole
2019-06-04 8:59 ` [dpdk-dev] [PATCH 02/14] test/crypto: move tests to the driver specific list David Marchand
2019-06-04 13:00 ` Aaron Conole
2019-06-04 8:59 ` [dpdk-dev] [PATCH 03/14] test/eventdev: " David Marchand
2019-06-04 13:04 ` Aaron Conole
2019-06-04 8:59 ` [dpdk-dev] [PATCH 04/14] test/hash: fix off-by-one check on core count David Marchand
2019-06-04 13:05 ` Aaron Conole
2019-06-05 20:02 ` Wang, Yipeng1
2019-06-04 8:59 ` [dpdk-dev] [PATCH 05/14] test/hash: rectify slaveid to point to valid cores David Marchand
2019-06-05 20:02 ` Wang, Yipeng1
2019-06-04 8:59 ` [dpdk-dev] [PATCH 06/14] test/hash: clean remaining trace of scaling autotest David Marchand
2019-06-04 13:31 ` Aaron Conole
2019-06-04 8:59 ` [dpdk-dev] [PATCH 07/14] test/latencystats: fix stack smashing David Marchand
2019-06-04 13:38 ` Aaron Conole
2019-06-04 8:59 ` [dpdk-dev] [PATCH 08/14] test/stack: fix lock-free test name David Marchand
2019-06-04 13:06 ` Aaron Conole
2019-06-04 8:59 ` [dpdk-dev] [PATCH 09/14] test/eal: set memory channel config only in dedicated test David Marchand
2019-06-04 13:11 ` Aaron Conole
2019-06-26 9:44 ` Burakov, Anatoly
2019-06-04 8:59 ` [dpdk-dev] [PATCH 10/14] test/eal: set core mask/list " David Marchand
2019-06-04 13:12 ` Aaron Conole
2019-06-26 9:45 ` Burakov, Anatoly
2019-06-04 8:59 ` [dpdk-dev] [PATCH 11/14] test/eal: check number of cores before running subtests David Marchand
2019-06-04 13:26 ` Aaron Conole
2019-06-26 9:47 ` Burakov, Anatoly
2019-06-04 8:59 ` [dpdk-dev] [PATCH 12/14] test/eal: make the test pass again David Marchand
2019-06-04 13:29 ` Aaron Conole
2019-06-04 13:50 ` David Marchand
2019-06-26 9:49 ` Burakov, Anatoly
2019-06-26 10:03 ` David Marchand
2019-06-04 8:59 ` [dpdk-dev] [PATCH 13/14] test: do not start tests in parallel David Marchand
2019-06-04 8:59 ` [dpdk-dev] [PATCH 14/14] test: skip tests when missing requirements David Marchand
2019-06-07 20:54 ` Honnappa Nagarahalli
2019-06-08 8:01 ` David Marchand [this message]
2019-06-11 4:08 ` Honnappa Nagarahalli
2019-06-04 15:49 ` [dpdk-dev] [PATCH 00/14] Unit tests fixes for CI Michael Santana Francisco
2019-06-27 16:34 ` Thomas Monjalon
2019-07-01 12:17 ` Aaron Conole
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 00/15] " David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 01/15] test/bonding: add missing sources for link bonding RSS David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 02/15] test/crypto: move tests to the driver specific list David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 03/15] test/eventdev: " David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 04/15] test/hash: fix off-by-one check on core count David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 05/15] test/hash: rectify slaveid to point to valid cores David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 06/15] test/hash: clean remaining trace of scaling autotest David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 07/15] test/latencystats: fix stack smashing David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 08/15] test/rcu: remove arbitrary limit on max core count David Marchand
2019-06-28 12:56 ` [dpdk-dev] [dpdk-stable] " Ferruh Yigit
2019-06-28 13:32 ` David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 09/15] test/stack: fix lock-free test name David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 10/15] test/eal: set memory channel config only in dedicated test David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 11/15] test/eal: set core mask/list " David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 12/15] test/eal: check number of cores before running subtests David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 13/15] test: split into shorter subtests for CI David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 14/15] test: do not start tests in parallel David Marchand
2019-06-15 6:42 ` [dpdk-dev] [PATCH v2 15/15] test: skip tests when missing requirements David Marchand
2019-06-17 10:00 ` [dpdk-dev] [PATCH v2 00/15] Unit tests fixes for CI Bruce Richardson
2019-06-17 10:46 ` David Marchand
2019-06-17 11:17 ` Bruce Richardson
2019-06-17 11:41 ` David Marchand
2019-06-17 11:56 ` Bruce Richardson
2019-06-17 13:44 ` David Marchand
2019-06-27 20:36 ` Thomas Monjalon
2019-07-01 16:04 ` Aaron Conole
2019-07-01 16:22 ` Thomas Monjalon
2019-07-01 16:45 ` David Marchand
2019-07-01 18:07 ` Michael Santana Francisco
2019-07-09 15:50 ` Michael Santana Francisco
2019-07-10 8:18 ` David Marchand
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=CAJFAV8y1Jk3Sgtp9Yoi3E3AE0nm4F3N1hT4fh1RMScOG2-XEew@mail.gmail.com \
--to=david.marchand@redhat.com \
--cc=Honnappa.Nagarahalli@arm.com \
--cc=aconole@redhat.com \
--cc=dev@dpdk.org \
--cc=msantana@redhat.com \
--cc=nd@arm.com \
--cc=thomas@monjalon.net \
--cc=yipeng1.wang@intel.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).