• Leo Yan's avatar
    perf parse-regs: Refactor arch register parsing functions · 5000e7f6
    Leo Yan authored
    Every architecture has a specific register parsing function for
    returning register name based on register index, to support cross
    analysis (e.g. we use perf x86 binary to parse Arm64's perf data), we
    build all these register parsing functions into the tool, this is why
    we place all related functions into util/perf_regs.c.
    
    Unfortunately, since util/perf_regs.c needs to include every arch's
    perf_regs.h, this easily introduces duplicated definitions coming from
    multiple headers, finally it's fragile for building and difficult for
    maintenance.
    
    We cannot simply move these register parsing functions into the
    corresponding 'arch' folder, the folder is only conditionally built
    based on the target architecture.
    
    Therefore, this commit creates a new folder util/perf-regs-arch/ and
    uses a dedicated source file to keep every architecture's register
    parsing function to avoid definition conflicts.
    
    This is only a refactoring, no functionality change is expected.
    
    Committer notes:
    
    Had to add util/perf-regs-arch/*.c to tools/perf/util/python-ext-sources
    to keep 'perf test python' passing.
    Signed-off-by: default avatarLeo Yan <leo.yan@linaro.org>
    Acked-by: default avatarIan Rogers <irogers@google.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Albert Ou <aou@eecs.berkeley.edu>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Eric Lin <eric.lin@sifive.com>
    Cc: Fangrui Song <maskray@google.com>
    Cc: Guo Ren <guoren@kernel.org>
    Cc: Huacai Chen <chenhuacai@kernel.org>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Ivan Babrou <ivan@cloudflare.com>
    Cc: James Clark <james.clark@arm.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: John Garry <john.g.garry@oracle.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Mike Leach <mike.leach@linaro.org>
    Cc: Ming Wang <wangming01@loongson.cn>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sandipan Das <sandipan.das@amd.com>
    Cc: Will Deacon <will@kernel.org>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-csky@vger.kernel.org
    Cc: linux-riscv@lists.infradead.org
    Link: https://lore.kernel.org/r/20230606014559.21783-2-leo.yan@linaro.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    5000e7f6
python-ext-sources 1.07 KB