From: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com> To: David Marchand <david.marchand@redhat.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>, Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>, nd <nd@arm.com>, nd <nd@arm.com> Subject: Re: [dpdk-dev] [PATCH 14/14] test: skip tests when missing requirements Date: Tue, 11 Jun 2019 04:08:02 +0000 Message-ID: <VE1PR08MB51498EA86F9EB91CF89FA80298ED0@VE1PR08MB5149.eurprd08.prod.outlook.com> (raw) In-Reply-To: <CAJFAV8y1Jk3Sgtp9Yoi3E3AE0nm4F3N1hT4fh1RMScOG2-XEew@mail.gmail.com> (pruning a little bit of the CC: list...) On Fri, Jun 7, 2019 at 10:55 PM Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com<mailto: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<mailto: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. [Honnappa] Ok 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? [Honnappa] It is being used in the case where non-contiguous cores are enabled > - > /* 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? [Honnappa] It is fine > + 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. [Honnappa] We can size it to RTE_MAX_LCORES. Or, we shoot enabled_core_ids[] array :-) -- David Marchand
next prev parent reply index 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 2019-06-11 4:08 ` Honnappa Nagarahalli [this message] 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=VE1PR08MB51498EA86F9EB91CF89FA80298ED0@VE1PR08MB5149.eurprd08.prod.outlook.com \ --to=honnappa.nagarahalli@arm.com \ --cc=aconole@redhat.com \ --cc=david.marchand@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
DPDK-dev Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/dpdk-dev/0 dpdk-dev/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 dpdk-dev dpdk-dev/ https://lore.kernel.org/dpdk-dev \ dev@dpdk.org public-inbox-index dpdk-dev Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.dpdk.dev AGPL code for this site: git clone https://public-inbox.org/public-inbox.git