From patchwork Mon May 9 14:42:48 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Clark X-Patchwork-Id: 12843706 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EA15EC433EF for ; Mon, 9 May 2022 14:44:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :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=4WyzusmPIPTZC55GvGG0b/pAnsGcUqXX+cUJ6echLIE=; b=eDA2q8npeYCybh JDeevBfuScyiAcZxu8mpAARwhqIAlFL16F6SymZMl8NqxyL2Ev1e3dWageBpc4U1BJkBryG5L+3BG 20BiGTBACoq4/FerQ/ZbYIQs+fVN5a+EzwxWeCKjLQSCsy4Xf4fyVV4uLPW5FfEp2rVYx1a1gB7Vy Y8zGDccRQg2oU58gCttV7rE/8arupPhuyf7epwTUmQVVRqiF9i0qSWpnTd/ZPaKY4So+FSYeiz7GW m1Qf+Tva/vyDcqN6G5FxW8BBZEfMT9b+DFB9j+WTUYLsEsVT0Rz9//5FMOSFH3giwiGcZx1pCV5c5 RYEMiufIanw7Ubr6udMw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1no4bj-00EuNF-Th; Mon, 09 May 2022 14:43:31 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1no4bg-00EuLT-Gl for linux-arm-kernel@lists.infradead.org; Mon, 09 May 2022 14:43:29 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id B65B01480; Mon, 9 May 2022 07:43:24 -0700 (PDT) Received: from e121896.arm.com (unknown [10.57.4.213]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 65AD53F73D; Mon, 9 May 2022 07:43:21 -0700 (PDT) From: James Clark To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, broonie@kernel.org Cc: german.gomez@arm.com, James Clark , John Garry , Will Deacon , Mathieu Poirier , Leo Yan , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , linux-doc@vger.kernel.org Subject: [PATCH v1 0/6] perf: arm64: Support for Dwarf unwinding through SVE functions Date: Mon, 9 May 2022 15:42:48 +0100 Message-Id: <20220509144257.1623063-1-james.clark@arm.com> X-Mailer: git-send-email 2.28.0 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220509_074328_630804_C96AB51B X-CRM114-Status: GOOD ( 10.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org When SVE registers are pushed onto the stack the VG register is required to unwind because the stack offsets would vary by the SVE register width at the time when the sample was taken. The first two patches add support for sampling the VG register to the kernel and the docs. The remaining patches add the support to userspace perf. A small change is also required to libunwind or libdw depending on which unwinder is used, and these will be published later. Without these changes Perf continues to work with both libraries, although the VG register is still not used for unwinding. James Clark (6): perf: arm64: Add SVE vector granule register to user regs arm64/sve: Add Perf extensions documentation perf tools: arm64: Copy perf_regs.h from the kernel perf tools: Use dynamic register set for Dwarf unwind perf tools: arm64: Decouple Libunwind register names from Perf perf tools: arm64: Add support for VG register Documentation/arm64/sve.rst | 20 +++++ arch/arm64/include/uapi/asm/perf_regs.h | 7 +- arch/arm64/kernel/perf_regs.c | 30 +++++++- drivers/perf/arm_pmu.c | 2 +- tools/arch/arm64/include/uapi/asm/perf_regs.h | 7 +- tools/perf/arch/arm64/util/perf_regs.c | 34 +++++++++ tools/perf/arch/arm64/util/unwind-libunwind.c | 73 +------------------ tools/perf/util/evsel.c | 2 +- tools/perf/util/perf_regs.c | 2 + 9 files changed, 100 insertions(+), 77 deletions(-)