From patchwork Tue Oct 4 10:40:30 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 16362 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 4C9F8374F; Tue, 4 Oct 2016 12:41:26 +0200 (CEST) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0075.outbound.protection.outlook.com [104.47.32.75]) by dpdk.org (Postfix) with ESMTP id 187D02BA1 for ; Tue, 4 Oct 2016 12:41:25 +0200 (CEST) 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=jJNiDXlXz7ujoBQuEhlx+x1NcGu1SQ9Dx/Moy8nzeKo=; b=avF6mzTNrQdiH+bQCVyYbC5OPB7huYPf+jagfHk30vEmEkLagMylXtD1bIdYmAkXE6Lcvewx16jt0THAST/9vVW8mfwq6Hvr3K4o2LVEETLWctb9x52yqdBmoJXTtvx3szpnHRAzmTh3xkLqWLrGzP8j/GdgymZTl6vQ51VRZYg= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.localdomain.localdomain (111.92.124.249) by BN3PR0701MB1718.namprd07.prod.outlook.com (10.163.39.17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.639.5; Tue, 4 Oct 2016 10:41:19 +0000 From: Jerin Jacob To: CC: , , , Jerin Jacob Date: Tue, 4 Oct 2016 16:10:30 +0530 Message-ID: <1475577630-14318-1-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 MIME-Version: 1.0 X-Originating-IP: [111.92.124.249] X-ClientProxiedBy: MA1PR01CA0069.INDPRD01.PROD.OUTLOOK.COM (10.164.116.169) To BN3PR0701MB1718.namprd07.prod.outlook.com (10.163.39.17) X-MS-Office365-Filtering-Correlation-Id: 7d59f63f-d27c-4ced-1fea-08d3ec42fbbc X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1718; 2:/OL4ScaRPIJUt1H51+71011rt7ASdC4m+5fPQWuFMtB/jmgp4G3Olt6nKSEj1oY7cDmnxihL4EOnXiKHC9rwRW5ALDZyaXYUMkE8GYMPRbweahSppyzkX1xPlNhGvk19XpJ3V7b7GZF2iMa6WoOnqNAizSvbuPsVsKLY1CQyV846Y1spjzXf24s/qiMKPQSz; 3:K3XsYLScR73WHLaMekfpFY/krqfPg36j4aOFjaC6wO3lMvmydY8+6JZPXASFGLg6FYZrobAPmf9Z0HvHAwmJPH7+dMrMC5fxby77jFg0QJaz8uhMXdOxtbAP8Na1gjc6; 25:5GBCJ2/2lBPGZ0ItDKNWd6mIcXLFihesc+rblCEYYThndV3UbphHDocLGxwCCsWc68g8CZu5HpyHAc4/0FNBtHRZcFGczVhEtLBW19Al4BkkU+K5AYcQz6G0WlCmaySG/HQw2kB0fYlqf/kVm+hYPrRuTKS8Nlaa9hKJCwzydx3xCqx3ObUiiNpgcKPqwvxnoax0Tw6/E7aVTgjoLmQhwSQrbTDbCuR8PpYQUJXgrunPQWnaDsZm1xpgudnbdfg5ZPBSFv/UE1p3ZqmExobgXP+7N7adKjtEKyfGzVUJthaHQKYwT61yG7GuMKRnewfE8CBbQkZqmnx+tS+6teKIxEWbbuwipIQpwmK9LQSDLOhS2IFSfV98sbuXmj++Qanf5pE/MqunULIOt7Ror/n1eqVGRKrjpNAQxPIRNObcSCU= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR0701MB1718; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1718; 31:LoobsQKS+Yv1iKUvWf1bwlY/CCyPAxg15fOMcp/j0f+7K4RJj+BfD7Qe2Zpmp4hkv4/0oleAxzYscMaPMkwmoRgFMbNEHfnITTajNRm4iloqe8o63rGrak0jALHl0vJQicxfKLA4TzWxTqZUvxq+jmBBLlJpiVNHoyOtKxJ0Nab0ZuME52bOU5N0mXgWl+Mu+eFx4b7gzFDp+jvo4T4nov5JlyrrUMqLMO74RZmUiC+MVsiFfEm4jbYtn0TyN2hA; 20:JXbYY7REfAXT5kn6Yw1ykOwJdNa8LRzUur8NqLp2NM3skLY1aH2Rtn7bb+pxOtUxvMlMDOV0p0h9jIWye6XWwlhV4nQ+OFI0LWLb5QegmpDifodtXOndULYX7zGK8FRr3dIuhcm45ZA9Cer3MEbAccD1IeTjeDxMPRtWQDgkyRtdwcedCPJ8l0DYkHXlh71KxkzVMpTazgC3zGhqtp8Snp/RSkdFDJgDjtrbjQkQITxxGfSSD96kmxrIqFRTlAF/++FK5scxoGvqAFz6jTMYNsfT7m9XaYKm1UIvYda/tLU2KK+5FAUH1iuOM1/C9mHhaGA56Dnf4442vjWbTLfx4QjFlgg7UGixD3fCP/7DW9Fc4qj8dyz3p/ZmHh1zlBPutj5L0BvD8YCAXuPey0mXW612wmzICU4kahIy7NlVjnJpf5ICokvmvB5eQkhQsBFbqYIGS5u85TplWyErQtKeL/BwIwl6U1jVcItAtMi9tah+f/Qg3q0dEAkUnGWZwSNwVYvY7reTosRrlAo7kqAb/htaGWPpQi56BhQC5AGhOUlvjAW1FvLhIYfzutW16ynnlUrOWs6H1v4EKUOAMZ5fAiezn9Tg4txrBhbpirzs+mk= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917)(278428928389397)(108984395545644)(166708455590820)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046); SRVR:BN3PR0701MB1718; BCL:0; PCL:0; RULEID:; SRVR:BN3PR0701MB1718; X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1718; 4:LJHfRnyG6/HhkwkBG4CxO0fB+mo2SXTKnFoTtqdxnDTNq3oUyzlaVXq/vXcBRShr8VpQ3TKbqSqj5E4Ql4xP9WgxqDDY+tAr/Vvf3fj6J88dpbRtQweUxDpZc37z78X7kRXQbrTBT6PcJwqE0InkrjxVeFVCrDXfOQgg9EkYCJRWxeCSHsitGYR1ncxaqHAiYnHcAcDsHDzH3KieuW6vL2Hb1vT6mIEgomTOloisisFJN7Q7/giTcIb2Y8k86Re0pGdTThjBFm5NLxAxeexx7Wl39LjXnB29z1WbkKJljdTZpYInh2a+F9A2uo06YOS0+dChrCFxZYKxYWmjBQBawc5Wel7D/gE3+zAzomdzMRJLgfZ3ayS+6GmDgnNWy4L5iN2ltcdHZnlf0Hrt0IwMZ0q4OlzWWP7vr22sZe3G92n0VY64HxWUtMvh+0b6I1a4KPLJF9QzyAX6HjwDv7+aSj2JdpHcMqL+kh1ElznHbXVym2Fgjud45xr8/8M6Hqc6M+0Me/AEmMCW+wmOVeFvIoDFHwwEmYL/ymobnPFoudw/QgRpOru2b0GqaAooLIEu X-Forefront-PRVS: 00851CA28B X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(189002)(199003)(42882006)(586003)(81166006)(229853001)(15975445007)(189998001)(6116002)(3846002)(19580405001)(47776003)(2351001)(66066001)(33646002)(305945005)(97736004)(5660300001)(48376002)(50466002)(4001430100002)(4326007)(77096005)(92566002)(5009440100003)(42186005)(8676002)(81156014)(6666003)(19580395003)(7846002)(36756003)(68736007)(6916009)(101416001)(5003940100001)(50986999)(7736002)(105586002)(107886002)(2906002)(50226002)(110136003)(106356001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR0701MB1718; H:localhost.localdomain.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A: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; BN3PR0701MB1718; 23:HZ4sjpslCeoepfccvpCLzujDcY64zYDHBIJUjL+?= =?us-ascii?Q?iQLXCvCooGe/fc2j0K9LHylhbr3xzYcHpxil1RjY9fvvLuBgvbBIYOrnpli+?= =?us-ascii?Q?YnbpYxX2d2Py0brBPLL16dxErlUMom70dYk/OKI808JGdh9bpvcAioQxwnCT?= =?us-ascii?Q?a5bvTRDxDztovMnkOJKj0YgZ8NaB+GmSIOuWB9i522r95unPEjd1H9CrQP+u?= =?us-ascii?Q?pJG0ip95KxjoH6yUINvkbxh47xAcvs43rgSZpu91PPet84lk6hvoCN1UFMfc?= =?us-ascii?Q?uUqzS0jTFFp+Hy21RiarL11mj56Tda3QBqV4A/ow42eRJTBi5yOrElCqGfP8?= =?us-ascii?Q?ISG/30LWWdQpH6sIuIEesZ0uVlyVprYVtDE2CsdDORneEPwnYHQrBJ1GyBIu?= =?us-ascii?Q?rv8GtzUel5+7ODX2MuDGd6M03p5KrtovWXR/hRtYsdltn6/oMwr6CfuHNUSE?= =?us-ascii?Q?fDvkQKaWzsCB7xUwJHu569Zjc8TYSMi6/roi2TII9cmOj/JGQP9aIcg6Ld2L?= =?us-ascii?Q?QyBfbq+xQAsNRO7373WS4RagdS/dszWrGHkHg9DIhO6yhynYS24d3KIW4uSG?= =?us-ascii?Q?WeJMiuKETqEYp8B+VwKiBcqWFp3etag9LDEtHTzhtkyGiLxUIcui8Tn4N5YD?= =?us-ascii?Q?1V6RkiISRbV3kCB63Hl+GqenkbH+ZouWpw8P+r5gvkkox8sa6cvC9UTabnqc?= =?us-ascii?Q?MK4uua4QBfzEMX9GMKE+EtIYdPH9id/ebvNY2MnjnZ0oWg8LvCRMX/04UCVP?= =?us-ascii?Q?bZQeDZpCOwCYCZ0XnUoSFMgYdWN4aC/VKFoviLu9Mmhr61qlzawkBOrR+gJN?= =?us-ascii?Q?yvYrNyAycANDlv6JRHdbrfWeMqmqSbgVOVjOZzUt/vgz5QorIQM9tCfPKZJR?= =?us-ascii?Q?ezqgXMQke+CBV3q4Ya+mKOt8xYrfQe8GVPImrMPgKGGxndoXxlezzhhJWbkq?= =?us-ascii?Q?xMBADupstmqxYHEpGZVI1aUJ6zGTBEAFNOEjHtGkklm7niZ4WIeMpxeDdC/m?= =?us-ascii?Q?4eubFyjOaw3NfQRHY/8y1oUXVLy06paUgrQS2ssyzE0Nf5DSdrPj2EwTclUb?= =?us-ascii?Q?slvzbhuHPBqFU2rEtK1XM4qkLA74UnyZm9J/7f6pQ3gCXrCWFSXZZh8/9xUi?= =?us-ascii?Q?Vsc5lpkHbGFmv99bGW4akuRamXvQILh/KDgNKtDneH1zTJvEKAo17/VdVcRK?= =?us-ascii?Q?xohx5YslAsByrsWJxaEGY3nICpCFlYGfYiUiB3/c+d5qjJSlfOBp47uXj2w?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN3PR0701MB1718; 6:UynFNgEJPg5iGtd0XAZJ/FXHcudLdWiiTFLFdKkSP++Tw1Jk1D7mUIEJQSU4u+aRyRdD/wCCYpHv7XXU20pCZS2rEOKOjN1Jua+YL4wD4Ijut6uIAcRSQUqx0Qcs8bcwt3TqlrC4MmWtL4pJOy/PoAhJJ2eNgrhhHVtLlkreZDLHC/Rzo6fvlvY9i5+n1qz8OLFLvUhHitc5Y5GaTsfJfyekiP7puluu/otNxtgbOKaAR3/Wk7wCfTkoC4yqqx3Q2Lxvr9Bumj6XfNHyr0QNem/Jnak8NThj2eY3U4lYA3k=; 5:riffhaydkLvG79TXKNqG+Bi/rqYwwEY7RmlE9Pcl5MUQxvnUZTYxnZ5CBhxAgaN3nlwEnRPEO/oI90C0A8kEIbViFXQ5JF2utjToHzKc+h9JnPX0AEMH53Y07eOas1WbpWxGkJCmU0R16j/tytMa5Q==; 24:yzTrw3630ysjLSTsCmzQzLdWfvjK2HvalLXzhPMIkz09zqyd6JekpKsuBd968yPQaPqA3oYnqKzHHaOKKfZW7SW+BkmRA3aL0fvdm+0k4NQ=; 7:bqa5V0zHXf/SQhcn5tYugFyxzOYL763Y2ccwPVdMM3EX/tKcqx2BdeUVXLiXl/nsdZGofoixqwEU5khiW0JtA6TqBf6mBRfnqH6YAk/dLsfpsHHCz2ldJTtL+jTv5dn1oS1EAj0hM/Y00tnxZpPUcyJvV6hdwpzTaqvbmeRFda9a07mJfkwreFVL5gpYflvMCbBhP4Je6cANR34EpbmAnLCRyUdH3fbw2ZMqCmyldIAhqjgvjLKbmX6cOUuJRBHG6O8Ce3aEfL6SlAEa8UrW2UWxq5E2QB/lkgxDsvWCmD2afDYANKe42EcsoqcMqEOB SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Oct 2016 10:41:19.9708 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR0701MB1718 Subject: [dpdk-dev] [PATCH] doc: arm64: document DPDK application profiling methods 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" Signed-off-by: Jerin Jacob --- doc/guides/prog_guide/profile_app.rst | 58 +++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/doc/guides/prog_guide/profile_app.rst b/doc/guides/prog_guide/profile_app.rst index 3226187..bb78623 100644 --- a/doc/guides/prog_guide/profile_app.rst +++ b/doc/guides/prog_guide/profile_app.rst @@ -31,6 +31,14 @@ Profile Your Application ======================== +Introduction +------------ + +The following sections describe the methods to profile DPDK applications on +different architectures. + +x86 +~~~ Intel processors provide performance counters to monitor events. Some tools provided by Intel can be used to profile and benchmark an application. See the *VTune Performance Analyzer Essentials* publication from Intel Press for more information. @@ -50,3 +58,53 @@ The main situations that should be monitored through event counters are: Refer to the `Intel Performance Analysis Guide `_ for details about application profiling. + +ARM64 +~~~~~ + +Perf +^^^^ +ARM64 architecture provide performance counters to monitor events. +The Linux perf tool can be used to profile and benchmark an application. +In addition to the standard events, perf can be used to profile arm64 specific +PMU events through raw events(-e -rXX) + +Refer to the +`ARM64 specific PMU events enumeration `_ + +High-resolution cycle counter +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +The default cntvct_el0 based rte_rdtsc() provides portable means to get wall +clock counter at user space. Typically it runs at <= 100MHz. + +The alternative method to enable rte_rdtsc() for high resolution +wall clock counter is through armv8 PMU subsystem. +The PMU cycle counter runs at CPU frequency, However, access to PMU cycle +counter from user space is not enabled by default in the arm64 linux kernel. +It is possible to enable cycle counter at user space access +by configuring the PMU from the privileged mode (kernel space). + +by default rte_rdtsc() implementation uses portable cntvct_el0 scheme. +Application can choose the PMU based implementation with +CONFIG_RTE_ARM_EAL_RDTSC_USE_PMU + +The PMU based scheme useful for high accuracy performance profiling. +Find below the example steps to configure the PMU based cycle counter on an +armv8 machine. + +.. code-block:: console + + git clone https://github.com/jerinjacobk/armv8_pmu_cycle_counter_el0 + cd armv8_pmu_cycle_counter_el0 + make + sudo insmod pmu_el0_cycle_counter.ko + cd $DPDK_DIR + make config T=arm64-armv8a-linuxapp-gcc + echo "CONFIG_RTE_ARM_EAL_RDTSC_USE_PMU=y" >> build/.config + make + +.. warning:: + + This method can not be used in production systems as this may alter PMU + state used by standard Linux user space tool like perf. +