Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/8598/?format=api
https://patches.dpdk.org/api/patches/8598/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/1446565921-18088-1-git-send-email-jerin.jacob@caviumnetworks.com/", "project": { "id": 1, "url": "https://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<1446565921-18088-1-git-send-email-jerin.jacob@caviumnetworks.com>", "list_archive_url": "https://inbox.dpdk.org/dev/1446565921-18088-1-git-send-email-jerin.jacob@caviumnetworks.com", "date": "2015-11-03T15:52:01", "name": "[dpdk-dev,RFC] Introduce RTE_ARCH_STRONGLY_ORDERED_MEM_OPS configuration parameter", "commit_ref": null, "pull_url": null, "state": "rejected", "archived": true, "hash": "aa8e9d89e6fa4b60c674acffb2dfc5b7df52a47d", "submitter": { "id": 305, "url": "https://patches.dpdk.org/api/people/305/?format=api", "name": "Jerin Jacob", "email": "jerin.jacob@caviumnetworks.com" }, "delegate": null, "mbox": "https://patches.dpdk.org/project/dpdk/patch/1446565921-18088-1-git-send-email-jerin.jacob@caviumnetworks.com/mbox/", "series": [], "comments": "https://patches.dpdk.org/api/patches/8598/comments/", "check": "pending", "checks": "https://patches.dpdk.org/api/patches/8598/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@dpdk.org", "Delivered-To": "patchwork@dpdk.org", "Received": [ "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id BF52458F1;\n\tTue, 3 Nov 2015 16:52:32 +0100 (CET)", "from na01-bn1-obe.outbound.protection.outlook.com\n\t(mail-bn1bon0094.outbound.protection.outlook.com [157.56.111.94])\n\tby dpdk.org (Postfix) with ESMTP id C7AE537AF\n\tfor <dev@dpdk.org>; Tue, 3 Nov 2015 16:52:30 +0100 (CET)", "from localhost.caveonetworks.com (111.93.218.67) by\n\tSN1PR0701MB1982.namprd07.prod.outlook.com (10.163.131.21) with\n\tMicrosoft SMTP\n\tServer (TLS) id 15.1.312.18; Tue, 3 Nov 2015 15:52:27 +0000" ], "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=Jerin.Jacob@caviumnetworks.com; ", "From": "Jerin Jacob <jerin.jacob@caviumnetworks.com>", "To": "<dev@dpdk.org>", "Date": "Tue, 3 Nov 2015 21:22:01 +0530", "Message-ID": "<1446565921-18088-1-git-send-email-jerin.jacob@caviumnetworks.com>", "X-Mailer": "git-send-email 2.1.0", "MIME-Version": "1.0", "Content-Type": "text/plain", "X-Originating-IP": "[111.93.218.67]", "X-ClientProxiedBy": "BLUPR0601CA0006.namprd06.prod.outlook.com (25.163.210.16)\n\tTo SN1PR0701MB1982.namprd07.prod.outlook.com\n\t(25.163.131.21)", "X-Microsoft-Exchange-Diagnostics": [ "1; SN1PR0701MB1982;\n\t2:14GnzRBKo4LAcUSUW3qFBx96ESXknizi4Q+vopFi3fgtiqOxBVetZoJ+Cd4Fwcgp2VSYXm1/RKK3RIA/ffbD0dCtMJ070EhYSjl4Wv6pjjCb/6AMdEadwJSj9Xo6IiLXAyb/LOMEyKvpeFMFol3AccZxyC0pg3uoE94zjLlvFtI=;\n\t3:qtIoOjcECkh7hfnqmyzgLm4EQ2jwF+QlfQD2MqIxEGAszNj5Nmu49GLFdOpgbszfrk/IzJYFMzdWKHsoIM3eGYQBAFrKb3RrGZJLD95wA56HgVC5d6jjITywQGDLbAzPb2EwrY+7S7S6AYBDHowPEA==;\n\t25:9ySAPl11zbAc613DeVVeStx67pY5ToedQt8nTPCC7AWukO0lZY3MuxSn8rJF+6dGYQu3/mxbglnLWxb04QXtwC+FooqUH7IrAbwfXV+Be3nbuE3CfN/NKEAHCLUIzFqXMU4y8isNIsS7DR+ECipJ2+EBHwF+uO+J7QneqQ5/7NbKSniBMLTqxzQHyt6HEF8arsTI3TyfqfIAgn7K4wNKavxgPt2d+OBqqqsskcILCXkfptytTYF3Xa8Osxt8b2CYBJs0CZHfF6s3Xo/e9+m9JQ==", "1; SN1PR0701MB1982;\n\t20:q5nSbcJXKTfrcYenkx2Wt7kBSGgvdlXiTmi4FO/gqGsATPVviHfaGrtYoFatoDmlHl3iXAQv09e35e9zQDhMUM1UIa/7cLvOEHqhgjoA6eOvWORbt6B3PY+FBPCumbnPtSD+DIvE2s52Tm4SA5LR+bCYyr1mTOX+DgxzuL7vJRFhny57xhjqhZJ6ZeHOyPyikmZ4FUC8hKgdoPqOPSMaABIuK4r6QqhVVQIDrkbX30nEah5CsCdvklrFDTsP6D1y/4hb6Kq5ShEZaZY3+Tt5rpp73aR4fo8uLaQakY39/P83didu0bP32mDvsUVjrFy3QtTjBfl5Zcxtsslj4dL2FyvDrQMgZwwtkwiHqeMcFPlZ+eGDQfkkJ5Q8RcOako6kq9dRm7NSLGR/kmZoc1bGcBHnaZIvRNz6Y0i/HV59f9HHrBbXgS7Td8RT5bc02SmPkrd2RlwSnNW1MNTQPOBYmyteMaGgti9vOxAPQFicXFHi9U2ux0i9ZZMBaPtIyxGibq9Va9GlzxjKHhj3tKHMJeV/6u+WkVL9+ui6wnfCpTMRPtnCrhPVQcLas1Z8JskUU1/bipIF68A1tGBhDO2+vIHPw5EaumAhqg+uNE95Tpk=", "1; SN1PR0701MB1982;\n\t4:P9hN53bOZcQIxcTJoi/E2OvTLOqsoyhKF1pyTbq831X+zLM8Y9MwsX964TsqP0VMnP99IfnB1QXW3/2sPJzLnS9NXmHIvfe9zWM7BFQaSdlSaPFf4h6VqS78VLLZvdGma6zTLknA+/fmMVsCHycy5CFF0rQTmcyMeymPqiKoz821ToYPqlWkAQ1kQcM3DgqA7MkVgIPm21eT8H4puiZbqoybLeKfusyON+kUU1oL5HbZjgJPxd/3pXQH2GzBqCqa3k3pW3AL/T3EaHcVXyrO/rbsp5To7AvH3501W+mK0sDjqyMUriDDwCHZ3TEaAmqa6d5Wu7k0jZ9sqX1lAO9hsxkI2GLsaXGR/X5juJl6KksVxKptSS3uIhjQVazGH0/3", "=?us-ascii?Q?1; SN1PR0701MB1982;\n\t23:5EGXvdeskEanm4b1VVGmTUQyWWx0yi0CBLamWzP?=\n\t=?us-ascii?Q?6fze9E4kn2DUVlx2df7kfb2XvVRnqj+0T+f8P1X7aGsHO/4vVcwLbhaz2MEv?=\n\t=?us-ascii?Q?jQCu4amPnIKolRGgQD75IX3VTp2ABdCsTnKZB4sc05sGfkk4ljNQchMQ6qsF?=\n\t=?us-ascii?Q?7oXRnkFaFu28X+nW/WLSHp4XXkdu8DuMM5AuWZwUaysrm9nssCDreXhoff06?=\n\t=?us-ascii?Q?GvZ67XpQiwNkAkvdk6ar5d822d6RGHYofcOxaEh2EIDXhFQpihnCOaWAeTwb?=\n\t=?us-ascii?Q?LHNsp5ZUchEIS52yY1aX/8IOuqW8tlZHz+czNApTFT9q4wITF7iWmqClfbBx?=\n\t=?us-ascii?Q?ZmUZXOLy/fn1DMBZypCfwOEz0bCN+LjCAiMm89VDdSIkRy3pAS0a2A95r5w2?=\n\t=?us-ascii?Q?G7ZwMgMGae9U4qpQuUZATkgoSEngERXXQpyMvF6jdW4zZdJ7pZjeohFsAOPz?=\n\t=?us-ascii?Q?abq9S8OIjZwwtTZtou6dhfsjdhk4qSrV1CP/PKNfSMRSN41OjI8eSyk+fZxy?=\n\t=?us-ascii?Q?Y5yrxZqD5kVJ4eJ3UGPZ1x+X8uRQ4dp2y7D9rM80b4TCGx+zIUGdO19/tJJk?=\n\t=?us-ascii?Q?7J2bTL/gNWO1z7kJK7ZQ+7y9lC0ax3S97ZPYA1YrTlxfzoiNdh8YQVf/xKz8?=\n\t=?us-ascii?Q?fTkt2Eg5vpoEwCuTPx99/corxXxjYipuMomtP/6EQKuGvCRVpKTKi+SgKMep?=\n\t=?us-ascii?Q?hZrFq2NYnB9/12v40Qo0eZVKpkhxngUj7+x9opei97FH6XbrY6QVdrkafhuf?=\n\t=?us-ascii?Q?TPHzjWQS+F8rc1hJuXFDntdozV4UxGP+leIZNWG4ULQSb7pneAc5NhtbZqrx?=\n\t=?us-ascii?Q?LnUa2ipgq6pzOq1ibBQYt+5PD0WTwiZqcH8KC2JBx8KJez5pNCQGYht7X8Mb?=\n\t=?us-ascii?Q?eiUv15wr7O5N/R5ur8swFMQ5qxrLPwvPZr+AWlHTmRNbE1hCTmaviA3agbBE?=\n\t=?us-ascii?Q?63VE39Rjq46nKbz6qqqcZNKMdXW29utqz5IAVDZXI3ldeXJ7kBZBSb53t3Tm?=\n\t=?us-ascii?Q?eJst6T8k5vrrZDbhHg9O+RLekqRcSU5jqLvArFvkAZ7LztSYl6jzBmCJ+0z3?=\n\t=?us-ascii?Q?RBIPYzghGllX87JbSzxtLINMS3XQ14+hPhLACUHscC/Kc8tObh6pFpbILc+0?=\n\t=?us-ascii?Q?3uPjMNxoXUB0zwl0+kJAQKf3UwMywz6QvKgH42BdDi0qV2J6fDFhMXzB9zGO?=\n\t=?us-ascii?Q?fIbA6a4KFDKbdCabZYW1fxpyaHV/p+82mNSkTtl6dvJCchIcZG7btKa5QiSs?=\n\t=?us-ascii?Q?JUWbiMg5gCkFQyb8Ntdk=3D?=", "1; SN1PR0701MB1982;\n\t5:W1fhsZ/iEhUH4iG0lbPyr19U3mZfz99/NvVkUlTFdfnsp2eizpz9OQFwDNObGaAng1Qik/28iWSrM/+GVZ0l/1pVsLiCKmvCGtxwPl50ZejxrzrBwTqVJYi+GQyIDTKo4trfzuMmmz8/KqcjhdZy5w==;\n\t24:9juIHZ9p8ZJelR2XI14d1DLRAqIBJmhJDvKRbGudHGkmQbKCLxgcAIB5DwNWKfLNehXDCz2AmDo7d/F5HRkBAmXIH0k0nNXe4xnN3wWGZes=;\n\t20:hbak8dqkTEaoERLizgy/7idaxYzHHHh0Bm/SxQUlH7Hq82UfPYUiIUm+jR6BNahln+aGlkanrzJuugU/s7PILA==" ], "X-Microsoft-Antispam": "UriScan:;BCL:0;PCL:0;RULEID:;SRVR:SN1PR0701MB1982;", "X-Microsoft-Antispam-PRVS": "<SN1PR0701MB198287B715C0B82F90F663A98C2B0@SN1PR0701MB1982.namprd07.prod.outlook.com>", "X-Exchange-Antispam-Report-Test": "UriScan:(236414709691187);", "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(601004)(2401047)(5005006)(8121501046)(520078)(10201501046)(3002001);\n\tSRVR:SN1PR0701MB1982; BCL:0; PCL:0; RULEID:; SRVR:SN1PR0701MB1982; ", "X-Forefront-PRVS": "0749DC2CE6", "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(979002)(6009001)(6069001)(189002)(199003)(76506005)(66066001)(5001960100002)(33646002)(50226001)(50986999)(5009440100003)(81156007)(69596002)(40100003)(97736004)(36756003)(47776003)(110136002)(229853001)(101416001)(4001430100002)(19580405001)(92566002)(5008740100001)(77096005)(86362001)(87976001)(122386002)(107886002)(106356001)(105586002)(5003940100001)(5007970100001)(48376002)(50466002)(19580395003)(53416004)(42186005)(2351001)(189998001)(5004730100002)(7099028)(969003)(989001)(999001)(1009001)(1019001);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:SN1PR0701MB1982;\n\tH:localhost.caveonetworks.com; \n\tFPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; ", "Received-SPF": "None (protection.outlook.com: caviumnetworks.com does not\n\tdesignate permitted sender hosts)", "SpamDiagnosticOutput": "1:23", "SpamDiagnosticMetadata": "NSPM", "X-OriginatorOrg": "caviumnetworks.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "03 Nov 2015 15:52:27.2800\n\t(UTC)", "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SN1PR0701MB1982", "Subject": "[dpdk-dev] [RFC ][PATCH] Introduce\n\tRTE_ARCH_STRONGLY_ORDERED_MEM_OPS configuration parameter", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "patches and discussions about DPDK <dev.dpdk.org>", "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://dpdk.org/ml/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "rte_ring implementation needs explicit memory barrier\nin weakly ordered architecture like ARM unlike\nstrongly ordered architecture like X86\n\nIntroducing RTE_ARCH_STRONGLY_ORDERED_MEM_OPS\nconfiguration to abstract such dependency so that other\nweakly ordered architectures can reuse this infrastructure.\n\nSigned-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>\n---\n config/common_bsdapp | 5 +++++\n config/common_linuxapp | 5 +++++\n config/defconfig_arm64-armv8a-linuxapp-gcc | 1 +\n config/defconfig_arm64-thunderx-linuxapp-gcc | 1 +\n lib/librte_ring/rte_ring.h | 20 ++++++++++++++++++++\n 5 files changed, 32 insertions(+)", "diff": "diff --git a/config/common_bsdapp b/config/common_bsdapp\nindex b37dcf4..c8d1f63 100644\n--- a/config/common_bsdapp\n+++ b/config/common_bsdapp\n@@ -79,6 +79,11 @@ CONFIG_RTE_FORCE_INTRINSICS=n\n CONFIG_RTE_ARCH_STRICT_ALIGN=n\n \n #\n+# Machine has strongly-ordered memory operations on normal memory like x86\n+#\n+CONFIG_RTE_ARCH_STRONGLY_ORDERED_MEM_OPS=y\n+\n+#\n # Compile to share library\n #\n CONFIG_RTE_BUILD_SHARED_LIB=n\ndiff --git a/config/common_linuxapp b/config/common_linuxapp\nindex 0de43d5..d040a74 100644\n--- a/config/common_linuxapp\n+++ b/config/common_linuxapp\n@@ -79,6 +79,11 @@ CONFIG_RTE_FORCE_INTRINSICS=n\n CONFIG_RTE_ARCH_STRICT_ALIGN=n\n \n #\n+# Machine has strongly-ordered memory operations on normal memory like x86\n+#\n+CONFIG_RTE_ARCH_STRONGLY_ORDERED_MEM_OPS=y\n+\n+#\n # Compile to share library\n #\n CONFIG_RTE_BUILD_SHARED_LIB=n\ndiff --git a/config/defconfig_arm64-armv8a-linuxapp-gcc b/config/defconfig_arm64-armv8a-linuxapp-gcc\nindex 6ea38a5..5289152 100644\n--- a/config/defconfig_arm64-armv8a-linuxapp-gcc\n+++ b/config/defconfig_arm64-armv8a-linuxapp-gcc\n@@ -37,6 +37,7 @@ CONFIG_RTE_ARCH=\"arm64\"\n CONFIG_RTE_ARCH_ARM64=y\n CONFIG_RTE_ARCH_64=y\n CONFIG_RTE_ARCH_ARM_NEON=y\n+CONFIG_RTE_ARCH_STRONGLY_ORDERED_MEM_OPS=n\n \n CONFIG_RTE_FORCE_INTRINSICS=y\n \ndiff --git a/config/defconfig_arm64-thunderx-linuxapp-gcc b/config/defconfig_arm64-thunderx-linuxapp-gcc\nindex e8fccc7..79fa9e6 100644\n--- a/config/defconfig_arm64-thunderx-linuxapp-gcc\n+++ b/config/defconfig_arm64-thunderx-linuxapp-gcc\n@@ -37,6 +37,7 @@ CONFIG_RTE_ARCH=\"arm64\"\n CONFIG_RTE_ARCH_ARM64=y\n CONFIG_RTE_ARCH_64=y\n CONFIG_RTE_ARCH_ARM_NEON=y\n+CONFIG_RTE_ARCH_STRONGLY_ORDERED_MEM_OPS=n\n \n CONFIG_RTE_FORCE_INTRINSICS=y\n \ndiff --git a/lib/librte_ring/rte_ring.h b/lib/librte_ring/rte_ring.h\nindex af68888..1ccd186 100644\n--- a/lib/librte_ring/rte_ring.h\n+++ b/lib/librte_ring/rte_ring.h\n@@ -457,7 +457,12 @@ __rte_ring_mp_do_enqueue(struct rte_ring *r, void * const *obj_table,\n \n \t/* write entries in ring */\n \tENQUEUE_PTRS();\n+\n+#ifdef RTE_ARCH_STRONGLY_ORDERED_MEM_OPS\n \trte_compiler_barrier();\n+#else\n+\trte_wmb();\n+#endif\n \n \t/* if we exceed the watermark */\n \tif (unlikely(((mask + 1) - free_entries + n) > r->prod.watermark)) {\n@@ -552,7 +557,12 @@ __rte_ring_sp_do_enqueue(struct rte_ring *r, void * const *obj_table,\n \n \t/* write entries in ring */\n \tENQUEUE_PTRS();\n+\n+#ifdef RTE_ARCH_STRONGLY_ORDERED_MEM_OPS\n \trte_compiler_barrier();\n+#else\n+\trte_wmb();\n+#endif\n \n \t/* if we exceed the watermark */\n \tif (unlikely(((mask + 1) - free_entries + n) > r->prod.watermark)) {\n@@ -643,7 +653,12 @@ __rte_ring_mc_do_dequeue(struct rte_ring *r, void **obj_table,\n \n \t/* copy in table */\n \tDEQUEUE_PTRS();\n+\n+#ifdef RTE_ARCH_STRONGLY_ORDERED_MEM_OPS\n \trte_compiler_barrier();\n+#else\n+\trte_rmb();\n+#endif\n \n \t/*\n \t * If there are other dequeues in progress that preceded us,\n@@ -727,7 +742,12 @@ __rte_ring_sc_do_dequeue(struct rte_ring *r, void **obj_table,\n \n \t/* copy in table */\n \tDEQUEUE_PTRS();\n+\n+#ifdef RTE_ARCH_STRONGLY_ORDERED_MEM_OPS\n \trte_compiler_barrier();\n+#else\n+\trte_rmb();\n+#endif\n \n \t__RING_STAT_ADD(r, deq_success, n);\n \tr->cons.tail = cons_next;\n", "prefixes": [ "dpdk-dev", "RFC" ] }{ "id": 8598, "url": "