1. 16 Feb, 2024 27 commits
  2. 15 Feb, 2024 4 commits
    • Leo Yan's avatar
      perf build: Cleanup perf register configuration · 81901fc0
      Leo Yan authored
      The target is to allow the tool to always enable the perf register
      feature for native parsing and cross parsing, and current code doesn't
      depend on the macro 'HAVE_PERF_REGS_SUPPORT'.
      
      This patch remove the variable 'NO_PERF_REGS' and the defined macro
      'HAVE_PERF_REGS_SUPPORT' from the Makefile.
      Signed-off-by: default avatarLeo Yan <leo.yan@linux.dev>
      Reviewed-by: default avatarIan Rogers <irogers@google.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Palmer Dabbelt <palmer@dabbelt.com>
      Cc: Albert Ou <aou@eecs.berkeley.edu>
      Cc: Huacai Chen <chenhuacai@kernel.org>
      Cc: Guo Ren <guoren@kernel.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Ming Wang <wangming01@loongson.cn>
      Cc: John Garry <john.g.garry@oracle.com>
      Cc: Paul Walmsley <paul.walmsley@sifive.com>
      Cc: linux-csky@vger.kernel.org
      Cc: linux-riscv@lists.infradead.org
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240214113947.240957-5-leo.yan@linux.dev
      81901fc0
    • Leo Yan's avatar
      perf parse-regs: Introduce a weak function arch__sample_reg_masks() · 9a4e47ef
      Leo Yan authored
      Every architecture can provide a register list for sampling. If an
      architecture doesn't support register sampling, it won't define the data
      structure 'sample_reg_masks'. Consequently, any code using this
      structure must be protected by the macro 'HAVE_PERF_REGS_SUPPORT'.
      
      This patch defines a weak function, arch__sample_reg_masks(), which will
      be replaced by an architecture-defined function for returning the
      architecture's register list. With this refactoring, the function always
      exists, the condition checking for 'HAVE_PERF_REGS_SUPPORT' is not
      needed anymore, so remove it.
      Signed-off-by: default avatarLeo Yan <leo.yan@linux.dev>
      Reviewed-by: default avatarIan Rogers <irogers@google.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Palmer Dabbelt <palmer@dabbelt.com>
      Cc: Albert Ou <aou@eecs.berkeley.edu>
      Cc: Huacai Chen <chenhuacai@kernel.org>
      Cc: Guo Ren <guoren@kernel.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Ming Wang <wangming01@loongson.cn>
      Cc: John Garry <john.g.garry@oracle.com>
      Cc: Paul Walmsley <paul.walmsley@sifive.com>
      Cc: linux-csky@vger.kernel.org
      Cc: linux-riscv@lists.infradead.org
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240214113947.240957-4-leo.yan@linux.dev
      9a4e47ef
    • Leo Yan's avatar
      perf parse-regs: Always build perf register functions · ec87c99d
      Leo Yan authored
      Currently, the macro HAVE_PERF_REGS_SUPPORT is used as a switch to turn
      on or turn off the code of perf registers. If any architecture cannot
      support perf register, it disables the perf register parsing, for both
      the native parsing and cross parsing for other architectures.
      
      To support both the native parsing and cross parsing, the tool should
      always build the perf regs functions. Thus, this patch removes
      HAVE_PERF_REGS_SUPPORT from the perf regs files.
      Signed-off-by: default avatarLeo Yan <leo.yan@linux.dev>
      Reviewed-by: default avatarIan Rogers <irogers@google.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Palmer Dabbelt <palmer@dabbelt.com>
      Cc: Albert Ou <aou@eecs.berkeley.edu>
      Cc: Huacai Chen <chenhuacai@kernel.org>
      Cc: Guo Ren <guoren@kernel.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Ming Wang <wangming01@loongson.cn>
      Cc: John Garry <john.g.garry@oracle.com>
      Cc: Paul Walmsley <paul.walmsley@sifive.com>
      Cc: linux-csky@vger.kernel.org
      Cc: linux-riscv@lists.infradead.org
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240214113947.240957-3-leo.yan@linux.dev
      ec87c99d
    • Leo Yan's avatar
      perf build: Remove unused CONFIG_PERF_REGS · fca6af7b
      Leo Yan authored
      CONFIG_PERF_REGS is not used, remove it.
      Signed-off-by: default avatarLeo Yan <leo.yan@linux.dev>
      Reviewed-by: default avatarIan Rogers <irogers@google.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Palmer Dabbelt <palmer@dabbelt.com>
      Cc: Albert Ou <aou@eecs.berkeley.edu>
      Cc: Huacai Chen <chenhuacai@kernel.org>
      Cc: Guo Ren <guoren@kernel.org>
      Cc: Will Deacon <will@kernel.org>
      Cc: Mike Leach <mike.leach@linaro.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Ming Wang <wangming01@loongson.cn>
      Cc: John Garry <john.g.garry@oracle.com>
      Cc: Paul Walmsley <paul.walmsley@sifive.com>
      Cc: linux-csky@vger.kernel.org
      Cc: linux-riscv@lists.infradead.org
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240214113947.240957-2-leo.yan@linux.dev
      fca6af7b
  3. 13 Feb, 2024 4 commits
  4. 12 Feb, 2024 5 commits
    • Ian Rogers's avatar
      perf maps: Locking tidy up of nr_maps · 923e4616
      Ian Rogers authored
      After this change maps__nr_maps is only used by tests, existing users
      are migrated to maps__empty. Compute maps__empty under the read lock.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: K Prateek Nayak <kprateek.nayak@amd.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Vincent Whitchurch <vincent.whitchurch@axis.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Colin Ian King <colin.i.king@gmail.com>
      Cc: Changbin Du <changbin.du@huawei.com>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Song Liu <song@kernel.org>
      Cc: Leo Yan <leo.yan@linux.dev>
      Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
      Cc: Liam Howlett <liam.howlett@oracle.com>
      Cc: Artem Savkov <asavkov@redhat.com>
      Cc: bpf@vger.kernel.org
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240210031746.4057262-7-irogers@google.com
      923e4616
    • Ian Rogers's avatar
      perf maps: Hide maps internals · ff0bd799
      Ian Rogers authored
      Move the struct into the C file. Add maps__equal to work around
      exposing the struct for reference count checking. Add accessors for
      the unwind_libunwind_ops. Move maps_list_node to its only use in
      symbol.c.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: K Prateek Nayak <kprateek.nayak@amd.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Vincent Whitchurch <vincent.whitchurch@axis.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Colin Ian King <colin.i.king@gmail.com>
      Cc: Changbin Du <changbin.du@huawei.com>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Song Liu <song@kernel.org>
      Cc: Leo Yan <leo.yan@linux.dev>
      Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
      Cc: Liam Howlett <liam.howlett@oracle.com>
      Cc: Artem Savkov <asavkov@redhat.com>
      Cc: bpf@vger.kernel.org
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240210031746.4057262-6-irogers@google.com
      ff0bd799
    • Ian Rogers's avatar
      perf maps: Get map before returning in maps__find_next_entry · 39a27325
      Ian Rogers authored
      Finding a map is done under a lock, returning the map without a
      reference count means it can be removed without notice and causing
      uses after free. Grab a reference count to the map within the lock
      region and return this. Fix up locations that need a map__put
      following this.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: K Prateek Nayak <kprateek.nayak@amd.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Vincent Whitchurch <vincent.whitchurch@axis.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Colin Ian King <colin.i.king@gmail.com>
      Cc: Changbin Du <changbin.du@huawei.com>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Song Liu <song@kernel.org>
      Cc: Leo Yan <leo.yan@linux.dev>
      Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
      Cc: Liam Howlett <liam.howlett@oracle.com>
      Cc: Artem Savkov <asavkov@redhat.com>
      Cc: bpf@vger.kernel.org
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240210031746.4057262-5-irogers@google.com
      39a27325
    • Ian Rogers's avatar
      perf maps: Get map before returning in maps__find_by_name · 107ef66c
      Ian Rogers authored
      Finding a map is done under a lock, returning the map without a
      reference count means it can be removed without notice and causing
      uses after free. Grab a reference count to the map within the lock
      region and return this. Fix up locations that need a map__put
      following this. Also fix some reference counted pointer comparisons.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: K Prateek Nayak <kprateek.nayak@amd.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Vincent Whitchurch <vincent.whitchurch@axis.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Colin Ian King <colin.i.king@gmail.com>
      Cc: Changbin Du <changbin.du@huawei.com>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Song Liu <song@kernel.org>
      Cc: Leo Yan <leo.yan@linux.dev>
      Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
      Cc: Liam Howlett <liam.howlett@oracle.com>
      Cc: Artem Savkov <asavkov@redhat.com>
      Cc: bpf@vger.kernel.org
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240210031746.4057262-4-irogers@google.com
      107ef66c
    • Ian Rogers's avatar
      perf maps: Get map before returning in maps__find · 42fd623b
      Ian Rogers authored
      Finding a map is done under a lock, returning the map without a
      reference count means it can be removed without notice and causing
      uses after free. Grab a reference count to the map within the lock
      region and return this. Fix up locations that need a map__put
      following this.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: K Prateek Nayak <kprateek.nayak@amd.com>
      Cc: James Clark <james.clark@arm.com>
      Cc: Vincent Whitchurch <vincent.whitchurch@axis.com>
      Cc: Alexey Dobriyan <adobriyan@gmail.com>
      Cc: Colin Ian King <colin.i.king@gmail.com>
      Cc: Changbin Du <changbin.du@huawei.com>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Song Liu <song@kernel.org>
      Cc: Leo Yan <leo.yan@linux.dev>
      Cc: Athira Rajeev <atrajeev@linux.vnet.ibm.com>
      Cc: Liam Howlett <liam.howlett@oracle.com>
      Cc: Artem Savkov <asavkov@redhat.com>
      Cc: bpf@vger.kernel.org
      Signed-off-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Link: https://lore.kernel.org/r/20240210031746.4057262-3-irogers@google.com
      42fd623b