From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 809D2A0527; Mon, 20 Jul 2020 19:45:47 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 64F9C1BFC5; Mon, 20 Jul 2020 19:45:47 +0200 (CEST) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id 339C51BFBB for ; Mon, 20 Jul 2020 19:45:46 +0200 (CEST) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20200720174545euoutp0293152d7e11c9615e55bead541ca66e7d~jhwRTYpyW3202632026euoutp02i for ; Mon, 20 Jul 2020 17:45:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20200720174545euoutp0293152d7e11c9615e55bead541ca66e7d~jhwRTYpyW3202632026euoutp02i DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1595267145; bh=MXx6wmuNEzhloIX8W2ZoDQ0cWyUnG0tG7r321x77Biw=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=u6FIv/NGCmwDA324jeUQG02Wb3jzrmh3D+JT6XIfP6YByIudYKOmWO5xrCxGFakjO 8UcuhWIKcpAx2M6ofcaN+loCVuas3RGsOuKSo9G8NKUhti6yNYvpsxFAYWjIYThCyp jo7tMbj/Q7G1X67VXd/FcquGbLH4um75/Owckr4U= Received: from eusmges2new.samsung.com (unknown [203.254.199.244]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20200720174544eucas1p255db96200b5233144e546e8a5fea36d0~jhwQXuDr92389423894eucas1p2I; Mon, 20 Jul 2020 17:45:44 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges2new.samsung.com (EUCPMTA) with SMTP id B8.54.05997.848D51F5; Mon, 20 Jul 2020 18:45:44 +0100 (BST) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20200720174543eucas1p220a317558ec7ef1365096ba44cf15c46~jhwPrWdq-2174221742eucas1p2U; Mon, 20 Jul 2020 17:45:43 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20200720174543eusmtrp24a6889afcfab2c9b6de1fea2d80e1955~jhwPquXki2189021890eusmtrp2d; Mon, 20 Jul 2020 17:45:43 +0000 (GMT) X-AuditID: cbfec7f4-677ff7000000176d-6a-5f15d84890c0 Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 41.2F.06314.748D51F5; Mon, 20 Jul 2020 18:45:43 +0100 (BST) Received: from [106.210.88.70] (unknown [106.210.88.70]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20200720174543eusmtip2c73b9576af304a1771eadad1619186a1~jhwO1dHq_0636906369eusmtip2z; Mon, 20 Jul 2020 17:45:42 +0000 (GMT) To: Harry van Haaren , dev@dpdk.org Cc: david.marchand@redhat.com, igor.romanov@oktetlabs.ru, honnappa.nagarahalli@arm.com, ferruh.yigit@intel.com, nd@arm.com, aconole@redhat.com From: Lukasz Wojciechowski Message-ID: <33994bfc-9176-0b74-4a48-5be1b286ff44@partner.samsung.com> Date: Mon, 20 Jul 2020 19:45:42 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <20200720143829.46280-2-harry.van.haaren@intel.com> Content-Transfer-Encoding: 8bit Content-Language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrIKsWRmVeSWpSXmKPExsWy7djPc7oeN0TjDfqa1C1+vXnAbrF9RReb xbtP25ks7uw9zW7R2P+NxWLm0xZ2i0OTsy3OLO9hduDwWDNvDaPHrwVLWT0W73nJ5HH96ytW j/f7rrIFsEZx2aSk5mSWpRbp2yVwZXzvPMNW8Fu84kbvCfYGxqvCXYycHBICJhKN3ZuZuxi5 OIQEVjBKLJ3fxAbhfGGUmPDvIFTmM6PE3DtzmGBamu+ehapazigxdfMLJgjnLaPEo3V7WUGq hAUCJBqWPWEBsUUE7CU+XzkNVsQsMIlR4tnTNewgCTYBW4kjM7+CNfAKuEk0v+9iBLFZBFQl undvBKsRFYiTWP9yOxNEjaDEyZkgQzk4OAUcJBr3qYOEmQXkJZq3zmaGsMUlbj2ZD7ZLQmAf u8SJngtQZ7tI/Dl1gRHCFpZ4dXwLO4QtI/F/J0zDNkaJq79/MkI4+xklrveugKqyljj87zcb yGZmAU2J9bv0IcKOEte3rWQGCUsI8EnceCsIcQSfxKRt06HCvBIdbUIQ1XoST3umMsKs/bP2 CcsERqVZSD6bheSdWUjemYWwdwEjyypG8dTS4tz01GKjvNRyveLE3OLSvHS95PzcTYzAhHT6 3/EvOxh3/Uk6xCjAwajEw/uhWzReiDWxrLgy9xCjBAezkgiv09nTcUK8KYmVValF+fFFpTmp xYcYpTlYlMR5jRe9jBUSSE8sSc1OTS1ILYLJMnFwSjUwMr4+lbbH3mm2yLZdq9jmN13mO59f 9sR15/GUj0I3Nq1ePOXtnokFK3sffIwyvb1Zic/n1Bt3PV2LQwczVv3n1leeUMdsFhT7vfK8 PY+QCrvn3a+TYx4VHcnpTPJV511SviI5y4vrv/jbN88EtlkaTlPJvC67IsMm/b8Lo2/H9L27 XgUoL9jurMRSnJFoqMVcVJwIACvknApEAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrAIsWRmVeSWpSXmKPExsVy+t/xe7ruN0TjDZZuNbL49eYBu8X2FV1s Fu8+bWeyuLP3NLtFY/83FouZT1vYLQ5NzrY4s7yH2YHDY828NYwevxYsZfVYvOclk8f1r69Y Pd7vu8oWwBqlZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqk b5egl/G98wxbwW/xihu9J9gbGK8KdzFyckgImEg03z3L1sXIxSEksJRRYsPmyexdjBxACRmJ D5cEIGqEJf5c62IDsYUEXjNKbFudB2ILC/hJdM7uYgKxRQTsJT5fOc0EModZYBKjxL/OBawQ Df8ZJTa3yoPYbAK2EkdmfgWL8wq4STS/72IEsVkEVCW6d29kB7FFBeIklm+Zzw5RIyhxcuYT FpB7OAUcJBr3qYOEmQXMJOZtfsgMYctLNG+dDWWLS9x6Mp9pAqPQLCTds5C0zELSMgtJywJG llWMIqmlxbnpucWGesWJucWleel6yfm5mxiBsbft2M/NOxgvbQw+xCjAwajEw/uhWzReiDWx rLgy9xCjBAezkgiv09nTcUK8KYmVValF+fFFpTmpxYcYTYF+m8gsJZqcD0wLeSXxhqaG5haW hubG5sZmFkrivB0CB2OEBNITS1KzU1MLUotg+pg4OKUaGKc93Z/gOX3rPLV/Agxbdh+r0FI8 tPiJ99R40VM8nAnvH6+QLS2aPSti1eTAJypFLgJnrrqnKwj7zwyQL/ipvEFK0rnZdLrUces3 n2o+PeOVPOEWdKW32yPkUev2l4VhqQf2FEWaHmaJbz1gFR7WeOajcCT/9w1Vt0TSv4tb5848 +kNAPKz+ghJLcUaioRZzUXEiALfYuZbTAgAA X-CMS-MailID: 20200720174543eucas1p220a317558ec7ef1365096ba44cf15c46 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20200720143737eucas1p14d0bbc0fa94029f28d4ecd42dd4bb2db X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20200720143737eucas1p14d0bbc0fa94029f28d4ecd42dd4bb2db References: <20200720120938.34660-1-harry.van.haaren@intel.com> <20200720143829.46280-1-harry.van.haaren@intel.com> <20200720143829.46280-2-harry.van.haaren@intel.com> Subject: Re: [dpdk-dev] [PATCH v2 2/2] test/service: fix race condition on stopping lcore X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" W dniu 20.07.2020 o 16:38, Harry van Haaren pisze: > This commit fixes a potential race condition in the tests > where the lcore running a service would increment a counter > that was already reset by the test-suite thread. The resulting > race-condition incremented value could cause CI failures, as > indicated by DPDK's CI. > > This patch fixes the race-condition by making use of the > added rte_service_lcore_active() API, which indicates when > a service-core is no longer in the service-core polling loop. > > The unit test makes use of the above function to detect when > all statistics increments are done in the service-core thread, > and then the unit test continues finalizing and checking state. > > Fixes: f28f3594ded2 ("service: add attribute API") > > Reported-by: David Marchand > Signed-off-by: Harry van Haaren > > --- > > Thanks for discussion on v1, this v2 fixup for the CI > including previous feedback on ML. > --- > app/test/test_service_cores.c | 22 +++++++++++++++++++++- > 1 file changed, 21 insertions(+), 1 deletion(-) > > diff --git a/app/test/test_service_cores.c b/app/test/test_service_cores.c > index ef1d8fcb9..a45762915 100644 > --- a/app/test/test_service_cores.c > +++ b/app/test/test_service_cores.c > @@ -362,6 +362,9 @@ service_lcore_attr_get(void) > "Service core add did not return zero"); > TEST_ASSERT_EQUAL(0, rte_service_map_lcore_set(id, slcore_id, 1), > "Enabling valid service and core failed"); > + /* Ensure service is not active before starting */ > + TEST_ASSERT_EQUAL(0, rte_service_lcore_active(slcore_id), > + "Not-active service core reported as active"); > TEST_ASSERT_EQUAL(0, rte_service_lcore_start(slcore_id), > "Starting service core failed"); > > @@ -382,7 +385,24 @@ service_lcore_attr_get(void) > lcore_attr_id, &lcore_attr_value), > "Invalid lcore attr didn't return -EINVAL"); > > - rte_service_lcore_stop(slcore_id); > + /* Ensure service is active */ > + TEST_ASSERT_EQUAL(1, rte_service_lcore_active(slcore_id), > + "Active service core reported as not-active"); > + > + TEST_ASSERT_EQUAL(0, rte_service_map_lcore_set(id, slcore_id, 0), > + "Disabling valid service and core failed"); > + TEST_ASSERT_EQUAL(0, rte_service_lcore_stop(slcore_id), > + "Failed to stop service lcore"); > + > + int i = 0; > + while (rte_service_lcore_active(slcore_id) == 1) { > + rte_delay_ms(1); > + i++; > + if (i > 100) > + break; > + } > + TEST_ASSERT_EQUAL(0, rte_service_lcore_active(slcore_id), > + "Service lcore not stopped after waiting."); > > TEST_ASSERT_EQUAL(0, rte_service_lcore_attr_reset_all(slcore_id), > "Valid lcore_attr_reset_all() didn't return success"); Acked-by: Lukasz Wojciechowski -- Lukasz Wojciechowski Principal Software Engineer Samsung R&D Institute Poland Samsung Electronics Office +48 22 377 88 25 l.wojciechow@partner.samsung.com