List patch comments

GET /api/patches/74503/comments/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Link: 
<https://patches.dpdk.org/api/patches/74503/comments/?format=api&page=1>; rel="first",
<https://patches.dpdk.org/api/patches/74503/comments/?format=api&page=1>; rel="last"
Vary: Accept
[ { "id": 116336, "web_url": "https://patches.dpdk.org/comment/116336/", "msgid": "<36874208-5a95-715b-aa15-9af41bdc1c54@partner.samsung.com>", "list_archive_url": "https://inbox.dpdk.org/dev/36874208-5a95-715b-aa15-9af41bdc1c54@partner.samsung.com", "date": "2020-07-20T17:45:11", "subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "submitter": { "id": 1628, "url": "https://patches.dpdk.org/api/people/1628/?format=api", "name": "Lukasz Wojciechowski", "email": "l.wojciechow@partner.samsung.com" }, "content": "W dniu 20.07.2020 o 16:38, Harry van Haaren pisze:\n> This commit adds a new experimental API which allows the user\n> to retrieve the active state of an lcore. Knowing when the service\n> lcore is completed its polling loop can be useful to applications\n> to avoid race conditions when e.g. finalizing statistics.\n>\n> The service thread itself now has a variable to indicate if its\n> thread is active. When zero the service thread has completed its\n> service, and has returned from the service_runner_func() function.\n>\n> Suggested-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>\n> Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>\n>\n> ---\n>\n> Thanks for feedback Lukasz, please have a look and see if this was\n> what you were expecting?\n>\n> Honnappa/Phil, are the __atomic_load/store's correct?\n>\n> ---\n> lib/librte_eal/common/rte_service.c | 14 ++++++++++++++\n> lib/librte_eal/include/rte_service.h | 9 +++++++++\n> lib/librte_eal/rte_eal_version.map | 1 +\n> 3 files changed, 24 insertions(+)\n>\n> diff --git a/lib/librte_eal/common/rte_service.c b/lib/librte_eal/common/rte_service.c\n> index 6a0e0ff65..4c276b006 100644\n> --- a/lib/librte_eal/common/rte_service.c\n> +++ b/lib/librte_eal/common/rte_service.c\n> @@ -65,6 +65,7 @@ struct core_state {\n> \t/* map of services IDs are run on this core */\n> \tuint64_t service_mask;\n> \tuint8_t runstate; /* running or stopped */\n> +\tuint8_t thread_active; /* indicates when thread is in service_run() */\n> \tuint8_t is_service_core; /* set if core is currently a service core */\n> \tuint8_t service_active_on_lcore[RTE_SERVICE_NUM_MAX];\n> \tuint64_t loops;\n> @@ -457,6 +458,8 @@ service_runner_func(void *arg)\n> \tconst int lcore = rte_lcore_id();\n> \tstruct core_state *cs = &lcore_states[lcore];\n> \n> +\t__atomic_store_n(&cs->thread_active, 1, __ATOMIC_RELAXED);\n> +\n> \t/* runstate act as the guard variable. Use load-acquire\n> \t * memory order here to synchronize with store-release\n> \t * in runstate update functions.\n> @@ -475,9 +478,20 @@ service_runner_func(void *arg)\n> \t\tcs->loops++;\n> \t}\n> \n> +\t__atomic_store_n(&cs->thread_active, 0, __ATOMIC_RELAXED);\n> \treturn 0;\n> }\n> \n> +int32_t\n> +rte_service_lcore_active(uint32_t lcore)\n> +{\n> +\tif (lcore >= RTE_MAX_LCORE || !lcore_states[lcore].is_service_core)\n> +\t\treturn -EINVAL;\n> +\n> +\treturn __atomic_load_n(&lcore_states[lcore].thread_active,\n> +\t\t\t __ATOMIC_RELAXED);\n> +}\n> +\n> int32_t\n> rte_service_lcore_count(void)\n> {\n> diff --git a/lib/librte_eal/include/rte_service.h b/lib/librte_eal/include/rte_service.h\n> index e2d0a6dd3..f7134b5c0 100644\n> --- a/lib/librte_eal/include/rte_service.h\n> +++ b/lib/librte_eal/include/rte_service.h\n> @@ -261,6 +261,15 @@ int32_t rte_service_lcore_start(uint32_t lcore_id);\n> */\n> int32_t rte_service_lcore_stop(uint32_t lcore_id);\n> \n> +/**\n> + * Reports if a service lcore is currently running.\n> + * @retval 0 Service thread is not active, and has been returned to EAL.\n> + * @retval 1 Service thread is in the service core polling loop.\n> + * @retval -EINVAL Invalid *lcore_id* provided.\n> + */\n> +__rte_experimental\n> +int32_t rte_service_lcore_active(uint32_t lcore_id);\n> +\n> /**\n> * Adds lcore to the list of service cores.\n> *\n> diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map\n> index bf0c17c23..d53d5d5b9 100644\n> --- a/lib/librte_eal/rte_eal_version.map\n> +++ b/lib/librte_eal/rte_eal_version.map\n> @@ -401,6 +401,7 @@ EXPERIMENTAL {\n> \trte_lcore_dump;\n> \trte_lcore_iterate;\n> \trte_mp_disable;\n> +\trte_service_lcore_active;\n> \trte_thread_register;\n> \trte_thread_unregister;\n> };\nAcked-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 2758AA0527;\n\tMon, 20 Jul 2020 19:45:18 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 3E3A21BFBD;\n\tMon, 20 Jul 2020 19:45:17 +0200 (CEST)", "from mailout2.w1.samsung.com (mailout2.w1.samsung.com\n [210.118.77.12]) by dpdk.org (Postfix) with ESMTP id A60B21BFBB\n for <dev@dpdk.org>; Mon, 20 Jul 2020 19:45:16 +0200 (CEST)", "from eucas1p2.samsung.com (unknown [182.198.249.207])\n by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id\n 20200720174515euoutp02fc00d077310a9dc1f67e2535182e9fda~jhv1KpeM03202632026euoutp02e\n for <dev@dpdk.org>; Mon, 20 Jul 2020 17:45:15 +0000 (GMT)", "from eusmges2new.samsung.com (unknown [203.254.199.244]) by\n eucas1p2.samsung.com (KnoxPortal) with ESMTP id\n 20200720174514eucas1p2a78fb6ab1f5ca2390d1abdd6f69866a1~jhv0nb6Iy2304223042eucas1p24;\n Mon, 20 Jul 2020 17:45:14 +0000 (GMT)", "from eucas1p1.samsung.com ( [182.198.249.206]) by\n eusmges2new.samsung.com (EUCPMTA) with SMTP id 06.54.05997.A28D51F5; Mon, 20\n Jul 2020 18:45:14 +0100 (BST)", "from eusmtrp1.samsung.com (unknown [182.198.249.138]) by\n eucas1p2.samsung.com (KnoxPortal) with ESMTPA id\n 20200720174514eucas1p26c2039eec8df7c7de037a760f27f43ff~jhv0Jedsa2720127201eucas1p2_;\n Mon, 20 Jul 2020 17:45:14 +0000 (GMT)", "from eusmgms2.samsung.com (unknown [182.198.249.180]) by\n eusmtrp1.samsung.com (KnoxPortal) with ESMTP id\n 20200720174514eusmtrp1f0b69e73719d0eddc200fd0978644be1~jhv0IyAph1636516365eusmtrp1f;\n Mon, 20 Jul 2020 17:45:14 +0000 (GMT)", "from eusmtip1.samsung.com ( [203.254.199.221]) by\n eusmgms2.samsung.com (EUCPMTA) with SMTP id 18.A2.06017.A28D51F5; Mon, 20\n Jul 2020 18:45:14 +0100 (BST)", "from [106.210.88.70] (unknown [106.210.88.70]) by\n eusmtip1.samsung.com (KnoxPortal) with ESMTPA id\n 20200720174512eusmtip17f4f30bd23d140f3bc911e810fab0200~jhvyAUchw0229102291eusmtip1i;\n Mon, 20 Jul 2020 17:45:11 +0000 (GMT)" ], "DKIM-Filter": "OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com\n 20200720174515euoutp02fc00d077310a9dc1f67e2535182e9fda~jhv1KpeM03202632026euoutp02e", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com;\n s=mail20170921; t=1595267115;\n bh=8Om2pOVhKkJsWmLhy0+xyZrmncYNFv+/O9hg597hqFc=;\n h=Subject:To:Cc:From:Date:In-Reply-To:References:From;\n b=KgcAdqXemY/KglxBvxXrZbv00Md+IkX13u8tnqx8tSwwTg5m/PYd3X1KsNKlOGW0h\n V2NBsIbAGJHLV88s5cw8zz6OFyM+2b5X6Esx4hEVx/klvGIYECUGxfWjXqdaZYWyfu\n Q75ALBphG2RVFkeRfV97o3va0S3+Nhxl5ECfflW0=", "X-AuditID": "cbfec7f4-677ff7000000176d-40-5f15d82ae7d5", "To": "Harry van Haaren <harry.van.haaren@intel.com>, dev@dpdk.org", "Cc": "david.marchand@redhat.com, igor.romanov@oktetlabs.ru,\n honnappa.nagarahalli@arm.com, ferruh.yigit@intel.com, nd@arm.com,\n aconole@redhat.com", "From": "Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>", "Message-ID": "<36874208-5a95-715b-aa15-9af41bdc1c54@partner.samsung.com>", "Date": "Mon, 20 Jul 2020 19:45:11 +0200", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101\n Thunderbird/68.10.0", "MIME-Version": "1.0", "In-Reply-To": "<20200720143829.46280-1-harry.van.haaren@intel.com>", "Content-Transfer-Encoding": "8bit", "Content-Language": "en-US", "X-Brightmail-Tracker": [ "\n H4sIAAAAAAAAA+NgFtrEKsWRmVeSWpSXmKPExsWy7djPc7paN0TjDS6cNbD49eYBu8X2FV1s\n Fu8+bWeyuLP3NLtFY/83FouZT1vYLQ5NzrY4s7yH2YHDY828NYwevxYsZfVYvOclk8f1r69Y\n Pd7vu8oWwBrFZZOSmpNZllqkb5fAlTH5zxX2gvXyFT8Wr2dtYDwm2cXIySEhYCLxYt5M5i5G\n Lg4hgRWMEpv3v4RyvjBKXJ4/mQnC+cwosbdnHiNMy8reaVBVyxklXp55BOW8ZZRY0vUWrEpY\n wEdiy9ZmdhBbRMBe4vOV02CjmAUmMUo8e7oGLMEmYCtxZOZXVhCbV8BN4uvTaSwgNouAqsT1\n 5iNgNaICcRLrX25ngqgRlDg58wlYDaeAg8Sc1l9gvcwC8hLNW2czQ9jiEreezAdbJiFwiF1i\n 485HrBB3u0ic6NrFDmELS7w6vgXKlpE4PbmHBaJhG6PE1d8/GSGc/YwS13tXQFVZSxz+95ut\n i5EDaIWmxPpd+hBhR4lrt2awg4QlBPgkbrwVhDiCT2LStunMEGFeiY42IYhqPYmnPVMZYdb+\n WfuEZQKj0iwkr81C8s4sJO/MQti7gJFlFaN4amlxbnpqsVFearlecWJucWleul5yfu4mRmBK\n Ov3v+JcdjLv+JB1iFOBgVOLh/dAtGi/EmlhWXJl7iFGCg1lJhNfp7Ok4Id6UxMqq1KL8+KLS\n nNTiQ4zSHCxK4rzGi17GCgmkJ5akZqemFqQWwWSZODilGhht/Vo4OC+zdl5I9XRyMzp3qvuU\n 5+6k85Epai+7qgIFOXZ8s1apTtsQPf3+jkdL5nOdqROWS8vqsP1jZTB/82JvubuNeU3Htqdu\n myAYUZDw4Jj2ichJV2K4P4YaLLdLO/pKc/MSU+YZAZ0+60qS+o+d3zHXeuYFZkPW0DSf9zwb\n L7xeez7y7k8lluKMREMt5qLiRAAb3DzhRQMAAA==", "\n H4sIAAAAAAAAA+NgFjrMIsWRmVeSWpSXmKPExsVy+t/xu7paN0TjDS5PEbb49eYBu8X2FV1s\n Fu8+bWeyuLP3NLtFY/83FouZT1vYLQ5NzrY4s7yH2YHDY828NYwevxYsZfVYvOclk8f1r69Y\n Pd7vu8oWwBqlZ1OUX1qSqpCRX1xiqxRtaGGkZ2hpoWdkYqlnaGwea2VkqqRvZ5OSmpNZllqk\n b5eglzH5zxX2gvXyFT8Wr2dtYDwm2cXIySEhYCKxsncacxcjF4eQwFJGiVN9K9i7GDmAEjIS\n Hy4JQNQIS/y51sUGUfOaUWLzji1sIAlhAR+JLVub2UFsEQF7ic9XTjOBFDELTGKU+Ne5gBWi\n 4ySjxIfd65hBqtgEbCWOzPzKCmLzCrhJfH06jQXEZhFQlbjefARskqhAnMTyLfPZIWoEJU7O\n fAJWwyngIDGn9RdYL7OAmcS8zQ+ZIWx5ieats6FscYlbT+YzTWAUmoWkfRaSlllIWmYhaVnA\n yLKKUSS1tDg3PbfYSK84Mbe4NC9dLzk/dxMjMAK3Hfu5ZQdj17vgQ4wCHIxKPLwfukXjhVgT\n y4orcw8xSnAwK4nwOp09HSfEm5JYWZValB9fVJqTWnyI0RTouYnMUqLJ+cDkkFcSb2hqaG5h\n aWhubG5sZqEkztshcDBGSCA9sSQ1OzW1ILUIpo+Jg1OqgZH7gS1j8ffNOys/LNfscPjB8v7N\n lGWetzepMLswM/rPEkmX7Eq+aV/FdcArYfbms1Nai70veYgWWRztzi5o3HFhn8Ou3QfLI9cG\n Xv+0Jv/YrHrZJZF/c288W/3eeH2Mi5KufMmuGnFLpz7WpNJo172H2w6yrTvzoqvy8YXt0w12\n KnQrNC3Zn6TEUpyRaKjFXFScCAB0NZpR1gIAAA==" ], "X-CMS-MailID": "20200720174514eucas1p26c2039eec8df7c7de037a760f27f43ff", "X-Msg-Generator": "CA", "Content-Type": "text/plain; charset=\"utf-8\"", "X-RootMTR": "20200720143731eucas1p13c21beb109b2b6896a2ca6ca43059d1b", "X-EPHeader": "CA", "CMS-TYPE": "201P", "X-CMS-RootMailID": "20200720143731eucas1p13c21beb109b2b6896a2ca6ca43059d1b", "References": "<20200720120938.34660-1-harry.van.haaren@intel.com>\n <CGME20200720143731eucas1p13c21beb109b2b6896a2ca6ca43059d1b@eucas1p1.samsung.com>\n <20200720143829.46280-1-harry.van.haaren@intel.com>", "Subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 116380, "web_url": "https://patches.dpdk.org/comment/116380/", "msgid": "<VE1PR08MB464005AC02DD22F267F93CA7E9780@VE1PR08MB4640.eurprd08.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/VE1PR08MB464005AC02DD22F267F93CA7E9780@VE1PR08MB4640.eurprd08.prod.outlook.com", "date": "2020-07-21T07:47:55", "subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n core\tactive", "submitter": { "id": 833, "url": "https://patches.dpdk.org/api/people/833/?format=api", "name": "Phil Yang", "email": "phil.yang@arm.com" }, "content": "> -----Original Message-----\n> From: dev <dev-bounces@dpdk.org> On Behalf Of Harry van Haaren\n> Sent: Monday, July 20, 2020 10:38 PM\n> To: dev@dpdk.org\n> Cc: david.marchand@redhat.com; igor.romanov@oktetlabs.ru; Honnappa\n> Nagarahalli <Honnappa.Nagarahalli@arm.com>; ferruh.yigit@intel.com; nd\n> <nd@arm.com>; aconole@redhat.com;\n> l.wojciechow@partner.samsung.com; Harry van Haaren\n> <harry.van.haaren@intel.com>\n> Subject: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service core\n> active\n> \n> This commit adds a new experimental API which allows the user\n> to retrieve the active state of an lcore. Knowing when the service\n> lcore is completed its polling loop can be useful to applications\n> to avoid race conditions when e.g. finalizing statistics.\n> \n> The service thread itself now has a variable to indicate if its\n> thread is active. When zero the service thread has completed its\n> service, and has returned from the service_runner_func() function.\n> \n> Suggested-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>\n> Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>\n> \n\nIt looks good to me.\n\nReviewed-by: Phil Yang <phil.yang@arm.com>\n\nThanks,\nPhil\n<...>", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 77DA3A0526;\n\tTue, 21 Jul 2020 09:48:11 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 59F261BFFF;\n\tTue, 21 Jul 2020 09:48:10 +0200 (CEST)", "from EUR05-AM6-obe.outbound.protection.outlook.com\n (mail-am6eur05on2049.outbound.protection.outlook.com [40.107.22.49])\n by dpdk.org (Postfix) with ESMTP id E413D1BFEB\n for <dev@dpdk.org>; Tue, 21 Jul 2020 09:48:08 +0200 (CEST)", "from DB6P195CA0011.EURP195.PROD.OUTLOOK.COM (2603:10a6:4:cb::21) by\n DB6PR0801MB2007.eurprd08.prod.outlook.com (2603:10a6:4:78::9) with\n Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.3216.20; Tue, 21 Jul 2020 07:48:07 +0000", "from DB5EUR03FT061.eop-EUR03.prod.protection.outlook.com\n (2603:10a6:4:cb:cafe::f1) by DB6P195CA0011.outlook.office365.com\n (2603:10a6:4:cb::21) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17 via Frontend\n Transport; Tue, 21 Jul 2020 07:48:07 +0000", "from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by\n DB5EUR03FT061.mail.protection.outlook.com (10.152.21.234) with\n Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.3195.18 via Frontend Transport; Tue, 21 Jul 2020 07:48:07 +0000", "(\"Tessian outbound 2ae7cfbcc26c:v62\");\n Tue, 21 Jul 2020 07:48:07 +0000", "from 951dacc9fd77.1\n by 64aa7808-outbound-1.mta.getcheckrecipient.com id\n 882C3228-6F6D-45A6-9D4F-90D6E2387368.1;\n Tue, 21 Jul 2020 07:48:02 +0000", "from EUR02-VE1-obe.outbound.protection.outlook.com\n by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id\n 951dacc9fd77.1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);\n Tue, 21 Jul 2020 07:48:02 +0000", "from VE1PR08MB4640.eurprd08.prod.outlook.com (2603:10a6:802:b2::11)\n by VI1PR08MB3117.eurprd08.prod.outlook.com (2603:10a6:803:42::22)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.24; Tue, 21 Jul\n 2020 07:47:55 +0000", "from VE1PR08MB4640.eurprd08.prod.outlook.com\n ([fe80::28a3:3a4e:65ca:5707]) by VE1PR08MB4640.eurprd08.prod.outlook.com\n ([fe80::28a3:3a4e:65ca:5707%3]) with mapi id 15.20.3195.025; Tue, 21 Jul 2020\n 07:47:55 +0000" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;\n s=selector2-armh-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=fcARZa4lBcXw6zpI48n6On1rZfzrCJ9qaMxE80VPowg=;\n b=o0QYBEqibq9UWHr5oqQ0BVCVQrSnRBMUJWSazcNnlRrE73+WXKiHItxzI9+YUZPOlzJV/+tGyA/UThDO2Ez6/h6Xhad8sXM1YCyo+2laA8Q2bXNYLncBP8sY8nnS7ZDnD3qU+kAGkeEoytEVNLdyslYc+A9JJVqEhZ55PD+3Zv8=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;\n s=selector2-armh-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=fcARZa4lBcXw6zpI48n6On1rZfzrCJ9qaMxE80VPowg=;\n b=o0QYBEqibq9UWHr5oqQ0BVCVQrSnRBMUJWSazcNnlRrE73+WXKiHItxzI9+YUZPOlzJV/+tGyA/UThDO2Ez6/h6Xhad8sXM1YCyo+2laA8Q2bXNYLncBP8sY8nnS7ZDnD3qU+kAGkeEoytEVNLdyslYc+A9JJVqEhZ55PD+3Zv8=" ], "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 63.35.35.123)\n smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified)\n header.d=armh.onmicrosoft.com;dpdk.org; dmarc=bestguesspass action=none\n header.from=arm.com;", "Received-SPF": "Pass (protection.outlook.com: domain of arm.com designates\n 63.35.35.123 as permitted sender) receiver=protection.outlook.com;\n client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;", "X-CR-MTA-TID": "64aa7808", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=EFIHXyQCJu6eP/xn2QVM6IWVhUMR1G0sZQ+x74UFmC5fDJNG6Na2WO6ImZUAjfGtWIyq9tfMOlS4RVc2SAtImbVzVnSV34RgCFVWKOsQchhCx4ltSekDNkA57WVQcEB/Yb6ZPDBPGK9KAwRKgFFhkMk2nVSXWvBdc9sE4ZpUMqF4ZpF3oVHxcA/ZCP4L3EwlyGuqsH8Aj8jeknGYiPBYdySPXaMlDLY6slNNQo16ADx7TrGkQ6uBW5KgPhNyDTgZRr7F6rvplYn96oHhrD90DNidjy6XFXgGP+yIF3smJ/keZAt+RrrNvC8WdbQzYDXuNFAP8c8WPKh6LNHbJCZ7Bg==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=fcARZa4lBcXw6zpI48n6On1rZfzrCJ9qaMxE80VPowg=;\n b=dBnOIoQHJQsYd2JDRAdZmfqPX3wlKdZN7Ut/rGEGK17URAP2GS1N3twLL3qq9CBAVrPqG1gJVDYUvQFzYyQ7ZDCzD1swIpttQ6X5vsGnumV487ABRjY56npUCHOZgTa2KO8ZeB4g/b/gZ9RNPmLL238e4e7kOt/ISUqKTq6IpbIzsDM50im6MORR45hRSpxp48wwq5uSfqxlJtFsj9sXhysQn7c2V7TAoqAIIuDVAS8Mw8i/CXvv+myRHMJ5cr0YJr9MrAC1/5Tb4hEKvadXN49qLIA3+I/laBSEpF7IqGv0T7GiqGz6FX3nBwlXf4Osj3HetIbnqtXzao1LmPhWKQ==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass\n header.d=arm.com; arc=none", "From": "Phil Yang <Phil.Yang@arm.com>", "To": "Harry van Haaren <harry.van.haaren@intel.com>, \"dev@dpdk.org\"\n <dev@dpdk.org>", "CC": "\"david.marchand@redhat.com\" <david.marchand@redhat.com>,\n \"igor.romanov@oktetlabs.ru\" <igor.romanov@oktetlabs.ru>, Honnappa Nagarahalli\n <Honnappa.Nagarahalli@arm.com>, \"ferruh.yigit@intel.com\"\n <ferruh.yigit@intel.com>, nd <nd@arm.com>, \"aconole@redhat.com\"\n <aconole@redhat.com>, \"l.wojciechow@partner.samsung.com\"\n <l.wojciechow@partner.samsung.com>, nd <nd@arm.com>", "Thread-Topic": "[dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n core\tactive", "Thread-Index": "AQHWXqNUWzsSFJTQg0q3JCmFwj2F3qkRpQGQ", "Date": "Tue, 21 Jul 2020 07:47:55 +0000", "Message-ID": "\n <VE1PR08MB464005AC02DD22F267F93CA7E9780@VE1PR08MB4640.eurprd08.prod.outlook.com>", "References": "<20200720120938.34660-1-harry.van.haaren@intel.com>\n <20200720143829.46280-1-harry.van.haaren@intel.com>", "In-Reply-To": "<20200720143829.46280-1-harry.van.haaren@intel.com>", "Accept-Language": "zh-CN, en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-ts-tracking-id": "c29f7e03-dbf4-4ccb-92c9-8987fb767a76.0", "x-checkrecipientchecked": "true", "Authentication-Results-Original": "intel.com; dkim=none (message not signed)\n header.d=none;intel.com; dmarc=none action=none header.from=arm.com;", "x-originating-ip": "[203.126.0.113]", "x-ms-publictraffictype": "Email", "X-MS-Office365-Filtering-HT": "Tenant", "X-MS-Office365-Filtering-Correlation-Id": "ebc587f3-6019-41f7-a0f1-08d82d4a6873", "x-ms-traffictypediagnostic": "VI1PR08MB3117:|DB6PR0801MB2007:", "x-ms-exchange-transport-forked": "True", "X-Microsoft-Antispam-PRVS": "\n <DB6PR0801MB2007ED8C3B337B4E38E2F309E9780@DB6PR0801MB2007.eurprd08.prod.outlook.com>", "x-checkrecipientrouted": "true", "nodisclaimer": "true", "x-ms-oob-tlc-oobclassifiers": "OLM:357;OLM:357;", "X-MS-Exchange-SenderADCheck": "1", "X-Microsoft-Antispam-Untrusted": "BCL:0;", "X-Microsoft-Antispam-Message-Info-Original": "\n RoQLmZ5PVN1PBvnVljVZ5hFG9YoxPhn37HPhMz1mNJJa+l3CeyxosdcrePJNZK0UN/IAbq4rtw19bHsfDhS4P3mRu2+XJpAMqkk2pXR6rDMyYKysT147g779xIu4BqzKgfgSj435LcFf3rEiXB3JkRo7DjuJ5F3aKlHrIMe0CITcnoid0v2j4c68/dt8FLGGDqB37GYFUQzj5n8OVc195SA/QUZApYJs6Ls+qiNFYSDD8fywvcbS6S6L/5i4IBmKzsfl3X5SNANXpDsnwe7fHbuVfJCcQZMlw9ZW+n3Auf9z8b7XVHGRZGogcb9oOOxzEnFF0eM6tnRBk/9ik0Xxhg==", "X-Forefront-Antispam-Report-Untrusted": "CIP:255.255.255.255; CTRY:; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR08MB4640.eurprd08.prod.outlook.com;\n PTR:; CAT:NONE; SFTY:;\n SFS:(4636009)(39860400002)(396003)(366004)(376002)(346002)(136003)(76116006)(66946007)(8936002)(66476007)(66556008)(6506007)(53546011)(52536014)(33656002)(83380400001)(71200400001)(86362001)(66446008)(64756008)(5660300002)(110136005)(54906003)(2906002)(316002)(4326008)(9686003)(7696005)(186003)(55016002)(26005)(478600001);\n DIR:OUT; SFP:1101;", "x-ms-exchange-antispam-messagedata": "\n eaQPcDTVvUXLbcMAyw+cSWenJeLnmKDrmUXUXnykunHEP5PgWNmK44jUAMhN8fCkwfmcvq+PAZwthiJF2HBCftuvwBU+FpXU0aM2GrKbHLT8muHEvrONaYGQfjM6tjGmlgfRDDDNrxXOrIOGaF6faedi/5GzDciME8Wv/RBX8AEpUZia5ZHVUpoeJJhcbgdqL2rHDrJkzG8DHlVcGfSpnwRl0X1NvcyVfCp6mbryEhWpTdHns3rFd77ZfLi/kHa984zFYRAJVF1ok4PBP2EqUvjf5KoAryAWqZc8ZqS4bP3c2ayMNK5fRMJBPj7aTPr2AxTuXk6xw7b9FftBLIhJ4n0R8/hWufnI6mxKLt2NDzfXhLgc3LaPdPRq0rHWFFvi1BmhM+tAFxn3YGczQr4cymxq1jY4hvHCJnW5C51MbQ5qtnP67OgHU8M5rPswH75xgqcd4OJLn/H/dV5te62mfwR5wMbBCJUHow8KZZ7Y+3Y=", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [ "VI1PR08MB3117", "DB6PR0801MB2007" ], "Original-Authentication-Results": "intel.com; dkim=none (message not signed)\n header.d=none;intel.com; dmarc=none action=none header.from=arm.com;", "X-EOPAttributedMessage": "0", "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n DB5EUR03FT061.eop-EUR03.prod.protection.outlook.com", "X-Forefront-Antispam-Report": "CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com;\n PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:;\n SFS:(4636009)(136003)(346002)(376002)(396003)(39860400002)(46966005)(478600001)(9686003)(186003)(47076004)(7696005)(53546011)(52536014)(82740400003)(6506007)(83380400001)(336012)(70206006)(70586007)(81166007)(55016002)(82310400002)(356005)(33656002)(26005)(54906003)(8936002)(5660300002)(4326008)(86362001)(2906002)(110136005)(316002);\n DIR:OUT; SFP:1101;", "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n 4a00ac5e-3bb8-41ae-865a-08d82d4a6156", "X-Microsoft-Antispam": "BCL:0;", "X-Microsoft-Antispam-Message-Info": "\n yrckTD4wPZw2bU3HsPOo2E1dhUGzNpBQDqreJnqSy0ruNLMHu+NUCR3PAcZLy2rV2eRWtEQbKZu3UgkUpG5tG36FHqVFTvBBUHGqSyYgfKqkhct0FkzdJ9ey6/AN9M/TSHovcqDE0DiUIeiIeqJSmVcmXZG9BtndoJNA4c2wf+Av7sGuw0Icr2ntvMRctdmReq0wac19wKPfYhLCbIy9lTRqq4L8x01gwH8646ux6mc537N4sAtD4gryPXA0jXkhD7QLCzwo9oyAVM9Pa7pX7doA2XwJ1kHm5js/Ea9dbzfv9KVbJrMIKIIe9jw96XZQnz0YEotioYrpcRZ+l65K1uSOv9QAzr9iCDYt78KIm3ux2aZ8iW+CDyqSHLONdv/KzD4AEX8+BPBqmkRqVKI2Hw==", "X-OriginatorOrg": "arm.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "21 Jul 2020 07:48:07.6093 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n ebc587f3-6019-41f7-a0f1-08d82d4a6873", "X-MS-Exchange-CrossTenant-Id": "f34e5979-57d9-4aaa-ad4d-b122a662184d", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123];\n Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n DB5EUR03FT061.eop-EUR03.prod.protection.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "Subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n core\tactive", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 116444, "web_url": "https://patches.dpdk.org/comment/116444/", "msgid": "<DB6PR0802MB221605308636E4B7039B491798780@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/DB6PR0802MB221605308636E4B7039B491798780@DB6PR0802MB2216.eurprd08.prod.outlook.com", "date": "2020-07-21T19:43:05", "subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "submitter": { "id": 1045, "url": "https://patches.dpdk.org/api/people/1045/?format=api", "name": "Honnappa Nagarahalli", "email": "honnappa.nagarahalli@arm.com" }, "content": "<snip>\n\n> Subject: [PATCH v2 1/2] service: add API to retrieve service core active\n> \n> This commit adds a new experimental API which allows the user to retrieve\n> the active state of an lcore. Knowing when the service lcore is completed its\n> polling loop can be useful to applications to avoid race conditions when e.g.\n> finalizing statistics.\n> \n> The service thread itself now has a variable to indicate if its thread is active.\n> When zero the service thread has completed its service, and has returned\n> from the service_runner_func() function.\n> \n> Suggested-by: Lukasz Wojciechowski <l.wojciechow@partner.samsung.com>\n> Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>\n> \n> ---\n> \n> Thanks for feedback Lukasz, please have a look and see if this was what you\n> were expecting?\n> \n> Honnappa/Phil, are the __atomic_load/store's correct?\n> \n> ---\n> lib/librte_eal/common/rte_service.c | 14 ++++++++++++++\n> lib/librte_eal/include/rte_service.h | 9 +++++++++\n> lib/librte_eal/rte_eal_version.map | 1 +\n> 3 files changed, 24 insertions(+)\n> \n> diff --git a/lib/librte_eal/common/rte_service.c\n> b/lib/librte_eal/common/rte_service.c\n> index 6a0e0ff65..4c276b006 100644\n> --- a/lib/librte_eal/common/rte_service.c\n> +++ b/lib/librte_eal/common/rte_service.c\n> @@ -65,6 +65,7 @@ struct core_state {\n> \t/* map of services IDs are run on this core */\n> \tuint64_t service_mask;\n> \tuint8_t runstate; /* running or stopped */\n> +\tuint8_t thread_active; /* indicates when thread is in service_run() */\nNit, if possible would be good to describe the difference between 'runstate' and 'thread_active'.\n\n> \tuint8_t is_service_core; /* set if core is currently a service core */\n> \tuint8_t service_active_on_lcore[RTE_SERVICE_NUM_MAX];\n> \tuint64_t loops;\n> @@ -457,6 +458,8 @@ service_runner_func(void *arg)\n> \tconst int lcore = rte_lcore_id();\n> \tstruct core_state *cs = &lcore_states[lcore];\n> \n> +\t__atomic_store_n(&cs->thread_active, 1, __ATOMIC_RELAXED);\nEssentially, we have to ensure that all the memory operations are contained within both stores (this one and the one below) to 'thread_active'.\nWe should use __ATOMIC_SEQ_CST, which will avoid any memory operations from getting hoisted above this line.\nPerformance should not be an issue as it will get executed only when the service core is started.\nIt would be good to add comment reasoning the memory order used.\n\nAlso, what happens if the user calls 'rte_service_lcore_active' just before the above statement is executed? It might not be a valid use case, but it is good to document the race conditions and correct sequence of API calls.\n\n> +\n> \t/* runstate act as the guard variable. Use load-acquire\n> \t * memory order here to synchronize with store-release\n> \t * in runstate update functions.\n> @@ -475,9 +478,20 @@ service_runner_func(void *arg)\n> \t\tcs->loops++;\n> \t}\n> \n> +\t__atomic_store_n(&cs->thread_active, 0, __ATOMIC_RELAXED);\n__ATOMIC_RELEASE would be enough. But, __ATOMIC_SEQ_CST should not cause any performance issues.\n\n> \treturn 0;\n> }\n> \n> +int32_t\n> +rte_service_lcore_active(uint32_t lcore) {\n> +\tif (lcore >= RTE_MAX_LCORE || !lcore_states[lcore].is_service_core)\n> +\t\treturn -EINVAL;\n> +\n> +\treturn __atomic_load_n(&lcore_states[lcore].thread_active,\n> +\t\t\t __ATOMIC_RELAXED);\n> +}\n> +\n> int32_t\n> rte_service_lcore_count(void)\n> {\n> diff --git a/lib/librte_eal/include/rte_service.h\n> b/lib/librte_eal/include/rte_service.h\n> index e2d0a6dd3..f7134b5c0 100644\n> --- a/lib/librte_eal/include/rte_service.h\n> +++ b/lib/librte_eal/include/rte_service.h\n> @@ -261,6 +261,15 @@ int32_t rte_service_lcore_start(uint32_t lcore_id);\n> */\n> int32_t rte_service_lcore_stop(uint32_t lcore_id);\n> \n> +/**\n> + * Reports if a service lcore is currently running.\n> + * @retval 0 Service thread is not active, and has been returned to EAL.\n> + * @retval 1 Service thread is in the service core polling loop.\n> + * @retval -EINVAL Invalid *lcore_id* provided.\n> + */\n> +__rte_experimental\n> +int32_t rte_service_lcore_active(uint32_t lcore_id);\nWould 'rte_service_lcore_may_be_active' better? It would be inline with 'rte_service_may_be_active'?\n\nI think we need additional documentation for 'rte_service_lcore_stop' to indicate that the caller should not assume that the service thread on the lcore has stopped running and should call the above API to check.\n\n> +\n> /**\n> * Adds lcore to the list of service cores.\n> *\n> diff --git a/lib/librte_eal/rte_eal_version.map\n> b/lib/librte_eal/rte_eal_version.map\n> index bf0c17c23..d53d5d5b9 100644\n> --- a/lib/librte_eal/rte_eal_version.map\n> +++ b/lib/librte_eal/rte_eal_version.map\n> @@ -401,6 +401,7 @@ EXPERIMENTAL {\n> \trte_lcore_dump;\n> \trte_lcore_iterate;\n> \trte_mp_disable;\n> +\trte_service_lcore_active;\n> \trte_thread_register;\n> \trte_thread_unregister;\n> };\n> --\n> 2.17.1", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 3C6E3A0526;\n\tTue, 21 Jul 2020 21:43:19 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id DFCE01C068;\n\tTue, 21 Jul 2020 21:43:17 +0200 (CEST)", "from EUR05-DB8-obe.outbound.protection.outlook.com\n (mail-db8eur05on2048.outbound.protection.outlook.com [40.107.20.48])\n by dpdk.org (Postfix) with ESMTP id A911C1BFCD\n for <dev@dpdk.org>; Tue, 21 Jul 2020 21:43:16 +0200 (CEST)", "from AM5PR0402CA0011.eurprd04.prod.outlook.com\n (2603:10a6:203:90::21) by AM0PR08MB5329.eurprd08.prod.outlook.com\n (2603:10a6:208:185::19) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.18; Tue, 21 Jul\n 2020 19:43:14 +0000", "from VE1EUR03FT051.eop-EUR03.prod.protection.outlook.com\n (2603:10a6:203:90:cafe::3d) by AM5PR0402CA0011.outlook.office365.com\n (2603:10a6:203:90::21) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.21 via Frontend\n Transport; Tue, 21 Jul 2020 19:43:14 +0000", "from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by\n VE1EUR03FT051.mail.protection.outlook.com (10.152.19.75) with\n Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.3195.18 via Frontend Transport; Tue, 21 Jul 2020 19:43:14 +0000", "(\"Tessian outbound c4059ed8d7bf:v62\");\n Tue, 21 Jul 2020 19:43:13 +0000", "from 138a2db29627.3\n by 64aa7808-outbound-1.mta.getcheckrecipient.com id\n 3366F25F-0500-46DB-9B71-D47289F92A19.1;\n Tue, 21 Jul 2020 19:43:08 +0000", "from EUR04-VI1-obe.outbound.protection.outlook.com\n by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id\n 138a2db29627.3\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);\n Tue, 21 Jul 2020 19:43:08 +0000", "from DB6PR0802MB2216.eurprd08.prod.outlook.com (2603:10a6:4:85::9)\n by DB8PR08MB5196.eurprd08.prod.outlook.com (2603:10a6:10:ee::31) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.23; Tue, 21 Jul\n 2020 19:43:05 +0000", "from DB6PR0802MB2216.eurprd08.prod.outlook.com\n ([fe80::9d1d:207b:e89d:199d]) by DB6PR0802MB2216.eurprd08.prod.outlook.com\n ([fe80::9d1d:207b:e89d:199d%10]) with mapi id 15.20.3195.026; Tue, 21 Jul\n 2020 19:43:05 +0000" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;\n s=selector2-armh-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=hOoAt5UggpUD3R9mqJlMhEGq2ENhcDY8NeVbkbmPmbQ=;\n b=dFfAx+KaRd9hVzjObEVJv9sHjiH3EaF/nbuG3WidLmLaVtm6oKhV5RSu32oN2OIjtjeJn8ZXesZhgbnQNKMCj6dAlLy/n6eEEv4VWGv94OesOR2Zu0TCcH5dvpnBtGCG/oKZLSX21pWfxbf5XajjHf4wrtpeUW6nkn+IBh9G8ao=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;\n s=selector2-armh-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=hOoAt5UggpUD3R9mqJlMhEGq2ENhcDY8NeVbkbmPmbQ=;\n b=dFfAx+KaRd9hVzjObEVJv9sHjiH3EaF/nbuG3WidLmLaVtm6oKhV5RSu32oN2OIjtjeJn8ZXesZhgbnQNKMCj6dAlLy/n6eEEv4VWGv94OesOR2Zu0TCcH5dvpnBtGCG/oKZLSX21pWfxbf5XajjHf4wrtpeUW6nkn+IBh9G8ao=" ], "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 63.35.35.123)\n smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified)\n header.d=armh.onmicrosoft.com;dpdk.org; dmarc=bestguesspass action=none\n header.from=arm.com;", "Received-SPF": "Pass (protection.outlook.com: domain of arm.com designates\n 63.35.35.123 as permitted sender) receiver=protection.outlook.com;\n client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;", "X-CR-MTA-TID": "64aa7808", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Z/R3Xosf+LYNidUie93EN+hMbZw5wogIzTuQWXV34yytPXKzfiap9QekyJpDHEuDngPQK9oCSso8QoliJLqOXl/rMoygbqo4APjo2UWI2FniH/Mo8V/3d70x1apcQA/kH93Q5mZ0tL3SMgEizQ3TH61U836+9kdy+YRAPf9DVVr+Op53RQjPC4ICuH3HmS+z+z9Q574lANirQqIvi4bbh4lFCUmUZ71RAGLUF4ahesJGx2cdEqyuLz6wDnfbIiTxUNtgd8G0ObEnsboocs0uQ0OcjDL7O6zH7rGFMdZOC6dSj4y4OzdkH/01tFXa975NQ614UJQfCKoce7Lxa4BcYw==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=hOoAt5UggpUD3R9mqJlMhEGq2ENhcDY8NeVbkbmPmbQ=;\n b=lixztk3K2aEGiFChaXM4ndHTqqZwDQ7EQhc69Sh4wkalyb7xs40VkygC8B3IzMNG+BPvym9kR8NAzAmFruEbRWDa45tVPjJNPioDofOzsdo3a9RGJqRjWapr9ae2mvOS3aQUqH9XzmY0TO/prpPhQKtyJM0SsTNQvg/JU+5JwZaCgGRzS7GSotn2TFruECNtCccdJ7DIoK1kwEpFWk68kTZskP71fVod3IUKV6rvrILTLFSblpgrtSolt1kduAxTwdDhjXW+SFir3h11H4/LhavsF8hv/xcPX/4nWZaN/FlJEwLNtpzbB/v3qCLYKKQOo3Ka+4QWE4VEQiPEB1nLeQ==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass\n header.d=arm.com; arc=none", "From": "Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>", "To": "Harry van Haaren <harry.van.haaren@intel.com>, \"dev@dpdk.org\"\n <dev@dpdk.org>", "CC": "\"david.marchand@redhat.com\" <david.marchand@redhat.com>,\n \"igor.romanov@oktetlabs.ru\" <igor.romanov@oktetlabs.ru>,\n \"ferruh.yigit@intel.com\" <ferruh.yigit@intel.com>, nd <nd@arm.com>,\n \"aconole@redhat.com\" <aconole@redhat.com>, \"l.wojciechow@partner.samsung.com\"\n <l.wojciechow@partner.samsung.com>, Honnappa Nagarahalli\n <Honnappa.Nagarahalli@arm.com>, Phil Yang <Phil.Yang@arm.com>, nd\n <nd@arm.com>", "Thread-Topic": "[PATCH v2 1/2] service: add API to retrieve service core active", "Thread-Index": "AQHWXqNVej80cd/qgEGtgKmAQ2W1m6kSZL2A", "Date": "Tue, 21 Jul 2020 19:43:05 +0000", "Message-ID": "\n <DB6PR0802MB221605308636E4B7039B491798780@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "References": "<20200720120938.34660-1-harry.van.haaren@intel.com>\n <20200720143829.46280-1-harry.van.haaren@intel.com>", "In-Reply-To": "<20200720143829.46280-1-harry.van.haaren@intel.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-ts-tracking-id": "692a78f4-da33-466e-a8a7-9a058a81ed83.0", "x-checkrecipientchecked": "true", "Authentication-Results-Original": "intel.com; dkim=none (message not signed)\n header.d=none;intel.com; dmarc=none action=none header.from=arm.com;", "x-originating-ip": "[107.77.221.153]", "x-ms-publictraffictype": "Email", "X-MS-Office365-Filtering-HT": "Tenant", "X-MS-Office365-Filtering-Correlation-Id": "ec8f3904-fa2f-480e-5177-08d82dae4ec9", "x-ms-traffictypediagnostic": "DB8PR08MB5196:|AM0PR08MB5329:", "x-ms-exchange-transport-forked": "True", "X-Microsoft-Antispam-PRVS": "\n <AM0PR08MB5329A316798B741C12F7F76A98780@AM0PR08MB5329.eurprd08.prod.outlook.com>", "x-checkrecipientrouted": "true", "nodisclaimer": "true", "x-ms-oob-tlc-oobclassifiers": "OLM:10000;OLM:10000;", "X-MS-Exchange-SenderADCheck": "1", "X-Microsoft-Antispam-Untrusted": "BCL:0;", "X-Microsoft-Antispam-Message-Info-Original": "\n YNGlLOSnxK5YI7mwrfOkoyzy6fDrwOzsAaje3fS8zozgcwCq42eWLKjde5iPtIhXbERqGJ1nEEUNrsC5wwX87s7xc+UmboIvKSzlD2hxJIwlz4Z9xp2KUZZ83kUjQi6KnF+Tuo+Xx6lfl2fVwZP2+reotaZde1SuDysScPhQ7NbSdZqY4u+ggtFAMVYnIOtZEIKDQUxtqmoyltGjKbJANtJa2aHtxQnsAYdHQPL/B0CRIqFsVlUWdn+T3uXtPaOohXHOe9ioE+WMg+Jw1zVSGs/Ck7wpiNhlQInERYoccgIUzoSqFJ83sw05OwfIqA1IDR3PzZDtrYQga1aNKlL5+iT4myo12ioQ1B8J5ZQpdnsiMGk0nn1cPB0OB0xE0pFK", "X-Forefront-Antispam-Report-Untrusted": "CIP:255.255.255.255; CTRY:; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0802MB2216.eurprd08.prod.outlook.com;\n PTR:; CAT:NONE; SFTY:;\n SFS:(4636009)(346002)(136003)(39860400002)(376002)(366004)(396003)(55016002)(8936002)(4326008)(9686003)(478600001)(8676002)(2906002)(83380400001)(5660300002)(186003)(33656002)(86362001)(66946007)(71200400001)(66556008)(110136005)(6506007)(7696005)(316002)(54906003)(52536014)(64756008)(66446008)(66476007)(26005)(76116006)(87944003);\n DIR:OUT; SFP:1101;", "x-ms-exchange-antispam-messagedata": "\n ol7qSSdU/Nj4Qmm396FFNkEcHEZmVvy71Nhvk07EfPohhRb/ow0F/5FqzkEfX++TWHajZucw22lM7rwdpErPa8DGAHTAzcwIgbLLaP7n2Q+dWA/Ja4Fl+nhmV+MhtptRJG3uOkAi3FSfqzP4OvOm29KS7DJO/+bYVHojSKLzjVI10R46l8aP/zTURiW5vGFPv2mc1M3R8p6lBe2OLZ+QELdqktUWV+GUVhesKArkQC+15YFZ/7xq+JBkHj3W/5HtcN8AHt9TZtSsvyEpXZhg8HFg+6ffdaqwZ8RteXVBAtlQtFOeIjyrrgLOsiq0rb1XRsSJ9YacN4ZaBLc/TD+ujDH2ZyfZes1ngeQlf1e0q3ds3tFeTAxfMVzcSAbYwhCrfxxUKM35oAqU9Hsnfn+GjJZjW9uiSwXevFrT1EhHJuf/J5XCbFQI7qPM5vFPNYl21UCoSotK66TH25nyrlDlu8J9Zz0x/IcVRAHLZaoLIro/H73ZONNcLhewGFzkTO9x", "Content-Type": "text/plain; charset=\"us-ascii\"", "Content-Transfer-Encoding": "quoted-printable", "MIME-Version": "1.0", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [ "DB8PR08MB5196", "AM0PR08MB5329" ], "Original-Authentication-Results": "intel.com; dkim=none (message not signed)\n header.d=none;intel.com; dmarc=none action=none header.from=arm.com;", "X-EOPAttributedMessage": "0", "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n VE1EUR03FT051.eop-EUR03.prod.protection.outlook.com", "X-Forefront-Antispam-Report": "CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com;\n PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:;\n SFS:(4636009)(136003)(376002)(396003)(39860400002)(346002)(46966005)(52536014)(36906005)(5660300002)(82310400002)(2906002)(9686003)(33656002)(86362001)(55016002)(8936002)(356005)(81166007)(316002)(336012)(6506007)(82740400003)(70586007)(478600001)(7696005)(54906003)(26005)(186003)(110136005)(8676002)(70206006)(47076004)(4326008)(83380400001)(87944003);\n DIR:OUT; SFP:1101;", "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n d20658aa-7665-4f80-8846-08d82dae4999", "X-Microsoft-Antispam": "BCL:0;", "X-Microsoft-Antispam-Message-Info": "\n iEMbQiC8ryrjumwwQd7JYhrCgdY/uhei3/zbtM6MYz+RHuUyRqboHaITVjUqAETrgI76q1nGFNNBPksGY0XovmDJMVa8L5Z3EXx+R1ZwA1me+Hx5c8pMvDYFdt6lw6aSZ0T7k839BYCW5GDLEkvgUKF/LuNmezXjwRGHn8neZievN6l3/u12CChF9orYml68aiCuEeQK5nT74WnBUOtvNOvyXqivuPgQ8lYpebYt37M+PZIe0d42foByR/zAltVOiDqR4DKlAs9mpCVeNYyf4Q/UUnpJmrr0gCueBtV+cmOjg4XNTlWnwm+dZYPIf7QX203ew8Lxzsl0aJpdzr3jiSu6nb6s2uMSfak/PmetccJwSOZInZ40tQ/u3Boz4BHJIF4YuIZzTTaA0DgZdH6Zc8Xb/2N+a4jOnZPZ2XZ8CDw=", "X-OriginatorOrg": "arm.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "21 Jul 2020 19:43:14.1138 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n ec8f3904-fa2f-480e-5177-08d82dae4ec9", "X-MS-Exchange-CrossTenant-Id": "f34e5979-57d9-4aaa-ad4d-b122a662184d", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123];\n Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n VE1EUR03FT051.eop-EUR03.prod.protection.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "Subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 116445, "web_url": "https://patches.dpdk.org/comment/116445/", "msgid": "<CAJFAV8z5FO5YXHrMqAwLvqFHtnRKh9gmH3wXGh_dRsyH2BOE0g@mail.gmail.com>", "list_archive_url": "https://inbox.dpdk.org/dev/CAJFAV8z5FO5YXHrMqAwLvqFHtnRKh9gmH3wXGh_dRsyH2BOE0g@mail.gmail.com", "date": "2020-07-21T19:50:38", "subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "submitter": { "id": 1173, "url": "https://patches.dpdk.org/api/people/1173/?format=api", "name": "David Marchand", "email": "david.marchand@redhat.com" }, "content": "On Tue, Jul 21, 2020 at 9:43 PM Honnappa Nagarahalli\n<Honnappa.Nagarahalli@arm.com> wrote:\n> > @@ -457,6 +458,8 @@ service_runner_func(void *arg)\n> > const int lcore = rte_lcore_id();\n> > struct core_state *cs = &lcore_states[lcore];\n> >\n> > + __atomic_store_n(&cs->thread_active, 1, __ATOMIC_RELAXED);\n> Essentially, we have to ensure that all the memory operations are contained within both stores (this one and the one below) to 'thread_active'.\n> We should use __ATOMIC_SEQ_CST, which will avoid any memory operations from getting hoisted above this line.\n> Performance should not be an issue as it will get executed only when the service core is started.\n> It would be good to add comment reasoning the memory order used.\n>\n> Also, what happens if the user calls 'rte_service_lcore_active' just before the above statement is executed? It might not be a valid use case, but it is good to document the race conditions and correct sequence of API calls.\n>\n> > +\n> > /* runstate act as the guard variable. Use load-acquire\n> > * memory order here to synchronize with store-release\n> > * in runstate update functions.\n> > @@ -475,9 +478,20 @@ service_runner_func(void *arg)\n> > cs->loops++;\n> > }\n> >\n> > + __atomic_store_n(&cs->thread_active, 0, __ATOMIC_RELAXED);\n> __ATOMIC_RELEASE would be enough. But, __ATOMIC_SEQ_CST should not cause any performance issues.\n\nBut then are we missing a ACQUIRE barrier in rte_service_lcore_active?\n\n\n>\n> > return 0;\n> > }\n> >\n> > +int32_t\n> > +rte_service_lcore_active(uint32_t lcore) {\n> > + if (lcore >= RTE_MAX_LCORE || !lcore_states[lcore].is_service_core)\n> > + return -EINVAL;\n> > +\n> > + return __atomic_load_n(&lcore_states[lcore].thread_active,\n> > + __ATOMIC_RELAXED);\n> > +}\n> > +\n> > int32_t\n> > rte_service_lcore_count(void)\n> > {\n> > diff --git a/lib/librte_eal/include/rte_service.h\n> > b/lib/librte_eal/include/rte_service.h\n> > index e2d0a6dd3..f7134b5c0 100644\n> > --- a/lib/librte_eal/include/rte_service.h\n> > +++ b/lib/librte_eal/include/rte_service.h\n> > @@ -261,6 +261,15 @@ int32_t rte_service_lcore_start(uint32_t lcore_id);\n> > */\n> > int32_t rte_service_lcore_stop(uint32_t lcore_id);\n> >\n> > +/**\n> > + * Reports if a service lcore is currently running.\n> > + * @retval 0 Service thread is not active, and has been returned to EAL.\n> > + * @retval 1 Service thread is in the service core polling loop.\n> > + * @retval -EINVAL Invalid *lcore_id* provided.\n> > + */\n> > +__rte_experimental\n> > +int32_t rte_service_lcore_active(uint32_t lcore_id);\n> Would 'rte_service_lcore_may_be_active' better? It would be inline with 'rte_service_may_be_active'?\n>\n> I think we need additional documentation for 'rte_service_lcore_stop' to indicate that the caller should not assume that the service thread on the lcore has stopped running and should call the above API to check.\n\n+1\nAdditional documentation can't hurt.", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 24D4EA0526;\n\tTue, 21 Jul 2020 21:50:57 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 350B61C06B;\n\tTue, 21 Jul 2020 21:50:56 +0200 (CEST)", "from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com\n [207.211.31.120]) by dpdk.org (Postfix) with ESMTP id 1B5BD1C068\n for <dev@dpdk.org>; Tue, 21 Jul 2020 21:50:54 +0200 (CEST)", "from mail-ua1-f71.google.com (mail-ua1-f71.google.com\n [209.85.222.71]) (Using TLS) by relay.mimecast.com with ESMTP id\n us-mta-169-SkmBX1J0M3q4O48MzCq8PQ-1; Tue, 21 Jul 2020 15:50:50 -0400", "by mail-ua1-f71.google.com with SMTP id r41so4318794uad.1\n for <dev@dpdk.org>; Tue, 21 Jul 2020 12:50:50 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n s=mimecast20190719; t=1595361054;\n h=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n to:to:cc:cc:mime-version:mime-version:content-type:content-type:\n in-reply-to:in-reply-to:references:references;\n bh=3OvtAqAVvatMfB4vEOyiSPFA9UyRgujmHMgayWb+6is=;\n b=Q/ffA7aYif89zzcYeY9Yo0C6DBy3FfRxb5YqU0y2FV0rVN+aFShj4MVXlXBZz3y9PqhSkg\n Iw2ZCfEDKAum5cuPSckh2ZhJ/30oxOsb9XIt2oK3jM925vXUR9sY3C0O0rZkjWYO0IAdlc\n Np8pjppA6mgCU3fT67rxek7A8d8Smrg=", "X-MC-Unique": "SkmBX1J0M3q4O48MzCq8PQ-1", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:mime-version:references:in-reply-to:from:date\n :message-id:subject:to:cc;\n bh=3OvtAqAVvatMfB4vEOyiSPFA9UyRgujmHMgayWb+6is=;\n b=Va1ZMSxEOQgEZhQHFYcn05Gm7pRSwS3UR4EZUb471YWgOq6KPXSpzsAJYTLlihWHnz\n d6olL9nu9DzRq08rFMYeaOesIfHZ5lgydG94Mu3b5FNyx5xfURwUHeq7BNxi3t49Tvpn\n 1by/d8mScoBnAh/CpzG1ZlLrq5bIHkVJ/x3HUmJpwKZWDxFqdpK6vL6g/Py32WAwXbbQ\n 5L+YMdrrS2+3iEr6S52eSOwCGkBUqrU4WDRTrnHY0zYpkWbRU+Xlp0BmxSE5Wyf1dbcT\n JjYW2rB6nvN6BTWh8WtnzXpZXdPnDdC2mYHNqGygWhIQ1/nRhWnald4okPQmIckETB1S\n q2WA==", "X-Gm-Message-State": "AOAM5335nFjWLoEzGypzoKzFEzP604UeTerusdXyup3p6LcV7HYJupEA\n 8fcLztQgsY0qvDnkgZhao2ZvNkhOipM2HUiVb82OgDD9D1T+UK1xT8vFR0JcRkMGfz/UI20dweX\n 8q0dte4K/y5rncZjNTeo=", "X-Received": [ "by 2002:a05:6102:249:: with SMTP id\n a9mr20321822vsq.198.1595361049871;\n Tue, 21 Jul 2020 12:50:49 -0700 (PDT)", "by 2002:a05:6102:249:: with SMTP id\n a9mr20321808vsq.198.1595361049530;\n Tue, 21 Jul 2020 12:50:49 -0700 (PDT)" ], "X-Google-Smtp-Source": "\n ABdhPJz1RWD3XEOzRPoQYYdaHu6TkHGDBlTaWUWKl7+Wn4kdAvF9i8MCu19hFZDUeiJj4r5h2cljgiMzqYVSBqMqwQw=", "MIME-Version": "1.0", "References": "<20200720120938.34660-1-harry.van.haaren@intel.com>\n <20200720143829.46280-1-harry.van.haaren@intel.com>\n <DB6PR0802MB221605308636E4B7039B491798780@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "In-Reply-To": "\n <DB6PR0802MB221605308636E4B7039B491798780@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "From": "David Marchand <david.marchand@redhat.com>", "Date": "Tue, 21 Jul 2020 21:50:38 +0200", "Message-ID": "\n <CAJFAV8z5FO5YXHrMqAwLvqFHtnRKh9gmH3wXGh_dRsyH2BOE0g@mail.gmail.com>", "To": "Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>", "Cc": "Harry van Haaren <harry.van.haaren@intel.com>,\n \"dev@dpdk.org\" <dev@dpdk.org>,\n \"igor.romanov@oktetlabs.ru\" <igor.romanov@oktetlabs.ru>,\n \"ferruh.yigit@intel.com\" <ferruh.yigit@intel.com>, nd <nd@arm.com>,\n \"aconole@redhat.com\" <aconole@redhat.com>,\n \"l.wojciechow@partner.samsung.com\" <l.wojciechow@partner.samsung.com>,\n Phil Yang <Phil.Yang@arm.com>", "X-Mimecast-Spam-Score": "0", "X-Mimecast-Originator": "redhat.com", "Content-Type": "text/plain; charset=\"UTF-8\"", "Subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 116446, "web_url": "https://patches.dpdk.org/comment/116446/", "msgid": "<DB6PR0802MB22168049F09178D21EE613FE98780@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/DB6PR0802MB22168049F09178D21EE613FE98780@DB6PR0802MB2216.eurprd08.prod.outlook.com", "date": "2020-07-21T20:23:58", "subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "submitter": { "id": 1045, "url": "https://patches.dpdk.org/api/people/1045/?format=api", "name": "Honnappa Nagarahalli", "email": "honnappa.nagarahalli@arm.com" }, "content": "> Subject: Re: [PATCH v2 1/2] service: add API to retrieve service core active\n> \n> On Tue, Jul 21, 2020 at 9:43 PM Honnappa Nagarahalli\n> <Honnappa.Nagarahalli@arm.com> wrote:\n> > > @@ -457,6 +458,8 @@ service_runner_func(void *arg)\n> > > const int lcore = rte_lcore_id();\n> > > struct core_state *cs = &lcore_states[lcore];\n> > >\n> > > + __atomic_store_n(&cs->thread_active, 1, __ATOMIC_RELAXED);\n> > Essentially, we have to ensure that all the memory operations are contained\n> within both stores (this one and the one below) to 'thread_active'.\n> > We should use __ATOMIC_SEQ_CST, which will avoid any memory\n> operations from getting hoisted above this line.\n> > Performance should not be an issue as it will get executed only when the\n> service core is started.\n> > It would be good to add comment reasoning the memory order used.\n> >\n> > Also, what happens if the user calls 'rte_service_lcore_active' just before the\n> above statement is executed? It might not be a valid use case, but it is good\n> to document the race conditions and correct sequence of API calls.\n> >\n> > > +\n> > > /* runstate act as the guard variable. Use load-acquire\n> > > * memory order here to synchronize with store-release\n> > > * in runstate update functions.\n> > > @@ -475,9 +478,20 @@ service_runner_func(void *arg)\n> > > cs->loops++;\n> > > }\n> > >\n> > > + __atomic_store_n(&cs->thread_active, 0, __ATOMIC_RELAXED);\n> > __ATOMIC_RELEASE would be enough. But, __ATOMIC_SEQ_CST should not\n> cause any performance issues.\n> \n> But then are we missing a ACQUIRE barrier in rte_service_lcore_active?\n+1 (see below)\n\n> \n> \n> >\n> > > return 0;\n> > > }\n> > >\n> > > +int32_t\n> > > +rte_service_lcore_active(uint32_t lcore) {\n> > > + if (lcore >= RTE_MAX_LCORE || !lcore_states[lcore].is_service_core)\n> > > + return -EINVAL;\n> > > +\n> > > + return __atomic_load_n(&lcore_states[lcore].thread_active,\n> > > + __ATOMIC_RELAXED); }\nAgree with David. ACQUIRE is the safer order to ensure memory operations are not hoisted in cases like:\n\nif (rte_service_lcore_active(lcore) == 0) {\n\t<do something>; /* Do not allow the memory operations to hoist above 'if' statement */\n}\n\n> > > +\n> > > int32_t\n> > > rte_service_lcore_count(void)\n> > > {\n> > > diff --git a/lib/librte_eal/include/rte_service.h\n> > > b/lib/librte_eal/include/rte_service.h\n> > > index e2d0a6dd3..f7134b5c0 100644\n> > > --- a/lib/librte_eal/include/rte_service.h\n> > > +++ b/lib/librte_eal/include/rte_service.h\n> > > @@ -261,6 +261,15 @@ int32_t rte_service_lcore_start(uint32_t lcore_id);\n> > > */\n> > > int32_t rte_service_lcore_stop(uint32_t lcore_id);\n> > >\n> > > +/**\n> > > + * Reports if a service lcore is currently running.\n> > > + * @retval 0 Service thread is not active, and has been returned to EAL.\n> > > + * @retval 1 Service thread is in the service core polling loop.\n> > > + * @retval -EINVAL Invalid *lcore_id* provided.\n> > > + */\n> > > +__rte_experimental\n> > > +int32_t rte_service_lcore_active(uint32_t lcore_id);\n> > Would 'rte_service_lcore_may_be_active' better? It would be inline with\n> 'rte_service_may_be_active'?\n> >\n> > I think we need additional documentation for 'rte_service_lcore_stop' to\n> indicate that the caller should not assume that the service thread on the lcore\n> has stopped running and should call the above API to check.\n> \n> +1\n> Additional documentation can't hurt.\n> \n> \n> --\n> David Marchand", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 0B9ADA0526;\n\tTue, 21 Jul 2020 22:24:08 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id CB84E1C068;\n\tTue, 21 Jul 2020 22:24:07 +0200 (CEST)", "from EUR04-VI1-obe.outbound.protection.outlook.com\n (mail-eopbgr80057.outbound.protection.outlook.com [40.107.8.57])\n by dpdk.org (Postfix) with ESMTP id 632251C030\n for <dev@dpdk.org>; Tue, 21 Jul 2020 22:24:07 +0200 (CEST)", "from AM6PR04CA0006.eurprd04.prod.outlook.com (2603:10a6:20b:92::19)\n by VE1PR08MB4799.eurprd08.prod.outlook.com (2603:10a6:802:ad::18)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.25; Tue, 21 Jul\n 2020 20:24:05 +0000", "from AM5EUR03FT021.eop-EUR03.prod.protection.outlook.com\n (2603:10a6:20b:92:cafe::ac) by AM6PR04CA0006.outlook.office365.com\n (2603:10a6:20b:92::19) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.21 via Frontend\n Transport; Tue, 21 Jul 2020 20:24:05 +0000", "from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by\n AM5EUR03FT021.mail.protection.outlook.com (10.152.16.105) with\n Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.3195.18 via Frontend Transport; Tue, 21 Jul 2020 20:24:05 +0000", "(\"Tessian outbound 1dc58800d5dd:v62\");\n Tue, 21 Jul 2020 20:24:05 +0000", "from cf3cf653d0d4.1\n by 64aa7808-outbound-1.mta.getcheckrecipient.com id\n D6DD8968-2BDB-4923-8656-771708E34769.1;\n Tue, 21 Jul 2020 20:24:00 +0000", "from EUR03-DB5-obe.outbound.protection.outlook.com\n by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id\n cf3cf653d0d4.1\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);\n Tue, 21 Jul 2020 20:24:00 +0000", "from DB6PR0802MB2216.eurprd08.prod.outlook.com (2603:10a6:4:85::9)\n by DB6PR08MB2791.eurprd08.prod.outlook.com (2603:10a6:6:17::32) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.17; Tue, 21 Jul\n 2020 20:23:58 +0000", "from DB6PR0802MB2216.eurprd08.prod.outlook.com\n ([fe80::9d1d:207b:e89d:199d]) by DB6PR0802MB2216.eurprd08.prod.outlook.com\n ([fe80::9d1d:207b:e89d:199d%10]) with mapi id 15.20.3195.026; Tue, 21 Jul\n 2020 20:23:58 +0000" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;\n s=selector2-armh-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=eppt74ycw4y3iWjlSxHYlqbCDFc3ZJafr/kiI43bmKY=;\n b=+M6iLl6o2NAiQGfAeKEhQKXZD9wWaRiM/ptpgLknE4uYIlRMaeajIIw7V4DOJTFefj6fwtbqOVC7CieGUgN7DA8j5Q52cwWjnjRc8cfrD8pYjkJg8TJwi2Jq145hgQwTzoV0UckK+1627H1xzbVz1sTaT6fyc7rCDceJZQW0TFY=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;\n s=selector2-armh-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=eppt74ycw4y3iWjlSxHYlqbCDFc3ZJafr/kiI43bmKY=;\n b=+M6iLl6o2NAiQGfAeKEhQKXZD9wWaRiM/ptpgLknE4uYIlRMaeajIIw7V4DOJTFefj6fwtbqOVC7CieGUgN7DA8j5Q52cwWjnjRc8cfrD8pYjkJg8TJwi2Jq145hgQwTzoV0UckK+1627H1xzbVz1sTaT6fyc7rCDceJZQW0TFY=" ], "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 63.35.35.123)\n smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified)\n header.d=armh.onmicrosoft.com;dpdk.org; dmarc=bestguesspass action=none\n header.from=arm.com;", "Received-SPF": "Pass (protection.outlook.com: domain of arm.com designates\n 63.35.35.123 as permitted sender) receiver=protection.outlook.com;\n client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;", "X-CR-MTA-TID": "64aa7808", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=Bry1VmPq5AcT090/4+iVrg/wBUdZoq+b4fRpLfhIjpt22Fj+6rqn5wn99qx6PZjBnf8X9akMTTZCpbrIIdI6of7BhKibipvgbwtAQ3eZbecv/Zeu15xfFaxeELL3rrPAAWLXzo+Phq/xj7zTG1Ot8V5aP/8SdAyfF9JelwPvQ1b65BXYQ15XnRrJNflImRqm4YuohLC1SrnP87N//CiUJOFV0pK8Mp0ttNA8tMkkkfBAY3Qco9vAXZIq9oc43AAofQuC+UDGtc2nTMVmdC8mpgPyI+6ATgEmjaj0iuFR7DStTorlXUJ++EhFkw2K3yEZmDBil2jPnGfGUJ2T4QVzcA==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=eppt74ycw4y3iWjlSxHYlqbCDFc3ZJafr/kiI43bmKY=;\n b=GhPNcCBmo6JGZcw/7lwC1guCom9YrO16HCbMM7doGUbC2KEb8ogYE7ynGb/ClG7HR+Oi5V1Yzmp5qWELEdeomjux8bpsNMZAFDYqOAgtJrXTkWKlIFMHmkXGeruRakGfhrCVmd8T1ry1Ssf3AX8y2b0FHUcxsXg27YOGkmda33fo0OiiG7qSF/PBAHIKQ4AlG5IP+HQxSvHUbQATcq5LZ/DGu+qy1qViXQDPpwGOoDO/6o/DV3nBlfxL19YBjoHDU1c8MlDmUHQUPvKoaFNMDSimOS+XXZc8h/Ay3KUBNXDicYceXyHh8UBV+7GluBO9tPJrRtcBZv+JokXbKfG01g==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass\n header.d=arm.com; arc=none", "From": "Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>", "To": "David Marchand <david.marchand@redhat.com>", "CC": "Harry van Haaren <harry.van.haaren@intel.com>, \"dev@dpdk.org\"\n <dev@dpdk.org>, \"igor.romanov@oktetlabs.ru\" <igor.romanov@oktetlabs.ru>,\n \"ferruh.yigit@intel.com\" <ferruh.yigit@intel.com>, nd <nd@arm.com>,\n \"aconole@redhat.com\" <aconole@redhat.com>, \"l.wojciechow@partner.samsung.com\"\n <l.wojciechow@partner.samsung.com>, Phil Yang <Phil.Yang@arm.com>, Honnappa\n Nagarahalli <Honnappa.Nagarahalli@arm.com>, nd <nd@arm.com>", "Thread-Topic": "[PATCH v2 1/2] service: add API to retrieve service core active", "Thread-Index": "AQHWXqNVej80cd/qgEGtgKmAQ2W1m6kSZL2AgAAOZQCAAAeIkA==", "Date": "Tue, 21 Jul 2020 20:23:58 +0000", "Message-ID": "\n <DB6PR0802MB22168049F09178D21EE613FE98780@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "References": "<20200720120938.34660-1-harry.van.haaren@intel.com>\n <20200720143829.46280-1-harry.van.haaren@intel.com>\n <DB6PR0802MB221605308636E4B7039B491798780@DB6PR0802MB2216.eurprd08.prod.outlook.com>\n <CAJFAV8z5FO5YXHrMqAwLvqFHtnRKh9gmH3wXGh_dRsyH2BOE0g@mail.gmail.com>", "In-Reply-To": "\n <CAJFAV8z5FO5YXHrMqAwLvqFHtnRKh9gmH3wXGh_dRsyH2BOE0g@mail.gmail.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-ts-tracking-id": "5906cc43-91f5-41d5-86fd-46ae7e961c5d.0", "x-checkrecipientchecked": "true", "Authentication-Results-Original": "redhat.com; dkim=none (message not signed)\n header.d=none;redhat.com; dmarc=none action=none header.from=arm.com;", "x-originating-ip": "[107.77.221.153]", "x-ms-publictraffictype": "Email", "X-MS-Office365-Filtering-HT": "Tenant", "X-MS-Office365-Filtering-Correlation-Id": "0c282de2-f2ca-49c0-253c-08d82db403cf", "x-ms-traffictypediagnostic": "DB6PR08MB2791:|VE1PR08MB4799:", "x-ms-exchange-transport-forked": "True", "X-Microsoft-Antispam-PRVS": "\n <VE1PR08MB4799E7F6058E745E5A2E436398780@VE1PR08MB4799.eurprd08.prod.outlook.com>", "x-checkrecipientrouted": "true", "nodisclaimer": "true", "x-ms-oob-tlc-oobclassifiers": "OLM:10000;OLM:10000;", "X-MS-Exchange-SenderADCheck": "1", "X-Microsoft-Antispam-Untrusted": "BCL:0;", "X-Microsoft-Antispam-Message-Info-Original": "\n f3qLfYOxMVwI1cO0ZP4oZUXrlquEOSJ5y2qxoL062Qe8mS65NU4irAGpciuzEOD7V3/rNSIvNwKLpYMrnaNCGhDO7+YAb8/EaYog8DOzI+Lm+nUpDnLrZnTYGh8zY0pTGML4EpscvJVhhnMs6rYlxAs1jS9Mv9scoqaCxjBhcc04UKy0+xeDYuLL37Y9xuR3oJChIXKbRPE+sqVMbEDvzPQuCzdbOR/mPMmE58HA6IDGfRYtwaCNXP479v/aUspAqcryjQnyXaarDA1N43G4KY8/LOsOoHAJWpPlBQFj3FsC3d0VrNy7f1Q+9PbxHqJz3ndnUyXQwbqlI2CzrhWshksmY6F9b4ORdsvIw1vcs4kiFRhQWtD6cQ+Aj3r4+BMJ", "X-Forefront-Antispam-Report-Untrusted": "CIP:255.255.255.255; CTRY:; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0802MB2216.eurprd08.prod.outlook.com;\n PTR:; CAT:NONE; SFTY:;\n SFS:(4636009)(396003)(376002)(136003)(346002)(39860400002)(366004)(26005)(6916009)(8936002)(478600001)(2906002)(66946007)(76116006)(86362001)(52536014)(66556008)(66446008)(6506007)(55016002)(64756008)(66476007)(5660300002)(9686003)(53546011)(54906003)(186003)(83380400001)(7696005)(316002)(71200400001)(8676002)(33656002)(4326008)(87944003);\n DIR:OUT; SFP:1101;", "x-ms-exchange-antispam-messagedata": "\n VXwKvkFI0kXwdOxSauVmno7gQK6x8DZOgebM01cB6u6HZjKqw6kaQ+iqRVTbXiujQmgaP7eebZUTCaxSQiSWi5Bg4rnka6XPisYKTJZk1qrJkpvVhLwf8L8+liyqQ2PrXVAj7OeggLU5gUpKM67E5ftcLcLMwDxJhbgicM+qbjoFBwkcP/o9l6yXPBeokFP7sXh4ImrHFrftTk3Gsuhs7/j1N9s/hoDaE6t0sxHQw9Ck/7DLC11Zx1SuR7iDYpgn8lMEcBdqUchSa4rh2dk/W6VEk94jrEmXWW0XtvufwmMCvciB7peKgbtVlSCYsjuVdCmfAMqdXiLYH8Ks8c8S9BKyCz30OZEMpH81U8OClel946cm3/7KKxFw9xZTB8b5zci+sg07LWCoVTR1oMtRJAPPxnAIQ4tBq7XpUr0aix3ViZpb8QCKYMziU4Bl2UsQfnZnBzZDYGZZq3nnYOU7y4mIQEIWR4/SJXC0ONETgHPCI2d9+d0NgLI4cy1i1zlp", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "MIME-Version": "1.0", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [ "DB6PR08MB2791", "VE1PR08MB4799" ], "Original-Authentication-Results": "redhat.com; dkim=none (message not signed)\n header.d=none;redhat.com; dmarc=none action=none header.from=arm.com;", "X-EOPAttributedMessage": "0", "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n AM5EUR03FT021.eop-EUR03.prod.protection.outlook.com", "X-Forefront-Antispam-Report": "CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com;\n PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:;\n SFS:(4636009)(376002)(346002)(136003)(39860400002)(396003)(46966005)(86362001)(70206006)(478600001)(7696005)(53546011)(52536014)(5660300002)(70586007)(26005)(6506007)(336012)(47076004)(83380400001)(8936002)(8676002)(54906003)(36906005)(186003)(2906002)(4326008)(356005)(81166007)(6862004)(82310400002)(9686003)(316002)(55016002)(33656002)(82740400003)(87944003);\n DIR:OUT; SFP:1101;", "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n 84dc9da5-0e63-4e0f-fc2f-08d82db3ffaf", "X-Microsoft-Antispam": "BCL:0;", "X-Microsoft-Antispam-Message-Info": "\n Mz2FVzOB17CqhgEt+ryddfDeOl1wXE3QenFmcZRWZzlVphEz9V4v6cgKcP+t8aK03wHHgVS40/iQKx9Yrj8BRDfLl0kXKQVVmw8KO19HR1nVgOCDw5t9dA/7Kqg+LrZLVap9q57348ahiIdpz3Y3e0dzRn8UsFaIHv3eaD6D2n88BaVbHsSQh6a7fqlpqJdyzkmcW89u+3ieuEQTvXVQU1H5OLm52anRozeQwIU6gbd+9kY5EKtKyik/6nnsA98b/upcW9Ny/jhCYR2LF1/Zh6uVDNDvfo5POrIuNRLzNLddMPROxNVr0335YA+pUjuGHcTG63LLj9k1f3nwN7ReiChVS+tswvP5lZ/SiH3iWGj6f90+T/4xynXAoxUkAQ8Sav+xpj/ohPuNykD64znHU6IGFP5Xhdf88jHQBigVFsI=", "X-OriginatorOrg": "arm.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "21 Jul 2020 20:24:05.3495 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 0c282de2-f2ca-49c0-253c-08d82db403cf", "X-MS-Exchange-CrossTenant-Id": "f34e5979-57d9-4aaa-ad4d-b122a662184d", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123];\n Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n AM5EUR03FT021.eop-EUR03.prod.protection.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "Subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 116491, "web_url": "https://patches.dpdk.org/comment/116491/", "msgid": "<BYAPR11MB31439A888C989D82D303095CD7790@BYAPR11MB3143.namprd11.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/BYAPR11MB31439A888C989D82D303095CD7790@BYAPR11MB3143.namprd11.prod.outlook.com", "date": "2020-07-22T10:14:04", "subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "submitter": { "id": 317, "url": "https://patches.dpdk.org/api/people/317/?format=api", "name": "Van Haaren, Harry", "email": "harry.van.haaren@intel.com" }, "content": "> -----Original Message-----\n> From: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>\n> Sent: Tuesday, July 21, 2020 9:24 PM\n> To: David Marchand <david.marchand@redhat.com>\n> Cc: Van Haaren, Harry <harry.van.haaren@intel.com>; dev@dpdk.org;\n> igor.romanov@oktetlabs.ru; Yigit, Ferruh <ferruh.yigit@intel.com>; nd\n> <nd@arm.com>; aconole@redhat.com; l.wojciechow@partner.samsung.com; Phil\n> Yang <Phil.Yang@arm.com>; Honnappa Nagarahalli\n> <Honnappa.Nagarahalli@arm.com>; nd <nd@arm.com>\n> Subject: RE: [PATCH v2 1/2] service: add API to retrieve service core active\n> \n> > Subject: Re: [PATCH v2 1/2] service: add API to retrieve service core active\n> >\n> > On Tue, Jul 21, 2020 at 9:43 PM Honnappa Nagarahalli\n> > <Honnappa.Nagarahalli@arm.com> wrote:\n> > > > @@ -457,6 +458,8 @@ service_runner_func(void *arg)\n> > > > const int lcore = rte_lcore_id();\n> > > > struct core_state *cs = &lcore_states[lcore];\n> > > >\n> > > > + __atomic_store_n(&cs->thread_active, 1, __ATOMIC_RELAXED);\n> > > Essentially, we have to ensure that all the memory operations are contained\n> > within both stores (this one and the one below) to 'thread_active'.\n> > > We should use __ATOMIC_SEQ_CST, which will avoid any memory\n> > operations from getting hoisted above this line.\n> > > Performance should not be an issue as it will get executed only when the\n> > service core is started.\n> > > It would be good to add comment reasoning the memory order used.\n\nOK, will update to SEQ_CST in v3, and add comment.\n\n> > > Also, what happens if the user calls 'rte_service_lcore_active' just before the\n> > above statement is executed? It might not be a valid use case, but it is good\n> > to document the race conditions and correct sequence of API calls.\n> > >\n> > > > +\n> > > > /* runstate act as the guard variable. Use load-acquire\n> > > > * memory order here to synchronize with store-release\n> > > > * in runstate update functions.\n> > > > @@ -475,9 +478,20 @@ service_runner_func(void *arg)\n> > > > cs->loops++;\n> > > > }\n> > > >\n> > > > + __atomic_store_n(&cs->thread_active, 0, __ATOMIC_RELAXED);\n> > > __ATOMIC_RELEASE would be enough. But, __ATOMIC_SEQ_CST should not\n> > cause any performance issues.\n> >\n> > But then are we missing a ACQUIRE barrier in rte_service_lcore_active?\n> +1 (see below)\n\nOK, will update to SEQ_CST in v3, with comment.\n\n\n> > > > +int32_t\n> > > > +rte_service_lcore_active(uint32_t lcore) {\n> > > > + if (lcore >= RTE_MAX_LCORE || !lcore_states[lcore].is_service_core)\n> > > > + return -EINVAL;\n> > > > +\n> > > > + return __atomic_load_n(&lcore_states[lcore].thread_active,\n> > > > + __ATOMIC_RELAXED); }\n> Agree with David. ACQUIRE is the safer order to ensure memory operations are not\n> hoisted in cases like:\n> \n> if (rte_service_lcore_active(lcore) == 0) {\n> \t<do something>; /* Do not allow the memory operations to hoist above 'if'\n> statement */\n> }\n\nOK, will change to ACQUIRE in v3.\n\n<snip>\n\n> > > > +/**\n> > > > + * Reports if a service lcore is currently running.\n> > > > + * @retval 0 Service thread is not active, and has been returned to EAL.\n> > > > + * @retval 1 Service thread is in the service core polling loop.\n> > > > + * @retval -EINVAL Invalid *lcore_id* provided.\n> > > > + */\n> > > > +__rte_experimental\n> > > > +int32_t rte_service_lcore_active(uint32_t lcore_id);\n> > > Would 'rte_service_lcore_may_be_active' better? It would be inline with\n> > 'rte_service_may_be_active'?\n\nI think the implementation behind the API is different, so I think _may_be_ is not appropriate for service_lcore_active, keeping same function name for v3.\n\nrte_service_lcore_active() checks at a particular point in the calling thread if another thread is active *at that time*. It is either active or not. This is defined, it is deterministic in that the result is either yes or no, and there is no ambiguity at any given check. You're right the value can change *just* after the check - but at the time of the check the answer was deterministic.\n\nrte_service_may_be_active() checks if a service *could* be run by a service core. It is not deterministic. A service lcore only sets a service as \"active on lcore\" (or not active) when it polls it - this opens a window of nondeterministic result. When a runstate is set to off, there is a window of \"unknown\" before we know certainly that the service is not run on a service core anymore. That is why I believe the _may_be_ is appropriate for this API, it shows this non determinism.\n\n> > > I think we need additional documentation for 'rte_service_lcore_stop' to\n> > indicate that the caller should not assume that the service thread on the lcore\n> > has stopped running and should call the above API to check.\n> >\n> > +1\n> > Additional documentation can't hurt.\n\nWill add a section to the _stop() and _lcore_active() in doxygen for v3.", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id E0A7CA0526;\n\tWed, 22 Jul 2020 12:14:13 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 84DA51BFD1;\n\tWed, 22 Jul 2020 12:14:12 +0200 (CEST)", "from mga05.intel.com (mga05.intel.com [192.55.52.43])\n by dpdk.org (Postfix) with ESMTP id 5B2AC1BE90\n for <dev@dpdk.org>; Wed, 22 Jul 2020 12:14:10 +0200 (CEST)", "from fmsmga004.fm.intel.com ([10.253.24.48])\n by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 22 Jul 2020 03:14:09 -0700", "from fmsmsx603.amr.corp.intel.com ([10.18.126.83])\n by fmsmga004.fm.intel.com with ESMTP; 22 Jul 2020 03:14:09 -0700", "from fmsmsx612.amr.corp.intel.com (10.18.126.92) by\n fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.1.1713.5; Wed, 22 Jul 2020 03:14:08 -0700", "from FMSEDG001.ED.cps.intel.com (10.1.192.133) by\n fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5\n via Frontend Transport; Wed, 22 Jul 2020 03:14:08 -0700", "from NAM10-DM6-obe.outbound.protection.outlook.com (104.47.58.100)\n by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (TLS) id\n 14.3.439.0; Wed, 22 Jul 2020 03:14:08 -0700", "from BYAPR11MB3143.namprd11.prod.outlook.com (2603:10b6:a03:92::32)\n by BY5PR11MB4196.namprd11.prod.outlook.com (2603:10b6:a03:1ce::13)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.23; Wed, 22 Jul\n 2020 10:14:04 +0000", "from BYAPR11MB3143.namprd11.prod.outlook.com\n ([fe80::9c6b:5ce:b551:8678]) by BYAPR11MB3143.namprd11.prod.outlook.com\n ([fe80::9c6b:5ce:b551:8678%4]) with mapi id 15.20.3195.026; Wed, 22 Jul 2020\n 10:14:04 +0000" ], "IronPort-SDR": [ "\n lcmkO+nSIGiNQ8vfO+XaYhcKhuJLAH7Yt2KcaxD49kldzpFHUmWRSkjCrUTwECHWbcxzaV12eR\n hKKyDDJtErww==", "\n LPGHceu4sY/b0tp5V/vWe+ti2boCgy5HTbqUdztwElsbC+oAJwTppKaafiu3C9hGZVznlvSHuj\n r83RSww7M9Tw==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9689\"; a=\"235166539\"", "E=Sophos;i=\"5.75,381,1589266800\"; d=\"scan'208\";a=\"235166539\"", "E=Sophos;i=\"5.75,381,1589266800\"; d=\"scan'208\";a=\"310574889\"" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=CJzlrfygSI3FqojBDZbz3AeEMvoq64Tm5opuXcMhJVxsKkFLg+Joro9DecohTJW4Mkl24ytBx7lD0Tiyueo3mbkiAL5f+ib9k6OCjulo6RW+C10OIeaUeE3+lPQ4ELGYbB4yBjPG77430aZxTmj5C9wdSvqiac6ly5CmnIJS4HSbhnCLx6p/7nwsLa8J2OcQiA7O1PzozlNjl7VVTsL3BYYk+qdt5BISbmNZ5+kcKKem3I8FuLT3tAVFGlYicmTubNe5RIpRkBjBKhmHdF1Ew6Nsi2hY3Fk/m9zFrYTawV4Cjp8kkCcCNaRhemclpRMi+Bf4hCY9TIUZDBJLC3IHAA==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=cvj3BHrDJP/P5k6r1/YRa7nwKkNqugT5Q+rpXpl71T4=;\n b=OLMSzTvXosovau+bBoSH6I65YLRGpU0vITeu06PmmVd2WRs3Spx98lEoZVH9xRjj9AFmKXLcGU6TDr5hNpo1BTaHmlkdHPZTGZauI6HYbsM/pWCCgcgaehfJ2+3Y9+VzmO9p7QlPcey2yo5jTocgAmtKkKgs4nakXr3yj/kpOC9RKwt+dVpKZR6PliRUxYvVMAMTqfcxeMGESAudROD5SPS+aLvRH9Llyuh5xWKpiYILSK0oQ0m35Q3QJ5Jr0Y5148ioA9aQVJhm/gtSPQgy+UQnjXZFJ8h07V0ENEk4MPmjnTW1F8Q8zxjuVjN4RhkQEP+KVJdkf5TUG35aAPWvVA==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;\n dkim=pass header.d=intel.com; arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;\n s=selector2-intel-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=cvj3BHrDJP/P5k6r1/YRa7nwKkNqugT5Q+rpXpl71T4=;\n b=Hn7CdXaleFxzh4Zhk2pJCmQuqH8kI0YQRJNLAOS3OiRPyXme8OKZedtcFbezx84T0ffHjYml3+K47PhnMrF/N+xDIeRDN94vJrg92KYIO9dNwAaJ0OR8hTF3Ake7O3kXIFv2c20ASHcSxXsaoiM+16dEwIPnXl9KOcFisNE1yGk=", "From": "\"Van Haaren, Harry\" <harry.van.haaren@intel.com>", "To": "Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>, David Marchand\n <david.marchand@redhat.com>", "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, \"igor.romanov@oktetlabs.ru\"\n <igor.romanov@oktetlabs.ru>, \"Yigit, Ferruh\" <ferruh.yigit@intel.com>, nd\n <nd@arm.com>, \"aconole@redhat.com\" <aconole@redhat.com>,\n \"l.wojciechow@partner.samsung.com\" <l.wojciechow@partner.samsung.com>, \"Phil\n Yang\" <Phil.Yang@arm.com>, nd <nd@arm.com>", "Thread-Topic": "[PATCH v2 1/2] service: add API to retrieve service core active", "Thread-Index": "AQHWXqNR9vNSAKIDokyGgyxVBS1A5qkScQeAgAACHACAAAlQAIAA3vdQ", "Date": "Wed, 22 Jul 2020 10:14:04 +0000", "Message-ID": "\n <BYAPR11MB31439A888C989D82D303095CD7790@BYAPR11MB3143.namprd11.prod.outlook.com>", "References": "<20200720120938.34660-1-harry.van.haaren@intel.com>\n <20200720143829.46280-1-harry.van.haaren@intel.com>\n <DB6PR0802MB221605308636E4B7039B491798780@DB6PR0802MB2216.eurprd08.prod.outlook.com>\n <CAJFAV8z5FO5YXHrMqAwLvqFHtnRKh9gmH3wXGh_dRsyH2BOE0g@mail.gmail.com>\n <DB6PR0802MB22168049F09178D21EE613FE98780@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "In-Reply-To": "\n <DB6PR0802MB22168049F09178D21EE613FE98780@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "dlp-product": "dlpe-windows", "dlp-reaction": "no-action", "dlp-version": "11.2.0.6", "authentication-results": "arm.com; dkim=none (message not signed)\n header.d=none;arm.com; dmarc=none action=none header.from=intel.com;", "x-originating-ip": "[87.198.126.230]", "x-ms-publictraffictype": "Email", "x-ms-office365-filtering-correlation-id": "eaf49fde-8492-4f35-46bb-08d82e27f686", "x-ms-traffictypediagnostic": "BY5PR11MB4196:", "x-ld-processed": "46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr", "x-ms-exchange-transport-forked": "True", "x-microsoft-antispam-prvs": "\n <BY5PR11MB4196DBEABC3B31B52D75B3DED7790@BY5PR11MB4196.namprd11.prod.outlook.com>", "x-ms-oob-tlc-oobclassifiers": "OLM:10000;", "x-ms-exchange-senderadcheck": "1", "x-microsoft-antispam": "BCL:0;", "x-microsoft-antispam-message-info": "\n zXR8CLljmndTXaUZ8thheEf/nBnp9cpcn04LvwOeP0QW8bFxoA0rR+mOvw3emJyiZmEIa6bElJNkhpqNm62MMK+0/ENbf0yVwqqcbMfa/ki/vspGs5EF8yFhn0nxANiO786vfgjvmGgsU6EfCJS9LFTxEuT2ICHxhLWEufXZUY1f+LyAccOqHSg8NknE22UiihrPjBEwCDhJFwAMvm3ilBhQUvs1q2atOJSs5Oe++uVCfh/S/buxHy1B/TVwypJZY3P615R2sm3qWOJEdiz6RH4RjT8JjLjbUV0yqXrEj5wmC3psODcMf24K/o3qksyuJkn/cs3PsaUua6O3QbCXiSMLc1RBv01LAerJny+YakTQ9U6bVkYV8AnaEn6KpaDU", "x-forefront-antispam-report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:BYAPR11MB3143.namprd11.prod.outlook.com; PTR:; CAT:NONE;\n SFTY:;\n SFS:(4636009)(396003)(366004)(346002)(376002)(136003)(39860400002)(71200400001)(110136005)(316002)(478600001)(54906003)(26005)(6506007)(33656002)(186003)(86362001)(53546011)(83380400001)(2906002)(8676002)(8936002)(9686003)(76116006)(55016002)(52536014)(4326008)(7696005)(5660300002)(66946007)(66446008)(64756008)(66556008)(66476007)(87944003);\n DIR:OUT; SFP:1102;", "x-ms-exchange-antispam-messagedata": "\n vPooFnLahhabk+W9RFeJii1oGJzWy7iq1mwF2GolreAc5FE/Z3tjMLz4piUId9s0IBPgHUgZwYvd6LYUFpLkDO7FKwbr1R+AmVbCWsMoc75QXLNZjtCZmuc0qgMKgULIXI0hmwCjRI1ClQxBA0QBy0+JpxyFZMKUd5o53qxXTClsrE81GHj+nW/T6MhYGxgCUsMQNdYGNlbSQNG4tW8ECtDUNjZb9ELfpfqkzGXrTPxMbnFkEhbtHic5/q4nm1HTSK5Cs1yulDL3e5NTZnpNORquDOM+SfCBhohvreAoHPg6w+WdzdNoQyKzm2VqLkMcvp/B92y5/xtpLYYu084q6zD1+mJuuQHIRc2epq3bFrUb//aPzL/EdmfpA3chFBaHrG7cOaGGYTfLhArCAzX6mroePcIXungHObbFwVoyd88RKHMRAf8srB474jChI83UDoMMOtlWqYWaoh1fdYx6qRx2fI9X5lDgDAPUwmGin/KWdct+DushLgyTt/oRV60k", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "MIME-Version": "1.0", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-AuthSource": "BYAPR11MB3143.namprd11.prod.outlook.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n eaf49fde-8492-4f35-46bb-08d82e27f686", "X-MS-Exchange-CrossTenant-originalarrivaltime": "22 Jul 2020 10:14:04.6053 (UTC)", "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted", "X-MS-Exchange-CrossTenant-id": "46c98d88-e344-4ed4-8496-4ed7712e255d", "X-MS-Exchange-CrossTenant-mailboxtype": "HOSTED", "X-MS-Exchange-CrossTenant-userprincipalname": "\n YYWjTMjUUaK0cO6te3Wb5358EIP6fE8NEQ/bbIWu7Dr1oYpLcfMpMGx8vDVriBb55mJGUKiMsmOfi7H7/mkg2ohZMpIgzjUTVb5xu8sSPGk=", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BY5PR11MB4196", "X-OriginatorOrg": "intel.com", "Subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 116523, "web_url": "https://patches.dpdk.org/comment/116523/", "msgid": "<DB6PR0802MB2216F888CD92DD1F55357A8998790@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/DB6PR0802MB2216F888CD92DD1F55357A8998790@DB6PR0802MB2216.eurprd08.prod.outlook.com", "date": "2020-07-22T18:50:05", "subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "submitter": { "id": 1045, "url": "https://patches.dpdk.org/api/people/1045/?format=api", "name": "Honnappa Nagarahalli", "email": "honnappa.nagarahalli@arm.com" }, "content": "+ Gage (as I referring to his commit below)\n\n<snip>\n\n> \n> > > > > +/**\n> > > > > + * Reports if a service lcore is currently running.\n> > > > > + * @retval 0 Service thread is not active, and has been returned to\n> EAL.\n> > > > > + * @retval 1 Service thread is in the service core polling loop.\n> > > > > + * @retval -EINVAL Invalid *lcore_id* provided.\n> > > > > + */\n> > > > > +__rte_experimental\n> > > > > +int32_t rte_service_lcore_active(uint32_t lcore_id);\n> > > > Would 'rte_service_lcore_may_be_active' better? It would be inline\n> > > > with\n> > > 'rte_service_may_be_active'?\n> \n> I think the implementation behind the API is different, so I think _may_be_ is\n> not appropriate for service_lcore_active, keeping same function name for v3.\n> \n> rte_service_lcore_active() checks at a particular point in the calling thread if\n> another thread is active *at that time*. It is either active or not. This is\n> defined, it is deterministic in that the result is either yes or no, and there is\n> no ambiguity at any given check. You're right the value can change *just* after\n> the check - but at the time of the check the answer was deterministic.\n> \n> rte_service_may_be_active() checks if a service *could* be run by a service\n> core. It is not deterministic. A service lcore only sets a service as \"active on\n> lcore\" (or not active) when it polls it - this opens a window of\n> nondeterministic result. When a runstate is set to off, there is a window of\n> \"unknown\" before we know certainly that the service is not run on a service\n> core anymore. That is why I believe the _may_be_ is appropriate for this API,\n> it shows this non determinism.\n> \n\nI am looking at this from the application usage perspective (not the implementation). I am pointing to the similarity that exists with the new API. i.e. when 'rte_service_lcore_stop' is called, it is not known if the service lcore has stopped. If 'rte_service_lcore_active' returns 1, it indicates the lcore 'may be' active (the reasoning could be different in this case), it is not guaranteed that it is active by the time caller checks it. But when the API returns 0, it guarantees that the service lcore (assuming it was started and verified that it was started), has stopped.\n\nLooking at the commit e30dd31847d212cd1b766612cbd980c7d8240baa that added the 'rte_service_may_be_active', the use case is a mechanism to identify a quiescent state after a service was stopped.\nThe use case for the new API is also the same. We want to identify a quiescent state after a service lcore is stopped.\n\n<snip>", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 58113A0526;\n\tWed, 22 Jul 2020 20:50:18 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 5003A1BFD1;\n\tWed, 22 Jul 2020 20:50:17 +0200 (CEST)", "from EUR02-VE1-obe.outbound.protection.outlook.com\n (mail-eopbgr20047.outbound.protection.outlook.com [40.107.2.47])\n by dpdk.org (Postfix) with ESMTP id C00041BFBB\n for <dev@dpdk.org>; Wed, 22 Jul 2020 20:50:15 +0200 (CEST)", "from AM6PR10CA0025.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:209:89::38)\n by DB8PR08MB5275.eurprd08.prod.outlook.com (2603:10a6:10:ec::24) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.22; Wed, 22 Jul\n 2020 18:50:13 +0000", "from AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com\n (2603:10a6:209:89:cafe::4f) by AM6PR10CA0025.outlook.office365.com\n (2603:10a6:209:89::38) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.23 via Frontend\n Transport; Wed, 22 Jul 2020 18:50:13 +0000", "from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by\n AM5EUR03FT022.mail.protection.outlook.com (10.152.16.79) with\n Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.3216.10 via Frontend Transport; Wed, 22 Jul 2020 18:50:13 +0000", "(\"Tessian outbound 2ae7cfbcc26c:v62\");\n Wed, 22 Jul 2020 18:50:13 +0000", "from 4c0f443a8b70.3\n by 64aa7808-outbound-1.mta.getcheckrecipient.com id\n B8CDF1B3-0849-4A43-B976-E8F8D7DB6FDC.1;\n Wed, 22 Jul 2020 18:50:08 +0000", "from EUR04-HE1-obe.outbound.protection.outlook.com\n by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id\n 4c0f443a8b70.3\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);\n Wed, 22 Jul 2020 18:50:08 +0000", "from DB6PR0802MB2216.eurprd08.prod.outlook.com (2603:10a6:4:85::9)\n by DB8PR08MB4107.eurprd08.prod.outlook.com (2603:10a6:10:ac::13) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3195.25; Wed, 22 Jul\n 2020 18:50:05 +0000", "from DB6PR0802MB2216.eurprd08.prod.outlook.com\n ([fe80::9d1d:207b:e89d:199d]) by DB6PR0802MB2216.eurprd08.prod.outlook.com\n ([fe80::9d1d:207b:e89d:199d%10]) with mapi id 15.20.3195.028; Wed, 22 Jul\n 2020 18:50:05 +0000" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;\n s=selector2-armh-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=KH+Fh2TmXBWaxccuSZfCagRXSjd3EnWtHUQvC5OkxFA=;\n b=b9RQcr8K84otJA2+yt56DQW+4gBAiy42DW9CKPSdhu9/et6HTeJ6VwL39nTKiSJI3c4LRAkEnLilnw9g/27wpR6Uh+8SfyR0mmbgUO+PMYyoPNtfggDSqoA1TucOGLZ01ZfpM592RG3FacRv1081LWWkPmztN1hbWCJO3tTfunQ=", "v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com;\n s=selector2-armh-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=KH+Fh2TmXBWaxccuSZfCagRXSjd3EnWtHUQvC5OkxFA=;\n b=b9RQcr8K84otJA2+yt56DQW+4gBAiy42DW9CKPSdhu9/et6HTeJ6VwL39nTKiSJI3c4LRAkEnLilnw9g/27wpR6Uh+8SfyR0mmbgUO+PMYyoPNtfggDSqoA1TucOGLZ01ZfpM592RG3FacRv1081LWWkPmztN1hbWCJO3tTfunQ=" ], "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 63.35.35.123)\n smtp.mailfrom=arm.com; dpdk.org; dkim=pass (signature was verified)\n header.d=armh.onmicrosoft.com;dpdk.org; dmarc=bestguesspass action=none\n header.from=arm.com;", "Received-SPF": "Pass (protection.outlook.com: domain of arm.com designates\n 63.35.35.123 as permitted sender) receiver=protection.outlook.com;\n client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com;", "X-CR-MTA-TID": "64aa7808", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=CcAazQNcTp8aXxEpk7K6wPiTeCP8ELaFIkAE8S6BA/2AwkoTCwUkWmnAlcfj1dL+aOlVjWggG6u/xykYd1Gr6iQmuQxyG7zuDCFiauFxjl6ffGk0rG6e74F7leS4nP8wfhOa+q1ScSpPCwzJcIpMl5oJT/386RIjCh0LltRx4CJ/j0qKELgDva99fqcdA4u9SgzjF7tgW2MGYq94ncZGfCKe2TZqHZau210CfZVI6oYWwUpZmaPDPXrgwg8VzCCrgF+coLMub6x54Bzbh3h9ibTpXvrj53pqwkmhBivdGk81tJNDLnM9ug+IgAUag+WrFUOcoIzcuVEtRSlQXDrZKg==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=KH+Fh2TmXBWaxccuSZfCagRXSjd3EnWtHUQvC5OkxFA=;\n b=LSWEfSsIMXhoZmbSrhr+zeOvk8l/QDmCVNCJg8yqNeT86p4SRvintDvkhzm43ob929HBctKiZVMOIf1+uOAjGm8+KrY3hW7BK7qJC4Mo7V7nZ7atoLLWycelWrxCXrjjlsT0v4Qp+8Eo48KJLEO43OZFWnQr1rN338CJMAOT/BOJraUamdzb0IZ0apiu/oQL5xQXWFUbDuLUZSRS3CKKPGP+OAAC5j+A4Cl6Jd8+rr3hmw/+nZ1h7T15SWZ/LjxbGwJlstbA0FfvDIOiRP3FjQXKFxyUMuJb6MEg/uaU3fPv7aSKTxgwRJ9k75cuxSIMk5ALMxhtwVgHPl/zHU4+oQ==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass\n header.d=arm.com; arc=none", "From": "Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>", "To": "\"Van Haaren, Harry\" <harry.van.haaren@intel.com>, David Marchand\n <david.marchand@redhat.com>", "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, \"igor.romanov@oktetlabs.ru\"\n <igor.romanov@oktetlabs.ru>, \"Yigit, Ferruh\" <ferruh.yigit@intel.com>, nd\n <nd@arm.com>, \"aconole@redhat.com\" <aconole@redhat.com>,\n \"l.wojciechow@partner.samsung.com\" <l.wojciechow@partner.samsung.com>, Phil\n Yang <Phil.Yang@arm.com>, Honnappa Nagarahalli\n <Honnappa.Nagarahalli@arm.com>, Gage Eads <gage.eads@intel.com>, nd\n <nd@arm.com>", "Thread-Topic": "[PATCH v2 1/2] service: add API to retrieve service core active", "Thread-Index": "AQHWXqNVej80cd/qgEGtgKmAQ2W1m6kSZL2AgAAOZQCAAAeIkIAA6bYAgACCm5A=", "Date": "Wed, 22 Jul 2020 18:50:05 +0000", "Message-ID": "\n <DB6PR0802MB2216F888CD92DD1F55357A8998790@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "References": "<20200720120938.34660-1-harry.van.haaren@intel.com>\n <20200720143829.46280-1-harry.van.haaren@intel.com>\n <DB6PR0802MB221605308636E4B7039B491798780@DB6PR0802MB2216.eurprd08.prod.outlook.com>\n <CAJFAV8z5FO5YXHrMqAwLvqFHtnRKh9gmH3wXGh_dRsyH2BOE0g@mail.gmail.com>\n <DB6PR0802MB22168049F09178D21EE613FE98780@DB6PR0802MB2216.eurprd08.prod.outlook.com>\n <BYAPR11MB31439A888C989D82D303095CD7790@BYAPR11MB3143.namprd11.prod.outlook.com>", "In-Reply-To": "\n <BYAPR11MB31439A888C989D82D303095CD7790@BYAPR11MB3143.namprd11.prod.outlook.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-ts-tracking-id": "b58f1ff8-fbc8-49e1-9d28-20926b44ccd7.0", "x-checkrecipientchecked": "true", "Authentication-Results-Original": "intel.com; dkim=none (message not signed)\n header.d=none;intel.com; dmarc=none action=none header.from=arm.com;", "x-originating-ip": "[70.112.90.121]", "x-ms-publictraffictype": "Email", "X-MS-Office365-Filtering-HT": "Tenant", "X-MS-Office365-Filtering-Correlation-Id": "4efb0f73-5708-4c80-6016-08d82e701141", "x-ms-traffictypediagnostic": "DB8PR08MB4107:|DB8PR08MB5275:", "x-ms-exchange-transport-forked": "True", "X-Microsoft-Antispam-PRVS": "\n <DB8PR08MB52755EDDF990B4F8572A4F6B98790@DB8PR08MB5275.eurprd08.prod.outlook.com>", "x-checkrecipientrouted": "true", "nodisclaimer": "true", "x-ms-oob-tlc-oobclassifiers": "OLM:10000;OLM:10000;", "X-MS-Exchange-SenderADCheck": "1", "X-Microsoft-Antispam-Untrusted": "BCL:0;", "X-Microsoft-Antispam-Message-Info-Original": "\n 0DBcgowdNxpFlkzI9wgTqKiUfRLRLqNxNqy1P/MFD3GV1qTPlcUkAdztanrdMF29kMErUxSjDKw3wXmnpGbmSgFpdynKwY8VNDmf2JSMzsF1ClwIT9G8CLHUUQos8xhk+jECxWkfUdz7qZ/tuRmKC+3y1rgkhvmnByXtOlg4VEgspbUuGh3msdd/wh+9CMM/yKsrt87hkp/rn0YiBH5OORter77i7ONXxYawr6PLwW5872Dl8nhHGRsVZUFvfIW4LDVFQD7Y3HMt2f/iPwhbyqpidZCbara6/RLc6zsoXl/Hpk+JeUPezB+GzekJAqBts7y7Ai9QpMwoytqPn2UhBw==", "X-Forefront-Antispam-Report-Untrusted": "CIP:255.255.255.255; CTRY:; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0802MB2216.eurprd08.prod.outlook.com;\n PTR:; CAT:NONE; SFTY:;\n SFS:(4636009)(396003)(366004)(346002)(136003)(39860400002)(376002)(76116006)(86362001)(478600001)(55016002)(64756008)(5660300002)(186003)(66476007)(66556008)(7696005)(54906003)(9686003)(8936002)(66946007)(66446008)(83380400001)(8676002)(33656002)(26005)(110136005)(52536014)(71200400001)(2906002)(6506007)(316002)(4326008);\n DIR:OUT; SFP:1101;", "x-ms-exchange-antispam-messagedata": "\n LrSec5Ko5YsMBl1FZAC8S/r2TEOO6GuIr1FFh+XzaC/5jATuKir0LEfwfGsxoee8PtBps413o0NZq4f7nfzE9fIuq5r0HrE0Hxm+q0KnsQi866g7RKGbs42S6o5UYhfxQIuF1MqSozKVSf3HO6GEmBEFZSI+Rzu2NfTGTmeru91yoiRGpzQoTElK0LZBQnivs5gntP/EuAISMoj6ExTwwzpUQERM3SvAQg+QsQx+qOB1qWUv9cX4w66pM1nNIB+lkEA7bZ1Kz2s83l5vsg+p2Zogt7+f0WnSWxHg+Eh8erdu1WhzjN0QecTjURJO5YfL5djIKzXTc/yxWt4Kan5OjFrgOdvT8uK6WGGcsEpwQCYoJLqYOiDAJpkP077rncu4iEWi9IUAKjAGnHJq96v5TvXZbXjubKfBfBheeSOeIeM0cnc7qZd5leQ5zsmKxy21Tw1DDeI+Kv6RKcLbKp11H/3IIX/vafzUQfqaSe1pPzbALq5ZBPddOHnWJJF4inWr", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "MIME-Version": "1.0", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [ "DB8PR08MB4107", "DB8PR08MB5275" ], "Original-Authentication-Results": "intel.com; dkim=none (message not signed)\n header.d=none;intel.com; dmarc=none action=none header.from=arm.com;", "X-EOPAttributedMessage": "0", "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com", "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n a52611e7-57d9-4584-38f4-08d82e700c92", "X-Microsoft-Antispam": "BCL:0;", "X-Microsoft-Antispam-Message-Info": "\n 6envjRMfLk1jOIQeS3AlySww8X64kiVM2oCIdiQ43SlW4Ski4n3ZYhEWzobu8HgUqio75jFSvz7HwnZSLQzMURMBXto5wn0jwHFWa4v/js91ywZTy1nP8t5kwkCcpYCpD4T8z3xoxewk3M5gjWCCnK/b+ugWep7dzXuUXoUrdhbHw9TC1u5RA7h/n4ZYjec0JMNsVFRay5795p7l7QJiNK8Xa10LcHpyLocZltpTGq2CwzzcBQKX05RdPHdPoLZ/v13pdVl9IqdYu8uSQwz0/AgK5AjJCCRR+qLihj2syOINP0zK+V/kNY+n4sefnA5Ic2zSdRemhl7sC6rCVNMNUFtuTmvU+8yg50fy0WcUVcsH5pIDJ+74Um+RSZ7BtqfaF9jwG8D9tOf4OiGZTAz5Rg==", "X-Forefront-Antispam-Report": "CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com;\n PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:;\n SFS:(4636009)(136003)(346002)(376002)(396003)(39860400002)(46966005)(186003)(8676002)(52536014)(83380400001)(36906005)(2906002)(6506007)(26005)(8936002)(478600001)(316002)(5660300002)(81166007)(70206006)(70586007)(7696005)(9686003)(55016002)(336012)(82310400002)(110136005)(54906003)(4326008)(86362001)(356005)(82740400003)(33656002)(47076004);\n DIR:OUT; SFP:1101;", "X-OriginatorOrg": "arm.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "22 Jul 2020 18:50:13.2917 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 4efb0f73-5708-4c80-6016-08d82e701141", "X-MS-Exchange-CrossTenant-Id": "f34e5979-57d9-4aaa-ad4d-b122a662184d", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123];\n Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n AM5EUR03FT022.eop-EUR03.prod.protection.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "Subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null }, { "id": 116560, "web_url": "https://patches.dpdk.org/comment/116560/", "msgid": "<BYAPR11MB3143B266E153E23ED9CC0994D7760@BYAPR11MB3143.namprd11.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/BYAPR11MB3143B266E153E23ED9CC0994D7760@BYAPR11MB3143.namprd11.prod.outlook.com", "date": "2020-07-23T16:59:03", "subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "submitter": { "id": 317, "url": "https://patches.dpdk.org/api/people/317/?format=api", "name": "Van Haaren, Harry", "email": "harry.van.haaren@intel.com" }, "content": "> -----Original Message-----\n> From: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>\n> Sent: Wednesday, July 22, 2020 7:50 PM\n> To: Van Haaren, Harry <harry.van.haaren@intel.com>; David Marchand\n> <david.marchand@redhat.com>\n> Cc: dev@dpdk.org; igor.romanov@oktetlabs.ru; Yigit, Ferruh\n> <ferruh.yigit@intel.com>; nd <nd@arm.com>; aconole@redhat.com;\n> l.wojciechow@partner.samsung.com; Phil Yang <Phil.Yang@arm.com>;\n> Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>; Eads, Gage\n> <gage.eads@intel.com>; nd <nd@arm.com>\n> Subject: RE: [PATCH v2 1/2] service: add API to retrieve service core active\n> \n> + Gage (as I referring to his commit below)\n> \n> <snip>\n> \n> >\n> > > > > > +/**\n> > > > > > + * Reports if a service lcore is currently running.\n> > > > > > + * @retval 0 Service thread is not active, and has been returned to\n> > EAL.\n> > > > > > + * @retval 1 Service thread is in the service core polling loop.\n> > > > > > + * @retval -EINVAL Invalid *lcore_id* provided.\n> > > > > > + */\n> > > > > > +__rte_experimental\n> > > > > > +int32_t rte_service_lcore_active(uint32_t lcore_id);\n> > > > > Would 'rte_service_lcore_may_be_active' better? It would be inline\n> > > > > with\n> > > > 'rte_service_may_be_active'?\n> >\n> > I think the implementation behind the API is different, so I think _may_be_ is\n> > not appropriate for service_lcore_active, keeping same function name for v3.\n> >\n> > rte_service_lcore_active() checks at a particular point in the calling thread if\n> > another thread is active *at that time*. It is either active or not. This is\n> > defined, it is deterministic in that the result is either yes or no, and there is\n> > no ambiguity at any given check. You're right the value can change *just* after\n> > the check - but at the time of the check the answer was deterministic.\n> >\n> > rte_service_may_be_active() checks if a service *could* be run by a service\n> > core. It is not deterministic. A service lcore only sets a service as \"active on\n> > lcore\" (or not active) when it polls it - this opens a window of\n> > nondeterministic result. When a runstate is set to off, there is a window of\n> > \"unknown\" before we know certainly that the service is not run on a service\n> > core anymore. That is why I believe the _may_be_ is appropriate for this API,\n> > it shows this non determinism.\n> >\n> \n> I am looking at this from the application usage perspective (not the\n> implementation). I am pointing to the similarity that exists with the new API. i.e.\n> when 'rte_service_lcore_stop' is called, it is not known if the service lcore has\n> stopped. If 'rte_service_lcore_active' returns 1, it indicates the lcore 'may be'\n> active (the reasoning could be different in this case), it is not guaranteed that it\n> is active by the time caller checks it. But when the API returns 0, it guarantees\n> that the service lcore (assuming it was started and verified that it was started),\n> has stopped.\n> \n> Looking at the commit e30dd31847d212cd1b766612cbd980c7d8240baa that\n> added the 'rte_service_may_be_active', the use case is a mechanism to identify a\n> quiescent state after a service was stopped.\n> The use case for the new API is also the same. We want to identify a quiescent\n> state after a service lcore is stopped.\n> \n> <snip>\n\nSure - if you feel strongly that we need the _may_be_ to focus the end-users\nattention that this is a cross-thread check and has some quiescent property, lets\nadd it to err on the side of obvious. Will change API name for v3.\n\nSaw the other feedback on patches too - will incorporate and send ASAP, might need\ntill tomorrow to get it done.", "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id D44BEA0521;\n\tThu, 23 Jul 2020 18:59:10 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 36D9B1BFBA;\n\tThu, 23 Jul 2020 18:59:10 +0200 (CEST)", "from mga04.intel.com (mga04.intel.com [192.55.52.120])\n by dpdk.org (Postfix) with ESMTP id 25D011BF7B\n for <dev@dpdk.org>; Thu, 23 Jul 2020 18:59:08 +0200 (CEST)", "from orsmga005.jf.intel.com ([10.7.209.41])\n by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 23 Jul 2020 09:59:08 -0700", "from fmsmsx108.amr.corp.intel.com ([10.18.124.206])\n by orsmga005.jf.intel.com with ESMTP; 23 Jul 2020 09:59:07 -0700", "from FMSEDG002.ED.cps.intel.com (10.1.192.134) by\n FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS)\n id 14.3.439.0; Thu, 23 Jul 2020 09:59:06 -0700", "from NAM11-BN8-obe.outbound.protection.outlook.com (104.47.58.172)\n by edgegateway.intel.com (192.55.55.69) with Microsoft SMTP Server (TLS) id\n 14.3.439.0; Thu, 23 Jul 2020 09:59:07 -0700", "from BYAPR11MB3143.namprd11.prod.outlook.com (2603:10b6:a03:92::32)\n by BY5PR11MB4119.namprd11.prod.outlook.com (2603:10b6:a03:190::15)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3216.24; Thu, 23 Jul\n 2020 16:59:03 +0000", "from BYAPR11MB3143.namprd11.prod.outlook.com\n ([fe80::9c6b:5ce:b551:8678]) by BYAPR11MB3143.namprd11.prod.outlook.com\n ([fe80::9c6b:5ce:b551:8678%4]) with mapi id 15.20.3195.028; Thu, 23 Jul 2020\n 16:59:03 +0000" ], "IronPort-SDR": [ "\n gzR57c6wxswwE7eondlefIAU24hWD9+3eJCZ2FOQ0gnoRNwkHN8QWzMJoilP9fDnBGcbFbtaxV\n 6WKeLDy9FgyQ==", "\n rHMZx05RsZspb5aE25ZQMBPUOaCoanuLiwwJfq8itgU0poCDd03DY1erS0UwnRKNIlzovcIGUK\n +MpTOqpJxVBg==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9691\"; a=\"148069957\"", "E=Sophos;i=\"5.75,387,1589266800\"; d=\"scan'208\";a=\"148069957\"", "E=Sophos;i=\"5.75,387,1589266800\"; d=\"scan'208\";a=\"462926514\"" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=U0F0GXzDjfw0t7OtPPtXaam8cLc/oS+ZrnEdoTBq04lDR4nwi6T7I+j8cPiNaqjmPAFLmhhxVYlVHF/4h1oxg6/rjIJBSZ0f+C7nKiqoKTKL6FeUz/LrDbcbUgbBXRfD68dmZgowLmMkRinBdqlIrkNH5Lvsz2m8Bi5HHpHt8P7GK5lgDcwGrobfwnFlCg6uSAko+xLIkCkcocCkKvmN7p+zTJarE2IUfNxxVxkUkuK2NBSrVBnXumzuukvYrwHXKtmkd5NXqiBWabXEc5aFMClTCK24fJrXBQ+QAK+au91+94mHcR6Y9CzeU0D6AOqzS91QmGaKBoMyutzBEtR52A==", "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=xU0jPAj0MmoOmPL7aIxmERUgzxfGtN0G+Ih48pIX9iY=;\n b=Q/IY448WxdeiJE3JKaXL9Jv8EOo3nS+fuwecAZu7a+oeTnBcm1aANN+i4f/r+hqwfnHZvGZpAvJ3p4Qs7lAbFBjN+BOVe704sEO5ylw3HnpZnQG2gnFrEkxI3O4KYOXaXY4HkLH9iVMRV3Q8UJf9gM/QhDXYyWkIe0iFTlRV9iQAiherLhB/4od2qAle6l1YPQQW4Wvv+vSF6zQtn6LQRI1GGSQqEbNGQC5HUkOu8yR+j0FwyHlMoedIA9JJ6/xZGI810ZTpVHmXP5rV4OaqF97ScVmmHFpHCzRLBXnzy93uwMl9YLqqe1GoeC+lXcDPxFhYP5zBSQkY25FOsRMXBw==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com;\n dkim=pass header.d=intel.com; arc=none", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com;\n s=selector2-intel-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=xU0jPAj0MmoOmPL7aIxmERUgzxfGtN0G+Ih48pIX9iY=;\n b=LsFTw3f0xEoW8B7E46lyvw3fB24/buFANN9yDZysroA0/khui52aWE5unF8SwuWhhJ5i5H7R4iSqdrKlvw0V5B64SdEN0pqpphOs72gR1jyhaVofl5yqAG+HHPBYxlKdc1I+SeWe2GI7T/OMreXo5HCw3U1G1o1uzHP4Zte9Oo4=", "From": "\"Van Haaren, Harry\" <harry.van.haaren@intel.com>", "To": "Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>, David Marchand\n <david.marchand@redhat.com>", "CC": "\"dev@dpdk.org\" <dev@dpdk.org>, \"igor.romanov@oktetlabs.ru\"\n <igor.romanov@oktetlabs.ru>, \"Yigit, Ferruh\" <ferruh.yigit@intel.com>, nd\n <nd@arm.com>, \"aconole@redhat.com\" <aconole@redhat.com>,\n \"l.wojciechow@partner.samsung.com\" <l.wojciechow@partner.samsung.com>, \"Phil\n Yang\" <Phil.Yang@arm.com>, \"Eads, Gage\" <gage.eads@intel.com>, nd\n <nd@arm.com>", "Thread-Topic": "[PATCH v2 1/2] service: add API to retrieve service core active", "Thread-Index": "\n AQHWXqNR9vNSAKIDokyGgyxVBS1A5qkScQeAgAACHACAAAlQAIAA3vdQgACZIoCAAXKEwA==", "Date": "Thu, 23 Jul 2020 16:59:03 +0000", "Message-ID": "\n <BYAPR11MB3143B266E153E23ED9CC0994D7760@BYAPR11MB3143.namprd11.prod.outlook.com>", "References": "<20200720120938.34660-1-harry.van.haaren@intel.com>\n <20200720143829.46280-1-harry.van.haaren@intel.com>\n <DB6PR0802MB221605308636E4B7039B491798780@DB6PR0802MB2216.eurprd08.prod.outlook.com>\n <CAJFAV8z5FO5YXHrMqAwLvqFHtnRKh9gmH3wXGh_dRsyH2BOE0g@mail.gmail.com>\n <DB6PR0802MB22168049F09178D21EE613FE98780@DB6PR0802MB2216.eurprd08.prod.outlook.com>\n <BYAPR11MB31439A888C989D82D303095CD7790@BYAPR11MB3143.namprd11.prod.outlook.com>\n <DB6PR0802MB2216F888CD92DD1F55357A8998790@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "In-Reply-To": "\n <DB6PR0802MB2216F888CD92DD1F55357A8998790@DB6PR0802MB2216.eurprd08.prod.outlook.com>", "Accept-Language": "en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "dlp-product": "dlpe-windows", "dlp-reaction": "no-action", "dlp-version": "11.2.0.6", "authentication-results": "arm.com; dkim=none (message not signed)\n header.d=none;arm.com; dmarc=none action=none header.from=intel.com;", "x-originating-ip": "[87.198.126.230]", "x-ms-publictraffictype": "Email", "x-ms-office365-filtering-correlation-id": "1ab63795-4e8f-4f73-15ed-08d82f29b456", "x-ms-traffictypediagnostic": "BY5PR11MB4119:", "x-ld-processed": "46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr", "x-ms-exchange-transport-forked": "True", "x-microsoft-antispam-prvs": "\n <BY5PR11MB41199A3373006A4A7D5731E4D7760@BY5PR11MB4119.namprd11.prod.outlook.com>", "x-ms-oob-tlc-oobclassifiers": "OLM:10000;", "x-ms-exchange-senderadcheck": "1", "x-microsoft-antispam": "BCL:0;", "x-microsoft-antispam-message-info": "\n Cz5BNOVSsuk5xB7t7+eU2D7saQ/ZtnM8zztR2UJmGxLY6W4UfJaqUMg8zwpITVcOUlyuEX+3wDjeFjxD/ocfpwhs9o9ioVCO/vygrjf0niMQFDAsP8wQ1fTByUvm1G1YRaO2bwT/NLXbJaja4ENrDM6xhS3FmYNoMlpy9W+xHMz/zeUpthXotidy7pL5E1xx8G3uREJG+19sl5yt15ZJcRZ2E6XgHOOkkA8E7A4OL++nhJvTsuGBXrvQqrKGxpxJXARIveap5Mxkd4NEMKqGXOEbtAeeC8qsxV4GKehSfdGs4JXjlaINJSf+KuTFd3IPM7oNiZxXJS3bXooTlnwGgA==", "x-forefront-antispam-report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM; H:BYAPR11MB3143.namprd11.prod.outlook.com; PTR:; CAT:NONE;\n SFTY:;\n SFS:(4636009)(136003)(39860400002)(376002)(366004)(396003)(346002)(33656002)(83380400001)(66476007)(478600001)(4326008)(76116006)(86362001)(64756008)(66446008)(66556008)(66946007)(8936002)(7696005)(53546011)(316002)(110136005)(26005)(8676002)(9686003)(5660300002)(54906003)(55016002)(71200400001)(6506007)(2906002)(52536014)(186003);\n DIR:OUT; SFP:1102;", "x-ms-exchange-antispam-messagedata": "\n 62fMZJ9o41WQ9HnRJSI2KW5qYSObj3R81iwM7HnUobqPZAzJvN/2anmMW3e/nIboWTat4+9Mo8wv8CJHSCDukew3747vl/ZbPO5LgCTUGguCzmxDZtvdkSBC65syl6t+lTbYhnEt67YiddbD2L1CC3lo7GVsPWVtVC4/UnGqF99fU13GjvZYBaIPhaMhb7jtrStrpXZmqs0EWt+5VD7hBk+laPqi6zTRpftsgwaCwVbM9jMXxqVJ00QD3BYKQsi2Kk+HKDOpVk7y3n5SzekPZ/TooBbf8KSvDbehuTLOvnnrNr4Ga+wuvmtIlUMfY4mJulWgrm+bmgnCp7R9DqbWloqR4Zh0T5iJrZZCP3uq+ns3FOzvISrDY8NtbIXpR0o2KojehyyYailkhho5z8u+kaZkiafsrqqtxclKmmIwBMxWQVr5yH1OwjrZjHWLHX7knKxGtPZ47qIxwxiZP81C1sgGuq1sE3tOA3rBC0QdnVMmu9IHeMAkITFdne1ZBQDy", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "MIME-Version": "1.0", "X-MS-Exchange-CrossTenant-AuthAs": "Internal", "X-MS-Exchange-CrossTenant-AuthSource": "BYAPR11MB3143.namprd11.prod.outlook.com", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 1ab63795-4e8f-4f73-15ed-08d82f29b456", "X-MS-Exchange-CrossTenant-originalarrivaltime": "23 Jul 2020 16:59:03.7111 (UTC)", "X-MS-Exchange-CrossTenant-fromentityheader": "Hosted", "X-MS-Exchange-CrossTenant-id": "46c98d88-e344-4ed4-8496-4ed7712e255d", "X-MS-Exchange-CrossTenant-mailboxtype": "HOSTED", "X-MS-Exchange-CrossTenant-userprincipalname": "\n cOZUKLIqXlaLjjW8N/acGUeeWKrXVv2a3rsMSlDoB4/TdvSpRaT9bt1LMYY+QkS0j/ZyTFh7l7UG2QsuUSc+jhxvCLB+U27vj6D4gjUuFsU=", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BY5PR11MB4119", "X-OriginatorOrg": "intel.com", "Subject": "Re: [dpdk-dev] [PATCH v2 1/2] service: add API to retrieve service\n\tcore active", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "addressed": null } ]