From patchwork Fri Nov 8 23:45:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 13869060 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 9705FD6409A for ; Fri, 8 Nov 2024 23:48:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Type:To:From:Subject :Mime-Version:Message-Id:Date:Reply-To:Cc:Content-Transfer-Encoding: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References:List-Owner; bh=Bo+XoNcfTiWt9dXZSAxdrxoaHvpnygZk759HUW2Tdtc=; b=VRVygj0EbV5xHDg6ZB+wOHGZF0 AJn+uuIyabmI812oJdNTVc41lmDbOpS55wbl0EbdpgPW62hHtgcJfV0RyyJ0LVGj+fC+fZl52O7x+ A8VwZy4S59q73oOHE2Ki6JAF3tgj868OnCNK8UlzR/G4uS1AcR1BakIPpwJi6UcIItaB+e/R4hmt+ w7F03iSasaIZS+1N+1NVgb8XcDvunokjUccOVPl7GWYLFN7s6weE57Ca1+caLvHAiv73V/Y55uYJ6 N9U5WHUUwXCSAB1i7OWS7DWDMAQDZ/0EYA9ItwWjQVHfJMW8sndDkZ8OaizOXOOqtk7KLqpM7BoX1 J5WX9CXw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1t9Yi5-0000000CFgO-0FMj; Fri, 08 Nov 2024 23:48:13 +0000 Received: from mail-yb1-xb4a.google.com ([2607:f8b0:4864:20::b4a]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1t9Yg8-0000000CEwL-3VxZ for linux-arm-kernel@lists.infradead.org; Fri, 08 Nov 2024 23:46:14 +0000 Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-e30df208cadso4704106276.0 for ; Fri, 08 Nov 2024 15:46:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1731109570; x=1731714370; darn=lists.infradead.org; h=to:from:subject:mime-version:message-id:date:from:to:cc:subject :date:message-id:reply-to; bh=Bo+XoNcfTiWt9dXZSAxdrxoaHvpnygZk759HUW2Tdtc=; b=RGPdWmyMHfhtQUG/muH1GDT+oafqCdMHwVaC3pX7Xfi7oX1FH+gsEwp7EB7XGnaZ3t JYohm32SkvOLOSUc7LHE0WrrrjkBNlVJJCppKdn9xGyZLEF8lvzauXJvoO2DL0WdKKgt oL+jXYUDEDXyyOTsVhY2vIyLvCv2RtzfCykBRa+Z3G5WK6ZfkvDnnjCcyX5uk2cRsxDV BiVxYFRrMdQEg2MbBj8fUO6lO8BjREhFY/3l6yya8+fDT6kECvMU3h22RDNcLgueYvUm V83PClVaP1a0RsB02v7/nrOiQqal6KElV6m+NmeyxEC52NU+Hlw2k4dE8vUPoBHUly/f gqAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731109570; x=1731714370; h=to:from:subject:mime-version:message-id:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=Bo+XoNcfTiWt9dXZSAxdrxoaHvpnygZk759HUW2Tdtc=; b=gcFEvfDljbVwc93rELkWyd491QDoZa3U7VGfoPVWms1Ibvi5t1MgBHeAbqwrGcNcYa UXtdp1qlf0H3mxI6BIyw0J40fORN0wWkNaK0qBwkidazZDI+sAsumuOi+H/HF53ElEnr 6tt/JT5g31s0mwVc4ooSlyRdjfcKQ4Z0b2vBH2GBUS4oNxK633HaOFZ5KyzKlXK6mZey ORYO93b27J80rAw1D1fmrv0IG/rAamRj2uB1+BDwznZSscXP2JzxMTrsgsKXVKfyrpx4 rtqIfBd7WL+hq3QG57iBNdDfwPLb7tZ2yBKTRnOT62dJujubL8S6JCxcWDyGA7pGp2/R 6BBA== X-Forwarded-Encrypted: i=1; AJvYcCXgn0Gi9GoFyAzea102fT9631Cy9E26axuIyoQ/cDga0ZR0dmalcJyRswq9yP2u2wnR3hRZsZhkwYxSTzMJWMfa@lists.infradead.org X-Gm-Message-State: AOJu0Yzh5PANLZsIbMeb9rIb1+FkmKVSDxiDO5w8kR78NLXnI883QJsM i4Kb+b2q4lAPeuR6ZCf8wrtoFtaoLKpP58X0imAtgnVwDVPMyULdmN6tq+pjlxsTzeLMA6zjsXc F4cGEnQ== X-Google-Smtp-Source: AGHT+IG7nNHrZbf62YTEIFaabL+CBo69CYr9RS79+TUQD474jGBOE4r4BpO1ymNXWY8gOslRzk6deJr/eKGp X-Received: from irogers.svl.corp.google.com ([2620:15c:2c5:11:6fd2:1e36:6d8c:7c49]) (user=irogers job=sendgmr) by 2002:a25:d843:0:b0:e29:7454:e773 with SMTP id 3f1490d57ef6-e337e1d738cmr20475276.5.1731109569972; Fri, 08 Nov 2024 15:46:09 -0800 (PST) Date: Fri, 8 Nov 2024 15:45:45 -0800 Message-Id: <20241108234606.429459-1-irogers@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.47.0.277.g8800431eea-goog Subject: [PATCH v4 00/20] Remove PERF_HAVE_DWARF_REGS From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Namhyung Kim , Mark Rutland , Alexander Shishkin , Jiri Olsa , Ian Rogers , Adrian Hunter , Kan Liang , John Garry , Will Deacon , James Clark , Mike Leach , Leo Yan , Guo Ren , Paul Walmsley , Palmer Dabbelt , Albert Ou , Nick Terrell , "Masami Hiramatsu (Google)" , Changbin Du , Guilherme Amadio , Yang Jihong , Aditya Gupta , Athira Rajeev , Masahiro Yamada , Bibo Mao , Huacai Chen , Kajol Jain , Atish Patra , Shenlin Liang , Anup Patel , Oliver Upton , "Steinar H. Gunderson" , "Dr. David Alan Gilbert" , Chen Pei , Dima Kogan , Przemek Kitszel , "David S. Miller" , Alexander Lobakin , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-riscv@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241108_154612_889562_0DAFECEF X-CRM114-Status: GOOD ( 22.24 ) 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 These changes were originally on top of: https://lore.kernel.org/lkml/20241017001354.56973-1-irogers@google.com/ Prior to these patches PERF_HAVE_DWARF_REGS indicated the presence of dwarf-regs.c in the arch directory. dwarf-regs.c provided upto 4 functions: 1) regs_query_register_offset would translate a register name into a pt_regs offset and was used by BPF prologues. BPF prologues existed for BPF events and support for these was removed many releases ago. This code was dead and could be removed. 2) get_arch_regstr duplicated get_dwarf_regstr and so it could be removed. The case for csky was a little more complicated as the ABI controlled the string. The callers of get_dwarf_regstr were updated to also pass the ELF flags so that on csky the ABI appropriate table could be used. As the argument is only used on csky this a no-op for everything else. 3) get_arch_regnum translated a register name back to a dwarf number and only existed on x86 where "al", "ax", "eax" and "rax" could all mean register 0. This code was moved to util with similar machine/flags logic to get_arch_regstr and for consistency with it. 4) get_powerpc_regs a PowerPC specific function used by annotate that should really be in util. 2 and 3 required the wiring through of the ELF machine and flags in callers to get_dwarf_regstr and get_dwarf_regnum. When these values weren't dependent on an ELF file a new EM_HOST and EF_HOST were added to give the host ELF machine and flags. These 2 #defines got rid of the existing separate arch files and #ifdefs. v4: Add CSky defines to dwarf-regs.h Add reviewed-by tags from Masami. v3: These files were separated from the rest of the v2 libdw clean up in: https://lore.kernel.org/lkml/CAP-5=fVZH3L-6y_sxLwSmT8WyMXDMFnuqUksNULdQYJCPNBFYw@mail.gmail.com/ Ian Rogers (20): perf bpf-prologue: Remove unused file perf dwarf-regs: Remove PERF_HAVE_ARCH_REGS_QUERY_REGISTER_OFFSET perf dwarf-regs: Add EM_HOST and EF_HOST defines perf disasm: Add e_machine/e_flags to struct arch perf dwarf-regs: Pass accurate disassembly machine to get_dwarf_regnum perf dwarf-regs: Pass ELF flags to get_dwarf_regstr perf dwarf-regs: Move x86 dwarf-regs out of arch perf arm64: Remove dwarf-regs.c perf arm: Remove dwarf-regs.c perf dwarf-regs: Move csky dwarf-regs out of arch perf loongarch: Remove dwarf-regs.c perf mips: Remove dwarf-regs.c perf dwarf-regs: Move powerpc dwarf-regs out of arch perf riscv: Remove dwarf-regs.c and add dwarf-regs-table.h perf s390: Remove dwarf-regs.c perf sh: Remove dwarf-regs.c perf sparc: Remove dwarf-regs.c perf xtensa: Remove dwarf-regs.c perf dwarf-regs: Remove get_arch_regstr code perf build: Remove PERF_HAVE_DWARF_REGS tools/perf/Makefile.config | 17 +- tools/perf/arch/arc/annotate/instructions.c | 2 + tools/perf/arch/arm/Makefile | 3 - tools/perf/arch/arm/annotate/instructions.c | 2 + tools/perf/arch/arm/util/Build | 2 - tools/perf/arch/arm/util/dwarf-regs.c | 61 ------- tools/perf/arch/arm64/Makefile | 4 - tools/perf/arch/arm64/annotate/instructions.c | 2 + tools/perf/arch/arm64/util/Build | 1 - tools/perf/arch/arm64/util/dwarf-regs.c | 92 ----------- tools/perf/arch/csky/Makefile | 4 - tools/perf/arch/csky/annotate/instructions.c | 7 +- tools/perf/arch/csky/util/Build | 1 - tools/perf/arch/loongarch/Makefile | 4 - .../arch/loongarch/annotate/instructions.c | 2 + tools/perf/arch/loongarch/util/Build | 1 - tools/perf/arch/loongarch/util/dwarf-regs.c | 44 ----- tools/perf/arch/mips/Makefile | 4 - tools/perf/arch/mips/annotate/instructions.c | 2 + tools/perf/arch/mips/util/Build | 1 - tools/perf/arch/mips/util/dwarf-regs.c | 38 ----- tools/perf/arch/powerpc/Makefile | 5 - .../perf/arch/powerpc/annotate/instructions.c | 2 + tools/perf/arch/powerpc/util/Build | 1 - tools/perf/arch/powerpc/util/dwarf-regs.c | 153 ------------------ tools/perf/arch/riscv/Makefile | 5 +- .../arch/riscv/include/dwarf-regs-table.h | 42 +++++ tools/perf/arch/riscv/util/Build | 1 - tools/perf/arch/riscv/util/dwarf-regs.c | 72 --------- .../perf/arch/riscv64/annotate/instructions.c | 2 + tools/perf/arch/s390/Makefile | 4 - tools/perf/arch/s390/annotate/instructions.c | 2 + tools/perf/arch/s390/util/Build | 1 - tools/perf/arch/s390/util/dwarf-regs.c | 43 ----- tools/perf/arch/sh/Build | 1 - tools/perf/arch/sh/Makefile | 4 - tools/perf/arch/sh/util/Build | 1 - tools/perf/arch/sh/util/dwarf-regs.c | 41 ----- tools/perf/arch/sparc/Build | 1 - tools/perf/arch/sparc/Makefile | 4 - tools/perf/arch/sparc/annotate/instructions.c | 2 + tools/perf/arch/sparc/util/Build | 1 - tools/perf/arch/sparc/util/dwarf-regs.c | 39 ----- tools/perf/arch/x86/Makefile | 4 - tools/perf/arch/x86/annotate/instructions.c | 3 +- tools/perf/arch/x86/util/Build | 3 - tools/perf/arch/x86/util/dwarf-regs.c | 153 ------------------ tools/perf/arch/xtensa/Build | 1 - tools/perf/arch/xtensa/Makefile | 4 - tools/perf/arch/xtensa/util/Build | 1 - tools/perf/arch/xtensa/util/dwarf-regs.c | 21 --- tools/perf/util/Build | 3 + tools/perf/util/annotate.c | 6 +- tools/perf/util/bpf-prologue.h | 37 ----- tools/perf/util/disasm.c | 1 + tools/perf/util/disasm.h | 4 + .../dwarf-regs.c => util/dwarf-regs-csky.c} | 19 +-- tools/perf/util/dwarf-regs-powerpc.c | 61 +++++++ tools/perf/util/dwarf-regs-x86.c | 50 ++++++ tools/perf/util/dwarf-regs.c | 38 +++-- tools/perf/util/include/dwarf-regs.h | 120 +++++++++++--- tools/perf/util/probe-finder.c | 13 +- tools/perf/util/probe-finder.h | 3 +- 63 files changed, 339 insertions(+), 927 deletions(-) delete mode 100644 tools/perf/arch/arm/util/dwarf-regs.c delete mode 100644 tools/perf/arch/arm64/util/dwarf-regs.c delete mode 100644 tools/perf/arch/csky/Makefile delete mode 100644 tools/perf/arch/loongarch/util/dwarf-regs.c delete mode 100644 tools/perf/arch/mips/util/dwarf-regs.c delete mode 100644 tools/perf/arch/powerpc/util/dwarf-regs.c create mode 100644 tools/perf/arch/riscv/include/dwarf-regs-table.h delete mode 100644 tools/perf/arch/riscv/util/dwarf-regs.c delete mode 100644 tools/perf/arch/s390/util/dwarf-regs.c delete mode 100644 tools/perf/arch/sh/Build delete mode 100644 tools/perf/arch/sh/Makefile delete mode 100644 tools/perf/arch/sh/util/Build delete mode 100644 tools/perf/arch/sh/util/dwarf-regs.c delete mode 100644 tools/perf/arch/sparc/Build delete mode 100644 tools/perf/arch/sparc/util/Build delete mode 100644 tools/perf/arch/sparc/util/dwarf-regs.c delete mode 100644 tools/perf/arch/x86/util/dwarf-regs.c delete mode 100644 tools/perf/arch/xtensa/Build delete mode 100644 tools/perf/arch/xtensa/Makefile delete mode 100644 tools/perf/arch/xtensa/util/Build delete mode 100644 tools/perf/arch/xtensa/util/dwarf-regs.c delete mode 100644 tools/perf/util/bpf-prologue.h rename tools/perf/{arch/csky/util/dwarf-regs.c => util/dwarf-regs-csky.c} (74%) create mode 100644 tools/perf/util/dwarf-regs-powerpc.c create mode 100644 tools/perf/util/dwarf-regs-x86.c