From: Anup Patel <apatel@ventanamicro.com>
To: opensbi@lists.infradead.org
Subject: [PATCH 09/11] lib: sbi: Detect hart features only once for each hart
Date: Fri, 29 Apr 2022 21:21:49 +0530 [thread overview]
Message-ID: <20220429155151.314788-10-apatel@ventanamicro.com> (raw)
In-Reply-To: <20220429155151.314788-1-apatel@ventanamicro.com>
Currently, the hart_detect_features() is called everytime a hart
is stopped and started again which is unnecessary work.
We update hart_detect_features() to detect hart features only
once for each hart.
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
---
lib/sbi/sbi_hart.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/lib/sbi/sbi_hart.c b/lib/sbi/sbi_hart.c
index 956d185..28a7e75 100644
--- a/lib/sbi/sbi_hart.c
+++ b/lib/sbi/sbi_hart.c
@@ -28,6 +28,7 @@ extern void __sbi_expected_trap_hext(void);
void (*sbi_hart_expected_trap)(void) = &__sbi_expected_trap;
struct hart_features {
+ bool detected;
int priv_version;
unsigned long extensions;
unsigned int pmp_count;
@@ -510,11 +511,15 @@ static int hart_pmu_get_allowed_bits(void)
static void hart_detect_features(struct sbi_scratch *scratch)
{
struct sbi_trap_info trap = {0};
- struct hart_features *hfeatures;
+ struct hart_features *hfeatures =
+ sbi_scratch_offset_ptr(scratch, hart_features_offset);
unsigned long val, oldval;
- /* Reset hart features */
- hfeatures = sbi_scratch_offset_ptr(scratch, hart_features_offset);
+ /* If hart features already detected then do nothing */
+ if (hfeatures->detected)
+ return;
+
+ /* Clear hart features */
hfeatures->extensions = 0;
hfeatures->pmp_count = 0;
hfeatures->mhpm_count = 0;
@@ -642,6 +647,9 @@ __mhpm_skip:
hfeatures->extensions |= BIT(SBI_HART_EXT_SMSTATEEN);
}
+ /* Mark hart feature detection done */
+ hfeatures->detected = true;
+
return;
}
--
2.34.1
next prev parent reply other threads:[~2022-04-29 15:51 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-29 15:51 [PATCH 00/11] HART Feature Improvements Anup Patel
2022-04-29 15:51 ` [PATCH 01/11] lib: sbi: Detect and print privileged spec version Anup Patel
2022-05-04 1:42 ` Atish Patra
2022-05-07 4:57 ` Anup Patel
2022-04-29 15:51 ` [PATCH 02/11] lib: sbi: Remove 's' and 'u' from misa_string() output Anup Patel
2022-05-04 1:42 ` Atish Patra
2022-05-07 4:58 ` Anup Patel
2022-04-29 15:51 ` [PATCH 03/11] lib: sbi: Update the name of ISA string printed at boot time Anup Patel
2022-05-04 1:55 ` Atish Patra
2022-05-07 4:59 ` Anup Patel
2022-04-29 15:51 ` [PATCH 04/11] lib: sbi: Remove MCOUNTEREN and SCOUNTEREN hart features Anup Patel
2022-05-04 1:51 ` Atish Patra
2022-05-04 1:55 ` Atish Patra
2022-05-07 5:00 ` Anup Patel
2022-04-29 15:51 ` [PATCH 05/11] lib: sbi: Remove MCOUNTINHIBT hart feature Anup Patel
2022-05-04 1:56 ` Atish Patra
2022-05-07 5:00 ` Anup Patel
2022-04-29 15:51 ` [PATCH 06/11] lib: sbi: Remove MENVCFG " Anup Patel
2022-05-04 1:57 ` Atish Patra
2022-05-07 5:03 ` Anup Patel
2022-04-29 15:51 ` [PATCH 07/11] lib: sbi: Fix AIA feature detection Anup Patel
2022-05-04 1:57 ` Atish Patra
2022-05-07 5:03 ` Anup Patel
2022-04-29 15:51 ` [PATCH 08/11] lib: sbi: Convert hart features into hart extensions Anup Patel
2022-05-04 2:00 ` Atish Patra
2022-05-07 5:04 ` Anup Patel
2022-04-29 15:51 ` Anup Patel [this message]
2022-05-04 2:01 ` [PATCH 09/11] lib: sbi: Detect hart features only once for each hart Atish Patra
2022-05-07 5:04 ` Anup Patel
2022-04-29 15:51 ` [PATCH 10/11] lib: sbi: Add sbi_hart_update_extension() function Anup Patel
2022-05-04 2:02 ` Atish Patra
2022-05-07 5:04 ` Anup Patel
2022-04-29 15:51 ` [PATCH 11/11] lib: sbi_platform: Add callback to populate HART extensions Anup Patel
2022-05-04 2:05 ` Atish Patra
2022-05-07 5:05 ` Anup Patel
2022-05-05 16:30 ` [PATCH 00/11] HART Feature Improvements Xiang W
2022-05-06 3:21 ` Anup Patel
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=20220429155151.314788-10-apatel@ventanamicro.com \
--to=apatel@ventanamicro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox