From patchwork Wed Dec 23 06:39:03 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leo Yan X-Patchwork-Id: 11987753 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 735F5C433E6 for ; Wed, 23 Dec 2020 06:41:18 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 20E2020771 for ; Wed, 23 Dec 2020 06:41:18 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 20E2020771 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:MIME-Version:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Owner; bh=AanmaFuu4m60+9d+Fe3Inl+uGOfw6glsUnE35buCCZQ=; b=zjwnJGHQMAmdgDTUhP/nqhH6E1 B2EREnpfp7qO9P8h2ovsSfYQSLKpaXvPxvRxy2meIq1XTMFvOezcxWamRHHEqvF04FeSSUMpo9XEP lUAl2AiCfoJZ5n5VRnYh4KOmJRrG+oxJzmvPzz0kYLRimwVp112K+6/LAFKm99UyM4muqAMWct1tG gIRER0IXdtuZ/ial4JqXuo1KeLY9Ba8FpsejZC0hKDG/Sgc3pwJOY2FoTHXGZraOlvdTlne2aDSBt 2Om9hA9fC5tqfe4RsbQVmBRZgdPjo98+nde4iUiKwQydd1PVRT2iWpuLUBbd+TyTCfFU7LU91nrD4 fxFGeMFA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1krxoT-0007si-AI; Wed, 23 Dec 2020 06:39:57 +0000 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1krxoR-0007mx-4i for linux-arm-kernel@lists.infradead.org; Wed, 23 Dec 2020 06:39:56 +0000 Received: by mail-pj1-x102c.google.com with SMTP id j13so2667922pjz.3 for ; Tue, 22 Dec 2020 22:39:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=oNvfzfKf6TpzAj6vq/wi/rHDkEjWq04NYAvd2KpIxsc=; b=VvgrPHnKeDY1Y/w7AdTYKLo6VfrTMp1dj98gqI3OYdpZwHDFuWXhpT8H5j5XjdHms0 ysacDSIurwNh3mmG+zZhZNobMR3oNaHgE2G2tOyI7VGkaZDAWiA4GSQbw8HuVAKZOq+y 1eJWe17yTTFUYFJtt9eTh/Gs9LG8Dyw27T4hqDhI+43rImXmv5l8Xc+wxfPKaJtcDuoX z61m74ah3EDZymkZt1+1GV2DhzmRpvMKdbAUxT4sXIG+1znRUUyQMc4/ZpyFd/vgkac6 dM5nglCQ6jMCgDP0zU67OyUP2CuyOD/a6NzOfT217zKxtFTSkt1dLwbb0OwLazZ3oKg7 kLGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=oNvfzfKf6TpzAj6vq/wi/rHDkEjWq04NYAvd2KpIxsc=; b=D4dCVpCNbOTwDeVBKf1aSFp3j1jxsdBGVrJ61cs+gqXY9PVeeDiV7gtRA6mYz+81ew yN3QScIt13yjXbC9qGfy6vjgqpTXwLgOWptcn4w+G3oVHav4O3mA3pIm9dZV0wNX0U9r NAYZJUq6uZdGwTe5TdaNUaHJ4G3Qtp87rknnsQlv5w97ZHcdwmXb1Xy0PsAd0ccXEbpy s6UvjYRyjbU5pFlu6iN78ZbFlUUlPDtvnMQbfla5rPsEfSz3fLS3wcyQjn2nxKlMs7Lo u+aR5JaVuUvlbkBPpWJJQe6IwNYDBzG2ooRj766l5y6lYNonOTZ4sqSVH3SMn0IZLT4R QimA== X-Gm-Message-State: AOAM5329mcNU/uJdxba4gc09Lqa6MEk0apegvf1cLI+DvTJPizYQtbvO XqxqZLnitYpzTxeZ4bhDoIkjaw== X-Google-Smtp-Source: ABdhPJw3Bk91Zeuja80eQ1mkI9AkO83Wlv8eiHL3JSfgU9eINs+0jlMMLnhiWeTVyalLSjk4TBJmIw== X-Received: by 2002:a17:90b:100e:: with SMTP id gm14mr25223591pjb.179.1608705591246; Tue, 22 Dec 2020 22:39:51 -0800 (PST) Received: from localhost ([45.137.216.7]) by smtp.gmail.com with ESMTPSA id 6sm21905688pfj.216.2020.12.22.22.39.49 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 22 Dec 2020 22:39:50 -0800 (PST) From: Leo Yan To: Arnaldo Carvalho de Melo , Will Deacon , John Garry , Mathieu Poirier , Peter Zijlstra , Ingo Molnar , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Ian Rogers , Alexandre Truong , Masami Hiramatsu , He Zhe , Thomas Richter , Sumanth Korikkar , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v1 0/2] perf arm64: Support SDT Date: Wed, 23 Dec 2020 14:39:03 +0800 Message-Id: <20201223063905.25784-1-leo.yan@linaro.org> X-Mailer: git-send-email 2.17.1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20201223_013955_218930_6F93CEF6 X-CRM114-Status: GOOD ( 14.04 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Leo Yan MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This patch is to enable SDT on Arm64. Since Arm64 SDT marker in ELF file is different from other archs, especially for using stack pointer (sp) to retrieve data for local variables, patch 01 is used to fixup the arguments for this special case. Patch 02 is to add argument support for Arm64 SDT. This patch set has been verified on Arm64/x86_64 platforms with a testing program usdt_test [1]. The program run the SDT interfaces one by one for DTRACE_PROBE, DTRACE_PROBE1, ..., DTRACE_PROBE12, so it tries to verify probe with different count of arguments (the arguments count is 0 to 12). The testing flow and result are shown as below: # perf buildid-cache --add /root/test/usdt_test # perf probe sdt_usdt:test_probe # perf probe sdt_usdt:test_probe_param1 # perf probe sdt_usdt:test_probe_param1x # perf probe sdt_usdt:test_probe_param2 # perf probe sdt_usdt:test_probe_param2x # perf probe sdt_usdt:test_probe_param3 # perf probe sdt_usdt:test_probe_param3x # perf probe sdt_usdt:test_probe_param4 # perf probe sdt_usdt:test_probe_param4x # perf probe sdt_usdt:test_probe_param5 # perf probe sdt_usdt:test_probe_param5x # perf probe sdt_usdt:test_probe_param6 # perf probe sdt_usdt:test_probe_param6x # perf probe sdt_usdt:test_probe_param7 # perf probe sdt_usdt:test_probe_param7x # perf probe sdt_usdt:test_probe_param8 # perf probe sdt_usdt:test_probe_param8x # perf probe sdt_usdt:test_probe_param9 # perf probe sdt_usdt:test_probe_param9x # perf probe sdt_usdt:test_probe_param10 # perf probe sdt_usdt:test_probe_param10x # perf probe sdt_usdt:test_probe_param11 # perf probe sdt_usdt:test_probe_param11x # perf probe sdt_usdt:test_probe_param12 # perf probe sdt_usdt:test_probe_param12x # perf record \ -e sdt_usdt:test_probe_param1 -e sdt_usdt:test_probe_param1x \ -e sdt_usdt:test_probe_param2 -e sdt_usdt:test_probe_param2x \ -e sdt_usdt:test_probe_param3 -e sdt_usdt:test_probe_param3x \ -e sdt_usdt:test_probe_param4 -e sdt_usdt:test_probe_param4x \ -e sdt_usdt:test_probe_param5 -e sdt_usdt:test_probe_param5x \ -e sdt_usdt:test_probe_param6 -e sdt_usdt:test_probe_param6x \ -e sdt_usdt:test_probe_param7 -e sdt_usdt:test_probe_param7x \ -e sdt_usdt:test_probe_param8 -e sdt_usdt:test_probe_param8x \ -e sdt_usdt:test_probe_param9 -e sdt_usdt:test_probe_param9x \ -e sdt_usdt:test_probe_param10 -e sdt_usdt:test_probe_param10x \ -e sdt_usdt:test_probe_param11 -e sdt_usdt:test_probe_param11x \ -e sdt_usdt:test_probe_param12 -e sdt_usdt:test_probe_param12x \ -e sdt_usdt:test_probe -aR sleep 5 # ./usdt_test => Execute in another terminal # perf script usdt_test 7999 [003] 80493.418276: sdt_usdt:test_probe: (aaaab0d80714) usdt_test 7999 [003] 80493.418352: sdt_usdt:test_probe_param1: (aaaab0d80728) arg1=1 usdt_test 7999 [003] 80493.418379: sdt_usdt:test_probe_param2: (aaaab0d80744) arg1=1 arg2=2 usdt_test 7999 [003] 80493.418405: sdt_usdt:test_probe_param3: (aaaab0d80764) arg1=1 arg2=2 arg3=3 usdt_test 7999 [003] 80493.418432: sdt_usdt:test_probe_param4: (aaaab0d80788) arg1=1 arg2=2 arg3=3 arg4=4 usdt_test 7999 [003] 80493.418459: sdt_usdt:test_probe_param5: (aaaab0d807b0) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 usdt_test 7999 [003] 80493.418487: sdt_usdt:test_probe_param6: (aaaab0d807dc) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 usdt_test 7999 [003] 80493.418516: sdt_usdt:test_probe_param7: (aaaab0d8080c) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 usdt_test 7999 [003] 80493.418545: sdt_usdt:test_probe_param8: (aaaab0d80840) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 arg8=8 usdt_test 7999 [003] 80493.418574: sdt_usdt:test_probe_param9: (aaaab0d80874) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 arg8=8 arg9=9 usdt_test 7999 [003] 80493.418603: sdt_usdt:test_probe_param10: (aaaab0d808a8) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 arg8=8 arg9=9 arg10=10 usdt_test 7999 [003] 80493.418632: sdt_usdt:test_probe_param11: (aaaab0d808dc) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 arg8=8 arg9=9 arg10=10 arg11=11 usdt_test 7999 [003] 80493.418662: sdt_usdt:test_probe_param12: (aaaab0d80910) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 arg8=8 arg9=9 arg10=10 arg11=11 arg12=12 usdt_test 7999 [003] 80493.418687: sdt_usdt:test_probe_param1x: (aaaab0d8092c) arg1=1 usdt_test 7999 [003] 80493.418713: sdt_usdt:test_probe_param2x: (aaaab0d80950) arg1=1 arg2=2 usdt_test 7999 [003] 80493.418739: sdt_usdt:test_probe_param3x: (aaaab0d8097c) arg1=1 arg2=2 arg3=3 usdt_test 7999 [003] 80493.418766: sdt_usdt:test_probe_param4x: (aaaab0d809b0) arg1=1 arg2=2 arg3=3 arg4=4 usdt_test 7999 [003] 80493.418792: sdt_usdt:test_probe_param5x: (aaaab0d809ec) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 usdt_test 7999 [003] 80493.418820: sdt_usdt:test_probe_param6x: (aaaab0d80a30) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 usdt_test 7999 [003] 80493.418847: sdt_usdt:test_probe_param7x: (aaaab0d80a7c) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 usdt_test 7999 [003] 80493.418875: sdt_usdt:test_probe_param8x: (aaaab0d80ad0) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 arg8=8 usdt_test 7999 [003] 80493.418904: sdt_usdt:test_probe_param9x: (aaaab0d80b2c) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 arg8=8 arg9=9 usdt_test 7999 [003] 80493.418933: sdt_usdt:test_probe_param10x: (aaaab0d80b90) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 arg8=8 arg9=9 arg10=10 usdt_test 7999 [003] 80493.418962: sdt_usdt:test_probe_param11x: (aaaab0d80bfc) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 arg8=8 arg9=9 arg10=10 arg11=11 usdt_test 7999 [003] 80493.418991: sdt_usdt:test_probe_param12x: (aaaab0d80cb0) arg1=1 arg2=2 arg3=3 arg4=4 arg5=5 arg6=6 arg7=7 arg8=8 arg9=281474762776336 arg10=281474762776340 arg11=281474762776344 arg12=281474762776348 [1] https://people.linaro.org/~leo.yan/debug/perf/usdt_test.c Leo Yan (2): perf probe: Fixup Arm64 SDT arguments perf arm64: Add argument support for SDT tools/perf/arch/arm64/util/perf_regs.c | 94 ++++++++++++++++++++++++++ tools/perf/util/probe-file.c | 32 ++++++++- 2 files changed, 124 insertions(+), 2 deletions(-) Acked-by: Masami Hiramatsu for the seires.