From patchwork Fri Nov 6 09:40:23 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 8754 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 3BA518E98; Fri, 6 Nov 2015 10:41:35 +0100 (CET) Received: from na01-bl2-obe.outbound.protection.outlook.com (mail-bl2on0078.outbound.protection.outlook.com [65.55.169.78]) by dpdk.org (Postfix) with ESMTP id 1D25A8E96 for ; Fri, 6 Nov 2015 10:41:33 +0100 (CET) Received: from BLUPR0701MB1969.namprd07.prod.outlook.com (10.163.121.20) by BLUPR0701MB1587.namprd07.prod.outlook.com (10.163.84.149) with Microsoft SMTP Server (TLS) id 15.1.312.18; Fri, 6 Nov 2015 09:41:32 +0000 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@caviumnetworks.com; Received: from jerin.caveonetworks.com (111.93.218.67) by BLUPR0701MB1969.namprd07.prod.outlook.com (10.163.121.20) with Microsoft SMTP Server (TLS) id 15.1.318.15; Fri, 6 Nov 2015 09:41:29 +0000 From: Jerin Jacob To: Date: Fri, 6 Nov 2015 15:10:23 +0530 Message-ID: <1446802833-22265-5-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1446802833-22265-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1446802833-22265-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MA1PR01CA0066.INDPRD01.PROD.OUTLOOK.COM (25.164.116.166) To BLUPR0701MB1969.namprd07.prod.outlook.com (25.163.121.20) X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1969; 2:1aqFnruwRPMuhXBO1Xxwemorl8u7oVB8E1x+58hYHpy8+Lt2dFg5ZMbRGkDSF5Tc3bizGki2bBVdbN0ah5C/GC5ps2NkV9LuQQJ0Tv3y5meqpQyUHnI9CgwdSIwWQAXe/nQWQlp0Up32XSnizXMjCc4W4SgqpGCcAzkT8YK/QCc=; 3:itg0iru888oAVAcRIJKcBfmgPZFpg3iqx1SeOw6+bCGf8yTUFHJoHY0c/ln50VRqVPHM43fGThx9xsNBLVSZprRNwuGtMTI896oQL2Q/hrHye/OagdTXEnolGvJzD+VIrip3/yGtRh3PCa3uOQDQug==; 25:5yp3eVJaFjUThFBy9pzXPJ8qsaRbPigIlVX8ThqF+sJlj9xKTsh4p96ZA4Rr1pMao1llDlRLThemZYiMAM2UHRrJcGEr+iR5ryK4Bw/+rl2oJ8YU8rR7/upeNyc8rhMI9npTq4Kwr5MGYpothC/q8+0KaZY6ORBs1ITBq2kp2Su/ZtlefdrG04z1V3cK91nby0qLob5cM836GcEaLwqnS20YhdD9XYvxXdc8Ld/PWq7wINiBOOOEcLg4J5fRsRolAD4BiZNc+J/PxVMqe/m3Yg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0701MB1969; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1969; 20:YGvRFYvLtQOsB2cFtbHU9mz1CPqrP8s/Ddhd858WupFhF4gKjEFIDWGrUvuOfng8Y4sAZUyJk0v62noWya9iw1h4kAfDAjoWkhHi4XABx2i0Y9TvTacrowaoWdBMpbDDUYKg5amCRQwhyPkOx66Jw4MN1ofQ1UP6m0ZsGWDa4nGfWdFuytWHLqftrTdTs5L1t0ClElYsZmCjE2xMRfJJlvMyvqXIFXZPLET7cnL4wl6A5JoS0pTRhCA/t5VTWcC+Us/H8nhjebVj8717haX0xW/O4AydKwe2hRkBPcxLF+/RQCLHvaHmjJAzCgRdciK8LvPIk+qbhZv6ssoxgBEtrQTHN9Ayty7Q6i0kcUrzVQgkuUK7X0iKkgqNpX4CBSQEd79YChNa9mGNtrIXptaSf1dGJNXvFFYj3PAwnVsmL8hf8NjU5L7RtKxia4bh2HlA759LOdxlINN+qoqTi8k/x1QYGOpfTpYHco4z9hbcoeMUM0Ij/4QuVPX8axvlCPs/qJX0KG63JB92U7XmZOoFz4J3OeSkRm2qTM+H+y13C/hgQDuzPICoZRpZZeqLVWHgrwzAv3A7Mj8L6fm/Ere437G/YB1CLJ+YE+sHNJ7sOfA= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(236414709691187); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(10201501046); SRVR:BLUPR0701MB1969; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1969; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1969; 4:26fFTbDKiiWggcQKwdMEvlu4XWoPh4+K+NVwEq70sLFS5eHU2RlNbO07lfgtYL2yHAUJN2aIn4ibgqxAiiil/UGMGrBSE17Gb3eGXya7SFzkXczBT0ljdPgekxLHfbuNT+t6RxGSvo0+AEpa1A+1MRLPNA7kducqAmcFK1IP4AaiztUuYNieUFNmoSt952XtuEsWHcD69zbWbO4Sv/BTOdFqUrhp3Bn3YnlNIKe1B6JuS8emlieECuELsJZ74YYZmXJ84rcFuuEdW6BPkGzQFC4MDAolLhWrZMglJp1vTes3swSBuVkahi/HwNzvjSt0V68FGs+g32tdP6cXsq3fSm27h2RzNidsh/zwlODbBNhgxwWhA+49cV9dKtpuGJjN X-Forefront-PRVS: 07521929C1 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(189002)(199003)(50226001)(122386002)(48376002)(50986999)(50466002)(106356001)(229853001)(110136002)(19580405001)(40100003)(76176999)(87976001)(105586002)(5004730100002)(77096005)(19580395003)(2351001)(5003940100001)(92566002)(107886002)(189998001)(5007970100001)(33646002)(5001960100002)(66066001)(5009440100003)(42186005)(2950100001)(4001430100002)(97736004)(101416001)(69596002)(47776003)(36756003)(5008740100001)(53416004)(81156007)(86362001)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1969; H:jerin.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: caviumnetworks.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1969; 23:biOs2kndhbCO1b/Q529pd+UQbNnQYBK5g8KYmAs?= =?us-ascii?Q?tXYnjjKDiy5Xbm0zKYVxUpEoMoPTvRwobx7SUCljzCxOAztkDUz1NnUGApMn?= =?us-ascii?Q?+/C9ZWKAcgTU89neztkleWojQIc9fKl00tTantsUjSu0XRhLuZWZs/M6Pcqp?= =?us-ascii?Q?8ogYn14rHzRdnbvOwG5FpQxSJho/CC4s1wwstEY/KSNS38s++Y8xuwR/k6Lc?= =?us-ascii?Q?c6cZcviPFv/HB2W82Ail9hV8LdluaAo/4awJ88zlMewuIzNwtC0lo66Z7uf3?= =?us-ascii?Q?VBTg5G/9KmvvJjrtGNhelW6BNUHFqRbLYPNi/MVUDOUgDQXpyRgd/kOuDiQQ?= =?us-ascii?Q?nZJJ2PqXjhVAsQFrqQ9CGnZ3kW/yssosFWF/hiwcB5vNsedOgNR2+kTUgWkS?= =?us-ascii?Q?pMN9Bgx9GSGyWCOOltkRAXEX3v9X59xHQ9zJXWczPJclh6uaI+xplE+UTx1L?= =?us-ascii?Q?tL/Uh9kcue64SEciUUCfhPIvSIxei1u1loNKyeJqu/fHOpv0N8tX/j5/Suc/?= =?us-ascii?Q?+V+bgD4uF2Vq9SHdoXRUA6/TnCLKC2ILxZUBVb9IUyru+8AMR3WeM93DM/+z?= =?us-ascii?Q?tOCzwH6yQj2MPv+nRkwPLn8nGPk7DL0GUbcIknY+9+yNNrPZQfhBb0+Ch7b5?= =?us-ascii?Q?7+TfJ7bRcpCeQZxCRHO6LCDtmsltwJDsKgOk1KnohUTneWOssaund7GrKh2Y?= =?us-ascii?Q?/3wi4AT1T56sBjjZ44zrNv0NOjqc9IQdaBUgVys/K6JgPsDgmGpOJWpfkj0M?= =?us-ascii?Q?ihU0aYsPb0TGYFRi0zAQuYa5/ZJ3XVgnXRO8FWcRc64esCN9HhSf9bjxYs/2?= =?us-ascii?Q?9Ihg7dlO227mZ8Jwzm5cLfMQBkueRpkogIihtVxoDVDMwPGUXPpXY2u1WJQr?= =?us-ascii?Q?vCxMnflPKENUJQe+p59ygfoOPAIGPAX6VmaaI+ELItcF2CkSx7osH8b58fMs?= =?us-ascii?Q?FDm0PJ/3JyVrH9jLSyHuhBaBs/Yj+KxacF7D+h5bJAmYIqphunfuAuL6RSuk?= =?us-ascii?Q?064atK9/SY9+Lqk+UiTJ2Ng9mS36b/l11HiN0oUxHSRKHY+QJEI/BJ2QPTiw?= =?us-ascii?Q?anfhCRBQkDcHSCDcrYGQR8aKqTBcoTceP3GsE4z/h7AMbmNqnTEATJrn90s/?= =?us-ascii?Q?W7RdI4FZmix5xjYZcH6e63KU1D53myiuz?= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1969; 5:1OlHdG2X1O4maNz0dhrXCy8g9JlVN01Cy0a18fHtwdYl6JVBDellPowd9Nl6SWlPTg96EN5KpkHsf3UxXcnNHngRD8xIZRowIJbH5EHBm//e0FaDpJcrXOSzs5ij8Bp/QXHaN1/MzHTgnb/hMO33jA==; 24:m9Mjrr6SYCo6zQWTcBDnUKp55hd00HBoC3tRgiS/lgrQOgkgJnMveXzZkEVViRDAXVIKUyJgXFInpcQ9TbkNs2c0QP/46Se3d5kobNNXks8=; 20:845ed37IU58tLZP957tYs9ZTsscb8auEv38USIMNo6UCTLfAcyXmJXeBWDqzMSy7yZJ2COWl8FLfRmmSWFyvrg== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2015 09:41:29.4599 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1969 X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1587; 2:Ya2kB7KSQApyKW1ni1YdKbcVCrAZyFdWhZWY8m2cg21GdqOLqWp4OHVY0oHzOjo09CXUqQvuHXBepOws7J8jEW2fNYcWKR3yoX8uKi6QxIxfQx1RmUgjnnl+mIzJe9coEjGgnriAR76YDyouvoWvZ66rJlaZw9lfhd6fBu9ErhE=; 23:gih22SM2jVxn4gxNJfLHjI3qHXwXSWgWeb3c2iv67j5Y8lDoe7W8jGdVSsSp1dqyYGY3WYop7B641lwh/crgHSvHSzdiatmbDKMmQ6mNBkwVhiiJln+yLvVKc+7S+BmJE+7zsKXEys0+TtopGsms0C+F1Ykk2AJJZjJgVTcCIIv/9iTaONQvm7A9OKtWeqI2 X-OriginatorOrg: caviumnetworks.com Subject: [dpdk-dev] [PATCH v3 04/14] eal: arm64: add armv8-a version of rte_cycles_64.h X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" cntcvt_el0 ticks are not based on cpu clk unlike rdtsc in x86. Its a fixed clock running based at constant speed. Though its a armv8-a implementer choice, typically it runs at 50 or 100 MHz Signed-off-by: Jerin Jacob --- .../common/include/arch/arm/rte_cycles.h | 4 ++ .../common/include/arch/arm/rte_cycles_64.h | 71 ++++++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 lib/librte_eal/common/include/arch/arm/rte_cycles_64.h diff --git a/lib/librte_eal/common/include/arch/arm/rte_cycles.h b/lib/librte_eal/common/include/arch/arm/rte_cycles.h index b2372fa..a8009a0 100644 --- a/lib/librte_eal/common/include/arch/arm/rte_cycles.h +++ b/lib/librte_eal/common/include/arch/arm/rte_cycles.h @@ -33,6 +33,10 @@ #ifndef _RTE_CYCLES_ARM_H_ #define _RTE_CYCLES_ARM_H_ +#ifdef RTE_ARCH_64 +#include +#else #include +#endif #endif /* _RTE_CYCLES_ARM_H_ */ diff --git a/lib/librte_eal/common/include/arch/arm/rte_cycles_64.h b/lib/librte_eal/common/include/arch/arm/rte_cycles_64.h new file mode 100644 index 0000000..14f2612 --- /dev/null +++ b/lib/librte_eal/common/include/arch/arm/rte_cycles_64.h @@ -0,0 +1,71 @@ +/* + * BSD LICENSE + * + * Copyright (C) Cavium networks Ltd. 2015. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Cavium networks nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#ifndef _RTE_CYCLES_ARM64_H_ +#define _RTE_CYCLES_ARM64_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "generic/rte_cycles.h" + +/** + * Read the time base register. + * + * @return + * The time base for this lcore. + */ +static inline uint64_t +rte_rdtsc(void) +{ + uint64_t tsc; + + asm volatile("mrs %0, cntvct_el0" : "=r" (tsc)); + return tsc; +} + +static inline uint64_t +rte_rdtsc_precise(void) +{ + rte_mb(); + return rte_rdtsc(); +} + +static inline uint64_t +rte_get_tsc_cycles(void) { return rte_rdtsc(); } + +#ifdef __cplusplus +} +#endif + +#endif /* _RTE_CYCLES_ARM64_H_ */