From patchwork Tue Dec 27 09:49:07 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 18562 Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 268D73977; Tue, 27 Dec 2016 10:50:36 +0100 (CET) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0089.outbound.protection.outlook.com [104.47.33.89]) by dpdk.org (Postfix) with ESMTP id 889CF3977 for ; Tue, 27 Dec 2016 10:50:33 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=ZsPqXTxXcBUTcYc7dWL4kUyTgstyR0AP8FXpApLsOds=; b=k0pAELV84eRrzehBsgszJG3zwbTPvaH2NRA6zH9BgsIQSfHNyZGwVcyHYI1xjX7v/7D7zikcUTwFlyZ5IXU2W3bOUbyJSLzpRw2Ixg1oZkpZtuHyJm2Ge92dVoSecYMDEu1mDcg7m5ZtBqCGW5xWNxI5lMdVBWWK0Vcou5Ob+i0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.localdomain.localdomain (202.83.56.97) by BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.803.11; Tue, 27 Dec 2016 09:50:30 +0000 From: Jerin Jacob To: CC: , , , , , , Jerin Jacob Date: Tue, 27 Dec 2016 15:19:07 +0530 Message-ID: <1482832175-27199-2-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1481680558-4003-1-git-send-email-jerin.jacob@caviumnetworks.com> <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [202.83.56.97] X-ClientProxiedBy: PN1PR01CA0001.INDPRD01.PROD.OUTLOOK.COM (10.164.137.8) To BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) X-MS-Office365-Filtering-Correlation-Id: 758c414e-47c6-44a3-f0e9-08d42e3dcca5 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB1713; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 3:t97IvVDeUqNCLm15ZnIUbaQ9A9ulrREvg5Vj7EYu1S9jPq/XcqwrgQ+jm5hQ3jOxQTtCMoZuL9sOQt63BcK4/1cHaWhXuMZiHZrYr0QWNzYIaO52mmVNmaExGRO6zjqOBy2G/460apvIUgIRchCLvOeaM5piAebCL0nTardX7NsDFft5Q4vtH+S/LRRLWe1tcmV4S0LOrFL1ghxe63aos7PnoC6uzQtH9ncrgWOsNWBO7yxl7l5vL3wNA0hUFRVZO1BFAVW94JzwNa6Xtt+YaQ== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 25:+921zm82N8fYUpopCipAN5GStB0yl4RtGysStQV3skkDXN+XmIyXz9wxfKTJ3vBl84cnXyu24bRnw/cgXKIcKZuO+WGe900e3EFr6dH2yshwvd3kupLsz51prOEJe5nRrc5oDTgaZVMqx4ZuIXtYr1SOhNY/9ppPraCXDrcSJjJHqWfpcqtCPxbgEy+lRWcH+ydZGocL7Z8TIzxkFKBUZemiw2LraxBA2VdcTAp2ci1K2X5+Q9C/hzNvDKoQ0PpA4wE20sirupNFVy/bIpkHEirSs+YDfzj/Y2JM8080dUmB0IzG//KBGH54tRPRIAi6AjqPD6+N0ncfIHwrDx/kKUh54baEYfCWcJhNniTml/Ma1sl3TUUNTEzBpxguHosUDb+oWG4cmbbWVCm7GVakQrx1ZZGhNSn1LjD/mkHQCJN6IAFYTM0dJtGu/WP7319n6VKV97vbsXueo0JyIQunkfan9OShb8jC92DEjwfwiKDUhxkUspTpCWLeSIDYSRQDZt9fbjmFa+/MSFf7EM68gfCNTRSEBxLThR47Ul2HkIeCh8CguG85xfOZ/q8j7RPSeHxmV3DoyflA4k8rpvVFWKmUgi4ZgL1AY/CFNgONs2RH3YuEcvu3aYtOj8cCJH/qWgKPSdeeh26/Lldek20sMR4MyPZ6Nd1PbY624URUbQmSu/ntpIa9B6DLNuezdXqABR2JeL1PF4uq9kFCwqQ/PWc2hIQt8iyM6gXD6peWxt5QCbOq6d9Tgts78AXysSKE2Wt02xR6tCIcUaP2fNojQ8+bytrAD6QJ3xnOEG5ghvc= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 31:qBTd2QF9NPOQDBlcNF98sDErTOyMu9FrLWMhZJtvwIcaZoS2yi8hPd2eirpO96lKH6XoEcQ+J+3OJiO2WxPKxnuIDZzext7QNnOEQ7PDlGPm0w+akJcw7SwOT7uou/UZ/OWUkKsSglmFy2zHMLWD21OWuLwqf8hRV/zVrAqrBDD8qzS0bjIXmPzB6cTjblBCkQnmNasCWGTJ6WhU2ph/qXxuPMkChQyvut5YJlTdPMkh96vg6Xh7HvmqAV7iWsZn; 20:nrAaH3UX56onkIJTfV+auFyc/X+f44Ffg6PE1xOmnmmYnKZcZBLgQ7PNKxDdsO3dSFbZFAX24LuZCoEq+Jk7hp25+LFYpqzAQSqUwjzVsJPcG7Hsnv8keuG4q6QI/Xa7VU4Xo/Yb+y75oAlhADl63G28rf3EuSV1DkxNaHprS+hXnYPIHFImnfmoQpHqTyP98oRf6Ju/dpcfPGERonfWj1qVz80yqv3bMRO+Bnk7pw1ivdYtvbcX6qkJmfslhCTTlox6VUPvQ05tE1bF+0MWVermLMuzHKpdeKnM7TBKXsJ8tjFM0FT0PLy4oAQokVxsp+6UBPndMxb+t9bwuB4KuJwCJ63TmKsweh80wsO6b+S9aJGWkqEn4OFnibHSZ0Oz4K4ng0UF7b6q0ry6fiEFxMkfTWw6hnJXAYDMVagi4h+FnWMvTNrWIuvuoIdUvfBg9NvgWNJUgz/OICRDg9QBD7a4PYttm/cJJn4UrpbX57RHQzdD8BuSVWSZQgBE+Kdh/mRpB4gE/OaAU/w6uWs2VgyB8sQcqunSi11y5Dt2TIezDXr/BkRqRybGskGVfJOGc0nWowasQ1Brq6jLrgX3uWho9TZcDEgofQhQEnuZAfM= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123555025)(20161123560025)(20161123558021)(20161123564025)(20161123562025)(6072148); SRVR:BLUPR0701MB1713; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1713; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 4:cqhvvEv1LX53VguQ8of0/X/T4GTUwXxniXHttWBL/PHnnubSzclksjbpnoOoYj7FpYuswLASQwMzZWaNpAVZXqHe56B3b34VaOC9f87hBd11t047IE1bH9EazHibJBMFCuW/PBi3bHFYYKK92hCTAbaVd1YmBEs5kbuPn/SQPOAPiEKI+Y0N/F6GjS4Lvs6WpMOnoOwxF6WgBJq5zGQMbR92+kx/eNeE2jlND9r1GAjbSF0q+MLEzNSdrUzKqI7hKU5sdQPPQtgBUc8+TtrW2VEiEIooQXiwyQKd28tzz+T/2PA4+ioRGjioudXanM+qrvrwusxoeB0LhJBNlCSJ9ypge4Zl5xHsZbL/5vb3sxMU2F9of9whvZfNj/Dk5/AH+1XYzqDJZB4VC8P9UQaB+JvZ8d+LMk8RXQo9bwMs/j3RyDVXIyO9WBLxpqOw0Jh0bL6LzcrFDhXnkQYl4RVQE6gweKpjG2z2pqRY1M78qz0R4SyTUugS8W3jI5fC5Z9rxo40aG9WheR0M6YDVD9lNroLllTvo7rxW4ynozl+sz3c2GgTV0yD0wAE+P+8KUb9GOjrzzktWIVKuQFOVOldAJfkuv0elZ83d5wzHHLwvOw= X-Forefront-PRVS: 0169092318 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6069001)(6009001)(7916002)(39450400003)(199003)(189002)(4001430100002)(3846002)(4326007)(6116002)(50986999)(76176999)(5003940100001)(6506006)(6512006)(6486002)(92566002)(2351001)(50466002)(110136003)(305945005)(8676002)(66066001)(2906002)(101416001)(81156014)(81166006)(42186005)(50226002)(68736007)(106356001)(36756003)(97736004)(33646002)(107886002)(48376002)(105586002)(38730400001)(7736002)(6916009)(5660300001)(42882006)(47776003)(25786008)(189998001)(2950100002)(6666003); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1713; H:localhost.localdomain.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1713; 23:L2eUCPd0KFHlmSUW7+uH5jZWPwd4ET5P7qUTC66?= /Q00xwenNjxkX2hzVOBb0vI3s9IXlq8EIdHBJmWh9OJDlyD1R9+ySUnudMutCejWnI3017NtWL0EEfdlDB5NlllT7F5kvbaZzOaMaKmeUrOtXSKEdv0VcNP9y38ekByPEOdPiZ2wgDwMfCjepMYYKwYH3mDIhreF2PWoVPPiNPYiIoY7atXytSnf87sd7aU47GJAcAUPCoNMGP9g+mEcEZie1gPdFTPz+3x0jeQx3eKHvNV9kwaT3Vi73J05gCVle9vxbNerF3ac9aCVqQAw/lG4H3n4H0zn8/dZWsLV9McHe7wPgjdoU4OUGuPWvtAYBi7BV6jeAz/7WwZzUmYZ9iRHRogLccYHeVIrYVKo/1ymH5HdhvMNHym4ehQUcymmcNfr+mLvfcUU5N609AuYIdBDgMKcRecZtGNjNUcIpUGsdHfJxhfRa629r09MFMi3qGgIIhLGUnzgbLZr6PabcglSqnx9WSHTZdSUEe2jXXE5PYiHEMHPou0ovOZwJ4MsGd/YXtAPwT7ZyaxiShTseQKdJaXUa+kGAeGd6WW9HoHJXOZwRzvlrVyq56JH829wYBH3tnOOoG5jjckSss3QNOQK0/hvuXvICQ6ZZaJFkwhBPcbYUmphl/YYA5SeX99Bja9uHiIdTqDcglgPiSEFlY5rNByefgW1eCyfhU9wezd4HmE51WxE/gAv1vGxBkexipj+34LzPu3ju5lP4Xsr9UK0uIWIZh5kU7AGfGYUEQo0fOMguPi/8Q7NYGmOI7H7HazU5avpP2nVaiqgurTtRykUk02AeBKbr3M+1R48eEV+Ch+MkJUpKGj0RoriZUWqZMs4a8u/7xYWM3ICydtwzmgd0BXiV+5MP/pVNqbLOrAkAULkoKAL1mmdGZsuZNyJTxBx588Q8wP3S0+H2Vakc8Fl6TnBNdIvTj6D3iEAsUhe539qsj55Bq9+lWkFBxWabTJV6ro/vzIj0dCcaq9DrRFHR4xh5ipZaQUx0c7uQCLIGvuGGYoRkDgIBma/xqAyWcVU7E4yI0JpHyI3uuHC3rPORWt+wA89lLceXQ5DbSZLUB8ZeASd9m0jNAnGQWky3xMlvx9Am4M8Aho+nEyw/DB1mMTvQGm4yIqUhJ8qcsLcwdA== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 6:gdVOIMSJ6AigpqwXAm2rzZv2LflD/2COEy/iyKFlX8umGGuS2CZomdUaKwSc1B+rfBGFIHFsKCdsVupt0CNVU7tPMHWrbyU/VT40wpU6IsZg5svSF9DyBeI6R63ccYwPS9LeXXVafqcjpobS+NdlioT2Kr/QH0JSK5FUXjzBWggytl/Yq36S5G2LkgbnzlbZ4kAqGBKaJQbrNXWSNoQUQqBBbE/kTGO3jKUTaynB1scLkzRghH2n8q5p3BiSV7HFxO4Ua9VL0ghVrQplgwKDVwxgLmt7aZ4zqxl9EvES2rEmhOlPe1sQxvXGUVz5Y8frdh7PFDsYpV+BMCSZp0o99dt7KbA9PICTaxZtAwggLbQ3qWPZdntvRuR2EXowPxZE9OO9RFw0gJ4J5WsgEX0bTRlMQwi0hPpAbC/6Cd1VIDs=; 5:AvRG+qoCoozwst9QIQhu0OCVn4nSgkwLUp/brCYMxpjyGZwA4WBcLATP1kpwETQwnGBzBLG2FM2PLBt2oZpfTykQ2gAZ1Y8q5pO8eiD+JVLM6mRAcmv5kvo/ZQsVWQoO1DRZRPUutmyTDcrhXv3MvA==; 24:J4MtHGIwgTdedWvo6rP5g13s+CcxoEP6V2WkSm2vAXLCS8ltc9wBMRhWEYXELsld1EY9GU1Cww+BK2/t8kBi4NCU74RxLGNxrNG6vCXisW8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 7:qORDQmD+wQm/hSmAy0Gyy4PEAPngjHSDU0otN4db6l3AkHDeqs1Tr+YWwBJ95Td3sSoUN88ZvierqWyAva1EH3mXLqNxWE7Dn8WqDMAFavSQevOaZciorzpjXSrf907+xcV/Pcw4bZWDZ+rXoBJtnNGMVwb4XF67mmhjSoaVgsS0iK6vRqI0F70N05A6VvlhN+hlFpfgXX61oOyXqcd2I2Mz5J8G44TzMeaXQnS9rA1W3pXCaW+uv/8PRo6xJled+q3r+dvED+sLDVljD9EgHTQuRuIeDTuOE5ubbv01RpLuJwP74xAf2lhP4qmD62L86kKrL5Z3hKPLJ+YVb9e7APMWMkf+8pk/n8trzTQm3VbifyqKm/VsbRbPVYLBBXZAjVN15UaL4B3EKzA9PqmQOywIvI8+Ldcx8W2/axe/c31PrMnehHSCYDsGv8TzDEjW5nbje3KaBXVpuvFS0cmqXg== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2016 09:50:30.0327 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1713 Subject: [dpdk-dev] [PATCH v2 01/29] eal: introduce I/O device memory barriers X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This commit introduce rte_io_mb(), rte_io_wmb() and rte_io_rmb(), in order to enable memory barriers between I/O device and CPU. Signed-off-by: Jerin Jacob --- lib/librte_eal/common/include/generic/rte_atomic.h | 27 ++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/lib/librte_eal/common/include/generic/rte_atomic.h b/lib/librte_eal/common/include/generic/rte_atomic.h index 43a704e..7b81705 100644 --- a/lib/librte_eal/common/include/generic/rte_atomic.h +++ b/lib/librte_eal/common/include/generic/rte_atomic.h @@ -100,6 +100,33 @@ static inline void rte_smp_wmb(void); */ static inline void rte_smp_rmb(void); +/** + * General memory barrier for I/O device + * + * Guarantees that the LOAD and STORE operations that precede the + * rte_io_mb() call are visible to I/O device or CPU before the + * LOAD and STORE operations that follow it. + */ +static inline void rte_io_mb(void); + +/** + * Write memory barrier for I/O device + * + * Guarantees that the STORE operations that precede the + * rte_io_wmb() call are visible to I/O device before the STORE + * operations that follow it. + */ +static inline void rte_io_wmb(void); + +/** + * Read memory barrier for IO device + * + * Guarantees that the LOAD operations on I/O device that precede the + * rte_io_rmb() call are visible to CPU before the LOAD + * operations that follow it. + */ +static inline void rte_io_rmb(void); + #endif /* __DOXYGEN__ */ /**