List patch comments

GET /api/patches/73424/comments/?format=api&order=submitter
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Link: 
<https://patches.dpdk.org/api/patches/73424/comments/?format=api&order=submitter&page=1>; rel="first",
<https://patches.dpdk.org/api/patches/73424/comments/?format=api&order=submitter&page=1>; rel="last"
Vary: Accept
[ { "id": 115384, "web_url": "https://patches.dpdk.org/comment/115384/", "msgid": "<VE1PR08MB464017605A7E64CD8BF59EC1E9660@VE1PR08MB4640.eurprd08.prod.outlook.com>", "list_archive_url": "https://inbox.dpdk.org/dev/VE1PR08MB464017605A7E64CD8BF59EC1E9660@VE1PR08MB4640.eurprd08.prod.outlook.com", "date": "2020-07-07T15:56:53", "subject": "Re: [dpdk-dev] [PATCH v3 4/4] eventdev: relax smp barriers with C11\n atomics", "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: Jerin Jacob <jerinjacobk@gmail.com>\n> Sent: Tuesday, July 7, 2020 10:30 PM\n> To: Phil Yang <Phil.Yang@arm.com>\n> Cc: thomas@monjalon.net; Erik Gabriel Carrillo <erik.g.carrillo@intel.com>;\n> dpdk-dev <dev@dpdk.org>; jerinj@marvell.com; Honnappa Nagarahalli\n> <Honnappa.Nagarahalli@arm.com>; David Christensen\n> <drc@linux.vnet.ibm.com>; Ruifeng Wang <Ruifeng.Wang@arm.com>;\n> Dharmik Thakkar <Dharmik.Thakkar@arm.com>; nd <nd@arm.com>; David\n> Marchand <david.marchand@redhat.com>; Ray Kinsella <mdr@ashroe.eu>;\n> Neil Horman <nhorman@tuxdriver.com>; dodji@redhat.com\n> Subject: Re: [dpdk-dev] [PATCH v3 4/4] eventdev: relax smp barriers with\n> C11 atomics\n> \n> On Tue, Jul 7, 2020 at 4:45 PM Phil Yang <phil.yang@arm.com> wrote:\n> >\n> > The impl_opaque field is shared between the timer arm and cancel\n> > operations. Meanwhile, the state flag acts as a guard variable to\n> > make sure the update of impl_opaque is synchronized. The original\n> > code uses rte_smp barriers to achieve that. This patch uses C11\n> > atomics with an explicit one-way memory barrier instead of full\n> > barriers rte_smp_w/rmb() to avoid the unnecessary barrier on aarch64.\n> >\n> > Since compilers can generate the same instructions for volatile and\n> > non-volatile variable in C11 __atomics built-ins, so remain the volatile\n> > keyword in front of state enum to avoid the ABI break issue.\n> >\n> > Signed-off-by: Phil Yang <phil.yang@arm.com>\n> > Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>\n> > Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>\n> > Acked-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>\n> \n> \n> Could you fix the following:\n> \n> WARNING:TYPO_SPELLING: 'opague' may be misspelled - perhaps 'opaque'?\n> #184: FILE: lib/librte_eventdev/rte_event_timer_adapter.c:1161:\n> + * specific opague data under the correct state.\nDone. \n\nThanks,\nPhil", "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 0014EA00BE;\n\tTue, 7 Jul 2020 17:57:04 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id D67BC1DE99;\n\tTue, 7 Jul 2020 17:57:04 +0200 (CEST)", "from EUR03-VE1-obe.outbound.protection.outlook.com\n (mail-eopbgr50071.outbound.protection.outlook.com [40.107.5.71])\n by dpdk.org (Postfix) with ESMTP id 71EC81D664\n for <dev@dpdk.org>; Tue, 7 Jul 2020 17:57:03 +0200 (CEST)", "from AM5P194CA0012.EURP194.PROD.OUTLOOK.COM (2603:10a6:203:8f::22)\n by AM4PR0802MB2322.eurprd08.prod.outlook.com (2603:10a6:200:62::20) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.28; Tue, 7 Jul\n 2020 15:57:01 +0000", "from AM5EUR03FT062.eop-EUR03.prod.protection.outlook.com\n (2603:10a6:203:8f:cafe::37) by AM5P194CA0012.outlook.office365.com\n (2603:10a6:203:8f::22) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.22 via Frontend\n Transport; Tue, 7 Jul 2020 15:57:01 +0000", "from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by\n AM5EUR03FT062.mail.protection.outlook.com (10.152.17.120) with\n Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.3153.24 via Frontend Transport; Tue, 7 Jul 2020 15:57:01 +0000", "(\"Tessian outbound 2dd9eeca983c:v62\");\n Tue, 07 Jul 2020 15:57:01 +0000", "from 282417addad1.2\n by 64aa7808-outbound-1.mta.getcheckrecipient.com id\n 66A9ABA8-9E90-4694-A510-E36A11FF930E.1;\n Tue, 07 Jul 2020 15:56:56 +0000", "from EUR04-VI1-obe.outbound.protection.outlook.com\n by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id\n 282417addad1.2\n (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384);\n Tue, 07 Jul 2020 15:56:56 +0000", "from VE1PR08MB4640.eurprd08.prod.outlook.com (2603:10a6:802:b2::11)\n by VI1PR08MB4416.eurprd08.prod.outlook.com (2603:10a6:803:ff::12)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3153.28; Tue, 7 Jul\n 2020 15:56:54 +0000", "from VE1PR08MB4640.eurprd08.prod.outlook.com\n ([fe80::c2e:9ccb:a690:6863]) by VE1PR08MB4640.eurprd08.prod.outlook.com\n ([fe80::c2e:9ccb:a690:6863%6]) with mapi id 15.20.3153.029; Tue, 7 Jul 2020\n 15:56:54 +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=RDCr0lNhq86Uv+OFKwPWGCZI0nbhxf/AvUo4NCzx+Z0=;\n b=76QIA3ytmsiRUCnRF7WTMxOcDmzOiMO7K1ga4ObQWP8yKJtkTUZChw2ntS3WBwgHZRxZ0IqgfkzCbxNGUFE4cZ0pDII9zSRLmMqyWLQLZwZzwqigt/0tbW2gZnY7UlHnSZeZi5netq/Io1b4g7o/W47wKOBmBoN/9b2aYvR1xAI=", "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=RDCr0lNhq86Uv+OFKwPWGCZI0nbhxf/AvUo4NCzx+Z0=;\n b=76QIA3ytmsiRUCnRF7WTMxOcDmzOiMO7K1ga4ObQWP8yKJtkTUZChw2ntS3WBwgHZRxZ0IqgfkzCbxNGUFE4cZ0pDII9zSRLmMqyWLQLZwZzwqigt/0tbW2gZnY7UlHnSZeZi5netq/Io1b4g7o/W47wKOBmBoN/9b2aYvR1xAI=" ], "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=XBOUgqi8lxGtmViCMd8Nb2cLSl6h8FyTgS6GumvLF3x1fxZvBicBzjKHSLZxCz/43gbOiIl8LGEhJgYSZzEU2WaVqy9QWF5QcandGzXuqNOiudqNV5Q2dk3boVPcrol+zazB8uvfcSsIvavf75S0FYQP+SzwNaR3z+WGT9MLTPand1+Xz5oD7N7ZcMdtTmyx6bNZTOSmmV8Fuhe8h7IsJrqj/58A0fAWwC3xOe3gcdYuIqeVIQII30ptKpXwYIvs69jA3cLTVLCtzdEvJn5U1yDjmFG2xRaAniopG5KTiBShYKu/KBx0g/rPLoOBr4bqHCXXsqhYozX2aLPw3PFaSg==", "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=RDCr0lNhq86Uv+OFKwPWGCZI0nbhxf/AvUo4NCzx+Z0=;\n b=PhiLBxFrkB7q/5bMLTyJPMxFB47iaY6wfjjHeGNvN4f01wGioHUlvPA3C2gNuUV7zb/DyqujFCmkz0RDee7Qho3XJAZygsVAb7l54HA8R2zbkFS2NeHtxBomm4mP2cTpsrybpUV7n8wrzpUQ126O4iBhX8BcMdZjXe2zEJd/2MlkYAZUS7rOektyTYyM31vI7PRcL7bYWZWBByO1zgbauAEuD6Q7OsPu/kk61sl5hMC3iUzyUHzOEAQzwVSpnlKxYXWhOHlvhlJo2AqK/hAOce3v9sXdLR9OaXKkFzBKPQWeA54Kmu3jPVjGEu2C4Pn7a6Ry/EjJy6l2VKxCoPgx4w==", "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": "Jerin Jacob <jerinjacobk@gmail.com>", "CC": "\"thomas@monjalon.net\" <thomas@monjalon.net>, Erik Gabriel Carrillo\n <erik.g.carrillo@intel.com>, dpdk-dev <dev@dpdk.org>, \"jerinj@marvell.com\"\n <jerinj@marvell.com>, Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>,\n David Christensen <drc@linux.vnet.ibm.com>, Ruifeng Wang\n <Ruifeng.Wang@arm.com>, Dharmik Thakkar <Dharmik.Thakkar@arm.com>, nd\n <nd@arm.com>, David Marchand <david.marchand@redhat.com>, Ray Kinsella\n <mdr@ashroe.eu>, Neil Horman <nhorman@tuxdriver.com>, \"dodji@redhat.com\"\n <dodji@redhat.com>", "Thread-Topic": "[dpdk-dev] [PATCH v3 4/4] eventdev: relax smp barriers with C11\n atomics", "Thread-Index": "AQHWVGstz2Ufalxq2EOENxAbsu7jbaj8RTnA", "Date": "Tue, 7 Jul 2020 15:56:53 +0000", "Message-ID": "\n <VE1PR08MB464017605A7E64CD8BF59EC1E9660@VE1PR08MB4640.eurprd08.prod.outlook.com>", "References": "<1593667604-12029-1-git-send-email-phil.yang@arm.com>\n <1594120403-17643-1-git-send-email-phil.yang@arm.com>\n <1594120403-17643-4-git-send-email-phil.yang@arm.com>\n <CALBAE1NnD_Ye3-fgPVjW-L_t8fEuhktJVf_-W3Sbj-tOiJAWOw@mail.gmail.com>", "In-Reply-To": "\n <CALBAE1NnD_Ye3-fgPVjW-L_t8fEuhktJVf_-W3Sbj-tOiJAWOw@mail.gmail.com>", "Accept-Language": "zh-CN, en-US", "Content-Language": "en-US", "X-MS-Has-Attach": "", "X-MS-TNEF-Correlator": "", "x-ts-tracking-id": "32e7a13d-08e0-4e35-80d9-17324a59edc9.0", "x-checkrecipientchecked": "true", "Authentication-Results-Original": "gmail.com; dkim=none (message not signed)\n header.d=none;gmail.com; dmarc=none action=none header.from=arm.com;", "x-originating-ip": "[203.126.0.111]", "x-ms-publictraffictype": "Email", "X-MS-Office365-Filtering-HT": "Tenant", "X-MS-Office365-Filtering-Correlation-Id": "e759c6b9-e161-45c7-a448-08d8228e6304", "x-ms-traffictypediagnostic": "VI1PR08MB4416:|AM4PR0802MB2322:", "x-ld-processed": "f34e5979-57d9-4aaa-ad4d-b122a662184d,ExtAddr", "x-ms-exchange-transport-forked": "True", "X-Microsoft-Antispam-PRVS": "\n <AM4PR0802MB23221EA3867593870E61346FE9660@AM4PR0802MB2322.eurprd08.prod.outlook.com>", "x-checkrecipientrouted": "true", "nodisclaimer": "true", "x-ms-oob-tlc-oobclassifiers": "OLM:8273;OLM:8273;", "x-forefront-prvs": [ "0457F11EAF", "0457F11EAF" ], "X-MS-Exchange-SenderADCheck": "1", "X-Microsoft-Antispam-Untrusted": "BCL:0;", "X-Microsoft-Antispam-Message-Info-Original": "\n SgDZjzrcTFr1kHAdAQSHqathrOkwXE3wF53YHNqSocpC/qgyC8u4cVF2du9EF+akWbtMvioRSJFScsfF4cLd4726o6E6p4Ks8U7uMFwPbp+zv9eAMJ766owi4NtFP1gWEfVKXvxOsy3I8jw6/rdrd2LdtuWCdEurgk4U4mQg9aP9drIYrYaOX2kydHP+yF3q8rEuDRGXEQzxT6rrJb7S5hHKCo0egt4Jviz9FlK3h+N25h3r8AVUl8tCFdbmbfQWGtsX7B13iZqjXKrUpG++M7Ets4HHjuC3AsVOCrwO6iXxZwHEUYhSM65TLS7xV66BGU7KGAsGNcVAvXarJezq7g==", "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)(376002)(346002)(136003)(366004)(39860400002)(396003)(6916009)(86362001)(33656002)(55016002)(5660300002)(52536014)(9686003)(26005)(6506007)(53546011)(71200400001)(66446008)(2906002)(186003)(316002)(54906003)(7696005)(478600001)(66946007)(66476007)(66556008)(64756008)(76116006)(8936002)(83380400001)(4326008)(8676002)(7416002);\n DIR:OUT; SFP:1101;", "x-ms-exchange-antispam-messagedata": "\n VWBCP3ioM3bmxISWzSV1HcO16WdSr6HZ0vr0nc6f8QKs0uT0TwUc2uQJSYxIK8f4z59f6P4oVnyrwEu/eOwiR4/1dndV9Kd2VHbMm2WcBIuVQiE9p32NxDMhqg8ATt9bLId9Us8E/IF1VFZnrfzvweVuTBldYAimVyD5SZKuLTBnzJTS9Ioy8K866RIU18dJojbxDEbxCFySXpdOtPz3Jqog2SysNgDKzGv4/fMb+1id8MzUnUblCkVnpBKdRZrZr5DOMA9xKP2SLStfmD/2PlQBsDExFubQjYDGMkZ0fJ1cFvYRk101KKAlZbSDQ1P2XoVkQ0DIPA7PFnw8GgN4hjoUU5vgPCX73PIOFDPiEPS8k8j4cEjMcFzVvOVMZ2WsaFpoiJecrmJEiwe/haMw4rxYa8sEsBk+MVWlAaQB/MccuYjrqaQ33L+vYIN63c43U7BpZGX6kEKT2yC6Gt2O4MxOUBbKC900GdII8MbdUV11+0C7hhpxExOGGKlVZvNC", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "MIME-Version": "1.0", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [ "VI1PR08MB4416", "AM4PR0802MB2322" ], "Original-Authentication-Results": "gmail.com; dkim=none (message not signed)\n header.d=none;gmail.com; dmarc=none action=none header.from=arm.com;", "X-EOPAttributedMessage": "0", "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n AM5EUR03FT062.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)(39860400002)(396003)(376002)(46966005)(70206006)(4326008)(8676002)(55016002)(9686003)(186003)(6862004)(26005)(86362001)(36906005)(6506007)(53546011)(107886003)(82740400003)(316002)(52536014)(8936002)(54906003)(5660300002)(82310400002)(356005)(33656002)(70586007)(478600001)(2906002)(7696005)(336012)(47076004)(83380400001)(81166007);\n DIR:OUT; SFP:1101;", "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n 6cdce0f2-9041-41ad-a2ac-08d8228e5e95", "X-Forefront-PRVS": [ "0457F11EAF", "0457F11EAF" ], "X-Microsoft-Antispam": "BCL:0;", "X-Microsoft-Antispam-Message-Info": "\n e9+THWHHfP3dyv1ZwgceB6WlB0b9xhev9e2HZzMqGqaqIVJx/gA6bML09XRtRdA7zFDE4iIlmowCbnVTSbl1Xmt+52b//IfSENb4ys6D58Mt2w/CzP2a4Kk9Iura+70F0HK0hlz6NUZKvVu4Uge0hvKdjqiSv5UC5U5bnmkNL//E4qbjuEXYXmigs8zI8x1g+66/MOEWb6mOW/cC7XyZvk+uka1e+pmwXhPewAixXnTW2cY4HlE72jVjns2mm7OH3KWKgCacNDSHcLS2IDZQxhcK/xulOVMgMfWQKLnmhnOc7RLz9guZqzGuwEClxDPm3e1BbDYWSgrMT6PqgUWBcvpu13DZPvNUAlwMUtfd3qFS7jRaISCsMys7RkLefHNqkwm0F2TWFcZIFGPnyO6Q0w==", "X-OriginatorOrg": "arm.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "07 Jul 2020 15:57:01.4294 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n e759c6b9-e161-45c7-a448-08d8228e6304", "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 AM5EUR03FT062.eop-EUR03.prod.protection.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "Subject": "Re: [dpdk-dev] [PATCH v3 4/4] eventdev: relax smp barriers with C11\n atomics", "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": 115372, "web_url": "https://patches.dpdk.org/comment/115372/", "msgid": "<CALBAE1NnD_Ye3-fgPVjW-L_t8fEuhktJVf_-W3Sbj-tOiJAWOw@mail.gmail.com>", "list_archive_url": "https://inbox.dpdk.org/dev/CALBAE1NnD_Ye3-fgPVjW-L_t8fEuhktJVf_-W3Sbj-tOiJAWOw@mail.gmail.com", "date": "2020-07-07T14:29:30", "subject": "Re: [dpdk-dev] [PATCH v3 4/4] eventdev: relax smp barriers with C11\n\tatomics", "submitter": { "id": 1270, "url": "https://patches.dpdk.org/api/people/1270/?format=api", "name": "Jerin Jacob", "email": "jerinjacobk@gmail.com" }, "content": "On Tue, Jul 7, 2020 at 4:45 PM Phil Yang <phil.yang@arm.com> wrote:\n>\n> The impl_opaque field is shared between the timer arm and cancel\n> operations. Meanwhile, the state flag acts as a guard variable to\n> make sure the update of impl_opaque is synchronized. The original\n> code uses rte_smp barriers to achieve that. This patch uses C11\n> atomics with an explicit one-way memory barrier instead of full\n> barriers rte_smp_w/rmb() to avoid the unnecessary barrier on aarch64.\n>\n> Since compilers can generate the same instructions for volatile and\n> non-volatile variable in C11 __atomics built-ins, so remain the volatile\n> keyword in front of state enum to avoid the ABI break issue.\n>\n> Signed-off-by: Phil Yang <phil.yang@arm.com>\n> Reviewed-by: Dharmik Thakkar <dharmik.thakkar@arm.com>\n> Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>\n> Acked-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>\n\n\nCould you fix the following:\n\nWARNING:TYPO_SPELLING: 'opague' may be misspelled - perhaps 'opaque'?\n#184: FILE: lib/librte_eventdev/rte_event_timer_adapter.c:1161:\n+ * specific opague data under the correct state.\n\ntotal: 0 errors, 1 warnings, 124 lines checked\n\n\n> ---\n> v3:\n> Fix ABI issue: revert to 'volatile enum rte_event_timer_state type state'.\n>\n> v2:\n> 1. Removed implementation-specific opaque data cleanup code.\n> 2. Replaced thread fence with atomic ACQURE/RELEASE ordering on state access.\n>\n> lib/librte_eventdev/rte_event_timer_adapter.c | 55 ++++++++++++++++++---------\n> 1 file changed, 37 insertions(+), 18 deletions(-)\n>\n> diff --git a/lib/librte_eventdev/rte_event_timer_adapter.c b/lib/librte_eventdev/rte_event_timer_adapter.c\n> index d75415c..eb2c93a 100644\n> --- a/lib/librte_eventdev/rte_event_timer_adapter.c\n> +++ b/lib/librte_eventdev/rte_event_timer_adapter.c\n> @@ -629,7 +629,8 @@ swtim_callback(struct rte_timer *tim)\n> sw->expired_timers[sw->n_expired_timers++] = tim;\n> sw->stats.evtim_exp_count++;\n>\n> - evtim->state = RTE_EVENT_TIMER_NOT_ARMED;\n> + __atomic_store_n(&evtim->state, RTE_EVENT_TIMER_NOT_ARMED,\n> + __ATOMIC_RELEASE);\n> }\n>\n> if (event_buffer_batch_ready(&sw->buffer)) {\n> @@ -1020,6 +1021,7 @@ __swtim_arm_burst(const struct rte_event_timer_adapter *adapter,\n> int n_lcores;\n> /* Timer list for this lcore is not in use. */\n> uint16_t exp_state = 0;\n> + enum rte_event_timer_state n_state;\n>\n> #ifdef RTE_LIBRTE_EVENTDEV_DEBUG\n> /* Check that the service is running. */\n> @@ -1060,30 +1062,36 @@ __swtim_arm_burst(const struct rte_event_timer_adapter *adapter,\n> }\n>\n> for (i = 0; i < nb_evtims; i++) {\n> - /* Don't modify the event timer state in these cases */\n> - if (evtims[i]->state == RTE_EVENT_TIMER_ARMED) {\n> + n_state = __atomic_load_n(&evtims[i]->state, __ATOMIC_ACQUIRE);\n> + if (n_state == RTE_EVENT_TIMER_ARMED) {\n> rte_errno = EALREADY;\n> break;\n> - } else if (!(evtims[i]->state == RTE_EVENT_TIMER_NOT_ARMED ||\n> - evtims[i]->state == RTE_EVENT_TIMER_CANCELED)) {\n> + } else if (!(n_state == RTE_EVENT_TIMER_NOT_ARMED ||\n> + n_state == RTE_EVENT_TIMER_CANCELED)) {\n> rte_errno = EINVAL;\n> break;\n> }\n>\n> ret = check_timeout(evtims[i], adapter);\n> if (unlikely(ret == -1)) {\n> - evtims[i]->state = RTE_EVENT_TIMER_ERROR_TOOLATE;\n> + __atomic_store_n(&evtims[i]->state,\n> + RTE_EVENT_TIMER_ERROR_TOOLATE,\n> + __ATOMIC_RELAXED);\n> rte_errno = EINVAL;\n> break;\n> } else if (unlikely(ret == -2)) {\n> - evtims[i]->state = RTE_EVENT_TIMER_ERROR_TOOEARLY;\n> + __atomic_store_n(&evtims[i]->state,\n> + RTE_EVENT_TIMER_ERROR_TOOEARLY,\n> + __ATOMIC_RELAXED);\n> rte_errno = EINVAL;\n> break;\n> }\n>\n> if (unlikely(check_destination_event_queue(evtims[i],\n> adapter) < 0)) {\n> - evtims[i]->state = RTE_EVENT_TIMER_ERROR;\n> + __atomic_store_n(&evtims[i]->state,\n> + RTE_EVENT_TIMER_ERROR,\n> + __ATOMIC_RELAXED);\n> rte_errno = EINVAL;\n> break;\n> }\n> @@ -1099,13 +1107,18 @@ __swtim_arm_burst(const struct rte_event_timer_adapter *adapter,\n> SINGLE, lcore_id, NULL, evtims[i]);\n> if (ret < 0) {\n> /* tim was in RUNNING or CONFIG state */\n> - evtims[i]->state = RTE_EVENT_TIMER_ERROR;\n> + __atomic_store_n(&evtims[i]->state,\n> + RTE_EVENT_TIMER_ERROR,\n> + __ATOMIC_RELEASE);\n> break;\n> }\n>\n> - rte_smp_wmb();\n> EVTIM_LOG_DBG(\"armed an event timer\");\n> - evtims[i]->state = RTE_EVENT_TIMER_ARMED;\n> + /* RELEASE ordering guarantees the adapter specific value\n> + * changes observed before the update of state.\n> + */\n> + __atomic_store_n(&evtims[i]->state, RTE_EVENT_TIMER_ARMED,\n> + __ATOMIC_RELEASE);\n> }\n>\n> if (i < nb_evtims)\n> @@ -1132,6 +1145,7 @@ swtim_cancel_burst(const struct rte_event_timer_adapter *adapter,\n> struct rte_timer *timp;\n> uint64_t opaque;\n> struct swtim *sw = swtim_pmd_priv(adapter);\n> + enum rte_event_timer_state n_state;\n>\n> #ifdef RTE_LIBRTE_EVENTDEV_DEBUG\n> /* Check that the service is running. */\n> @@ -1143,16 +1157,18 @@ swtim_cancel_burst(const struct rte_event_timer_adapter *adapter,\n>\n> for (i = 0; i < nb_evtims; i++) {\n> /* Don't modify the event timer state in these cases */\n> - if (evtims[i]->state == RTE_EVENT_TIMER_CANCELED) {\n> + /* ACQUIRE ordering guarantees the access of implementation\n> + * specific opague data under the correct state.\n> + */\n> + n_state = __atomic_load_n(&evtims[i]->state, __ATOMIC_ACQUIRE);\n> + if (n_state == RTE_EVENT_TIMER_CANCELED) {\n> rte_errno = EALREADY;\n> break;\n> - } else if (evtims[i]->state != RTE_EVENT_TIMER_ARMED) {\n> + } else if (n_state != RTE_EVENT_TIMER_ARMED) {\n> rte_errno = EINVAL;\n> break;\n> }\n>\n> - rte_smp_rmb();\n> -\n> opaque = evtims[i]->impl_opaque[0];\n> timp = (struct rte_timer *)(uintptr_t)opaque;\n> RTE_ASSERT(timp != NULL);\n> @@ -1166,9 +1182,12 @@ swtim_cancel_burst(const struct rte_event_timer_adapter *adapter,\n>\n> rte_mempool_put(sw->tim_pool, (void **)timp);\n>\n> - evtims[i]->state = RTE_EVENT_TIMER_CANCELED;\n> -\n> - rte_smp_wmb();\n> + /* The RELEASE ordering here pairs with atomic ordering\n> + * to make sure the state update data observed between\n> + * threads.\n> + */\n> + __atomic_store_n(&evtims[i]->state, RTE_EVENT_TIMER_CANCELED,\n> + __ATOMIC_RELEASE);\n> }\n>\n> return i;\n> --\n> 2.7.4\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 E8A69A00BE;\n\tTue, 7 Jul 2020 16:29:48 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 6D8181DD8D;\n\tTue, 7 Jul 2020 16:29:48 +0200 (CEST)", "from mail-io1-f66.google.com (mail-io1-f66.google.com\n [209.85.166.66]) by dpdk.org (Postfix) with ESMTP id 6A8B81DD05\n for <dev@dpdk.org>; Tue, 7 Jul 2020 16:29:47 +0200 (CEST)", "by mail-io1-f66.google.com with SMTP id v8so43271370iox.2\n for <dev@dpdk.org>; Tue, 07 Jul 2020 07:29:47 -0700 (PDT)" ], "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;\n h=mime-version:references:in-reply-to:from:date:message-id:subject:to\n :cc; bh=QTOnM0IV7LJF7be8xnCsiaToSQ5NTq6rWCc+sRTVXMM=;\n b=F/vSB3oN1DiIFcHcdeLlFJgm0DrS7KtmD0pYvV2ZzsbaceDbiOoEG8a3/ljQ6N5XuN\n ETkR7SnX+OtH0ei07XgwelvwxJ6AakgD6eGg9HmMY6uihH9cfAQJgQ+nl1qhCjOUkMge\n Ko/g9nd/Qm9eKqsUyopM10D69okfBp7PCyqfD4cbgCignZrOgpXzrXuE56XdacN8PUVc\n ZWeJlVhbaPqGc4NpDyz1dllzH9AElN65Cczxk84at1OPsvsotxG/A/M6nVcZY1l1nTV2\n 4GRPx3Mu015ta27/RNr8mieq3re46Jfu3Kg6kBYSkZhwA2UsKZbIHeZjpAgmm97ccZkh\n RK1g==", "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=QTOnM0IV7LJF7be8xnCsiaToSQ5NTq6rWCc+sRTVXMM=;\n b=RP9uwssgMrKciGsXeyWHievM6fzUmNbn6TATQPrCutXjENmDL9xYLJ3KS/HDhUkz34\n l1W0Qz1j5phfwGR31hynF0I3msMJ8gyWUdO+w0JVSglfqZpFJlL1OWvEzQDgHWmwf15p\n dJXvSdQkWk8nRjOKOAk6TdI4II4HeSRAXGSFBcu9IfZIUP8I/IrMcM77+SWK9SNIHmyo\n bz3cTJJ66z81zbAIN9yeLPyKa/RcaCJVlulPQprcUW4y0z2OiXp3n1cp31KDjLTEHICo\n Ij5ybOVAznDfDjRSekr2xl1DGrlwvcbNbYR2D7ogZvU98wEbtdbQqBeINIR+bRUBPku8\n IewA==", "X-Gm-Message-State": "AOAM532hTtD2+GWecmzhBo6/7dH1cJrQ+QcwBBbfuaDEtFZofXFO9aRG\n W3tCWDxGD1lq1GKM+N0wdGfLQoUJHYR0KHuMpVQ=", "X-Google-Smtp-Source": "\n ABdhPJzBwDVEvvGZjX0EanAE0O8uaDr2zRz5Ozi/fJKx/vxaIuugKWxT2L7RXoTzgT1v6+Gibbb8Q9vurX0x2V6efu4=", "X-Received": "by 2002:a02:cb59:: with SMTP id\n k25mr60007901jap.112.1594132186555;\n Tue, 07 Jul 2020 07:29:46 -0700 (PDT)", "MIME-Version": "1.0", "References": "<1593667604-12029-1-git-send-email-phil.yang@arm.com>\n <1594120403-17643-1-git-send-email-phil.yang@arm.com>\n <1594120403-17643-4-git-send-email-phil.yang@arm.com>", "In-Reply-To": "<1594120403-17643-4-git-send-email-phil.yang@arm.com>", "From": "Jerin Jacob <jerinjacobk@gmail.com>", "Date": "Tue, 7 Jul 2020 19:59:30 +0530", "Message-ID": "\n <CALBAE1NnD_Ye3-fgPVjW-L_t8fEuhktJVf_-W3Sbj-tOiJAWOw@mail.gmail.com>", "To": "Phil Yang <phil.yang@arm.com>", "Cc": "Thomas Monjalon <thomas@monjalon.net>,\n Erik Gabriel Carrillo <erik.g.carrillo@intel.com>,\n dpdk-dev <dev@dpdk.org>, Jerin Jacob <jerinj@marvell.com>,\n Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>,\n David Christensen <drc@linux.vnet.ibm.com>,\n \"Ruifeng Wang (Arm Technology China)\" <Ruifeng.Wang@arm.com>,\n Dharmik Thakkar <Dharmik.Thakkar@arm.com>, nd <nd@arm.com>,\n David Marchand <david.marchand@redhat.com>, Ray Kinsella <mdr@ashroe.eu>,\n Neil Horman <nhorman@tuxdriver.com>, dodji@redhat.com", "Content-Type": "text/plain; charset=\"UTF-8\"", "Subject": "Re: [dpdk-dev] [PATCH v3 4/4] eventdev: relax smp barriers with C11\n\tatomics", "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 } ]