From: Yu Chien Peter Lin <peterlin@andestech.com>
To: opensbi@lists.infradead.org
Subject: [PATCH v3 02/15] sbi: sbi_pmu: Improve sbi_pmu_init() error handling
Date: Wed, 22 Nov 2023 15:36:04 +0800 [thread overview]
Message-ID: <20231122073617.379441-3-peterlin@andestech.com> (raw)
In-Reply-To: <20231122073617.379441-1-peterlin@andestech.com>
This patch makes the following changes:
- As sbi_platform_pmu_init() returns a negative error code on
failure, let sbi_pmu_init() to hang by propagating the error
code.
- In order to distinguish the SBI_EFAIL error returned by
sbi_pmu_add_*_counter_map(), return SBI_ENOENT to indicate
that fdt_pmu_setup() failed to locate "riscv,pmu" node, and
generic_pmu_init() ignores such case.
Signed-off-by: Yu Chien Peter Lin <peterlin@andestech.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
---
Changes v1 -> v2:
- New patch
Changes v2 -> v3:
- Include Anup's RB tag
---
lib/sbi/sbi_pmu.c | 5 ++++-
lib/utils/fdt/fdt_pmu.c | 2 +-
platform/generic/platform.c | 8 +++++++-
3 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/lib/sbi/sbi_pmu.c b/lib/sbi/sbi_pmu.c
index f4c8fc4..3cbd4ff 100644
--- a/lib/sbi/sbi_pmu.c
+++ b/lib/sbi/sbi_pmu.c
@@ -957,6 +957,7 @@ int sbi_pmu_init(struct sbi_scratch *scratch, bool cold_boot)
int hpm_count = sbi_fls(sbi_hart_mhpm_mask(scratch));
struct sbi_pmu_hart_state *phs;
const struct sbi_platform *plat;
+ int rc;
if (cold_boot) {
hw_event_map = sbi_calloc(sizeof(*hw_event_map),
@@ -972,7 +973,9 @@ int sbi_pmu_init(struct sbi_scratch *scratch, bool cold_boot)
plat = sbi_platform_ptr(scratch);
/* Initialize hw pmu events */
- sbi_platform_pmu_init(plat);
+ rc = sbi_platform_pmu_init(plat);
+ if (rc)
+ return rc;
/* mcycle & minstret is available always */
if (!hpm_count)
diff --git a/lib/utils/fdt/fdt_pmu.c b/lib/utils/fdt/fdt_pmu.c
index 83301bb..a8d7648 100644
--- a/lib/utils/fdt/fdt_pmu.c
+++ b/lib/utils/fdt/fdt_pmu.c
@@ -74,7 +74,7 @@ int fdt_pmu_setup(void *fdt)
pmu_offset = fdt_node_offset_by_compatible(fdt, -1, "riscv,pmu");
if (pmu_offset < 0)
- return SBI_EFAIL;
+ return SBI_ENOENT;
event_ctr_map = fdt_getprop(fdt, pmu_offset,
"riscv,event-to-mhpmcounters", &len);
diff --git a/platform/generic/platform.c b/platform/generic/platform.c
index 85acecd..fa400b9 100644
--- a/platform/generic/platform.c
+++ b/platform/generic/platform.c
@@ -265,7 +265,13 @@ static u32 generic_tlb_num_entries(void)
static int generic_pmu_init(void)
{
- return fdt_pmu_setup(fdt_get_address());
+ int rc;
+
+ rc = fdt_pmu_setup(fdt_get_address());
+ if (rc && rc != SBI_ENOENT)
+ return rc;
+
+ return 0;
}
static uint64_t generic_pmu_xlate_to_mhpmevent(uint32_t event_idx,
--
2.34.1
next prev parent reply other threads:[~2023-11-22 7:36 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-22 7:36 [PATCH v3 00/15] Add Andes PMU extension support Yu Chien Peter Lin
2023-11-22 7:36 ` [PATCH v3 01/15] lib: ipi: Adjust Andes PLICSW to single-bit-per-hart scheme Yu Chien Peter Lin
2023-11-24 14:43 ` Lad, Prabhakar
2023-11-22 7:36 ` Yu Chien Peter Lin [this message]
2023-11-22 23:47 ` [PATCH v3 02/15] sbi: sbi_pmu: Improve sbi_pmu_init() error handling Atish Patra
2023-11-28 5:33 ` Yu-Chien Peter Lin
2023-11-24 14:45 ` Lad, Prabhakar
2023-11-22 7:36 ` [PATCH v3 03/15] lib: sbi: Add Xandespmu in hart extensions Yu Chien Peter Lin
2023-11-23 0:02 ` Atish Patra
2023-11-24 14:45 ` Lad, Prabhakar
2023-11-22 7:36 ` [PATCH v3 04/15] sbi: sbi_pmu: Add hw_counter_filter_mode() to pmu device Yu Chien Peter Lin
2023-11-23 0:24 ` Atish Patra
2023-11-28 6:10 ` Yu-Chien Peter Lin
2023-11-22 7:36 ` [PATCH v3 05/15] platform: include: andes45: Add PMU related CSR defines Yu Chien Peter Lin
2023-11-23 16:53 ` Atish Patra
2023-11-24 14:47 ` Lad, Prabhakar
2023-11-22 7:36 ` [PATCH v3 06/15] platform: generic: Introduce pmu_init() platform override Yu Chien Peter Lin
2023-11-23 0:25 ` Atish Patra
2023-11-24 14:49 ` Lad, Prabhakar
2023-11-22 7:36 ` [PATCH v3 07/15] platform: andes: Add Andes custom PMU support Yu Chien Peter Lin
2023-11-23 2:24 ` Samuel Holland
2023-11-28 11:02 ` Yu-Chien Peter Lin
2023-11-22 7:36 ` [PATCH v3 08/15] platform: andes: Enable Andes PMU for AE350 Yu Chien Peter Lin
2023-11-23 16:55 ` Atish Patra
2023-11-24 14:52 ` Lad, Prabhakar
2023-11-22 7:36 ` [PATCH v3 09/15] platform: rzfive: Enable Andes PMU for RZ/Five Yu Chien Peter Lin
2023-11-23 16:56 ` Atish Patra
2023-11-24 14:53 ` Lad, Prabhakar
2023-11-22 7:36 ` [PATCH v3 10/15] lib: utils: fdt_fixup: Allow preserving PMU properties Yu Chien Peter Lin
2023-11-22 23:41 ` Atish Patra
2023-11-24 14:54 ` Lad, Prabhakar
2023-11-25 4:42 ` Anup Patel
2023-11-28 9:57 ` Yu-Chien Peter Lin
2023-11-22 7:36 ` [PATCH v3 11/15] platform: andes: Factor out is_andes() helper Yu Chien Peter Lin
2023-11-22 7:36 ` [PATCH v3 12/15] lib: utils: fdt_pmu: Make the fdt_pmu_evt_select table global variable Yu Chien Peter Lin
2023-11-22 7:36 ` [PATCH v3 13/15] lib: utils: fdt_pmu: Do not iterate over the fdt_pmu_evt_select table Yu Chien Peter Lin
2023-11-22 7:36 ` [PATCH v3 14/15] platform: andes: Add Andes default PMU mapping support Yu Chien Peter Lin
2023-11-24 14:55 ` Lad, Prabhakar
2023-11-22 7:36 ` [PATCH v3 15/15] docs: pmu: Add Andes PMU node example Yu Chien Peter Lin
2023-11-24 14:56 ` Lad, Prabhakar
2023-11-23 0:07 ` [PATCH v3 00/15] Add Andes PMU extension support Atish Patra
2023-11-23 0:27 ` Atish Patra
2023-11-28 5:23 ` Yu-Chien Peter Lin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231122073617.379441-3-peterlin@andestech.com \
--to=peterlin@andestech.com \
--cc=opensbi@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.