All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v6 0/7] lib: sbi: Ensure SBI extension is available
@ 2023-05-15 11:12 Andrew Jones
  2023-05-15 11:12 ` [PATCH v6 1/7] lib: sbi: Introduce register_extensions extension callback Andrew Jones
                   ` (6 more replies)
  0 siblings, 7 replies; 16+ messages in thread
From: Andrew Jones @ 2023-05-15 11:12 UTC (permalink / raw)
  To: opensbi

Ensure attempts to invoke SBI extension functions fail with
SBI_ERR_NOT_SUPPORTED when the extension's probe function has reported
that the extension is not available. To avoid invoking probe too
frequently, we check extension availability at init time and skip
registering them in the extension list when their probe fails. If the
probes succeed, we keep them, and then later seeing them is enough to
know they're available. Extensions which have multiple IDs may also need
to narrow their ID range or remove IDs from their range to ensure when
the IDs are seen they are valid.

To handle both the available and valid cases at init time we introduce a
new callback which gets invoked instead of just registering the
extensions. We then modify the callbacks for probing and narrowing as
necessary. Additionally, considering the Base extension probe function
already knows how to set out_val to 1 for available extensions, we simply
remove all the probe functions, as now they must all succeed and none of
them return anything other than 1 on success.

v6:
  - Remove the check in sbi_ecall_vendor_handler() when adding it to
sbi_ecall_vendor_register_extensions()
  - Better line wrapping of the comments added for documenting the
    extension struct members
  - Added Anup's r-b's

v5:
  Another rework where I finally take Anup's advice that he gave on
  the initial posting and more or less replace probe with a new
  init callback.

v4:
  Almost a total redesign. Patch1 of the v4 (now series) does keep
  hunk 2 of the v3 patch, but the changes to sbi_ecall_find_extension()
  of the v3 patch have been dropped. Instead multi-ID extensions can
  now make use of a new extension callback (Patch2) which gets invoked
  at init time. This new callback has been applied to vendor extensions
  with Patch3.

v3: http://lists.infradead.org/pipermail/opensbi/2023-May/004894.html

Andrew Jones (6):
  lib: sbi: Introduce register_extensions extension callback
  lib: sbi: Narrow vendor extension range
  lib: sbi: pmu: Remove unnecessary probe function
  lib: sbi: Only register available extensions
  lib: sbi: Remove 0/1 probe implementations
  lib: sbi: Document sbi_ecall_extension members

Xiang W (1):
  lib: sbi: Optimize probe of srst/susp

 include/sbi/sbi_ecall.h    | 36 ++++++++++++++++++++++++++++++++++++
 lib/sbi/sbi_ecall.c        |  5 ++++-
 lib/sbi/sbi_ecall_base.c   | 14 +++++++++++---
 lib/sbi/sbi_ecall_cppc.c   | 18 +++++++++++-------
 lib/sbi/sbi_ecall_dbcn.c   | 18 +++++++++++-------
 lib/sbi/sbi_ecall_hsm.c    | 14 +++++++++++---
 lib/sbi/sbi_ecall_ipi.c    | 14 +++++++++++---
 lib/sbi/sbi_ecall_legacy.c | 14 +++++++++++---
 lib/sbi/sbi_ecall_pmu.c    | 16 ++++++++--------
 lib/sbi/sbi_ecall_rfence.c | 14 +++++++++++---
 lib/sbi/sbi_ecall_srst.c   | 28 ++++++++++++++++++----------
 lib/sbi/sbi_ecall_susp.c   | 27 ++++++++++++++++++---------
 lib/sbi/sbi_ecall_time.c   | 14 +++++++++++---
 lib/sbi/sbi_ecall_vendor.c | 38 +++++++++++++++++++-------------------
 14 files changed, 191 insertions(+), 79 deletions(-)

-- 
2.40.0



^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2023-05-21 15:32 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-05-15 11:12 [PATCH v6 0/7] lib: sbi: Ensure SBI extension is available Andrew Jones
2023-05-15 11:12 ` [PATCH v6 1/7] lib: sbi: Introduce register_extensions extension callback Andrew Jones
2023-05-21 15:26   ` Anup Patel
2023-05-15 11:12 ` [PATCH v6 2/7] lib: sbi: Narrow vendor extension range Andrew Jones
2023-05-15 13:43   ` Anup Patel
2023-05-21 15:26   ` Anup Patel
2023-05-15 11:12 ` [PATCH v6 3/7] lib: sbi: pmu: Remove unnecessary probe function Andrew Jones
2023-05-21 15:26   ` Anup Patel
2023-05-15 11:12 ` [PATCH v6 4/7] lib: sbi: Only register available extensions Andrew Jones
2023-05-21 15:31   ` Anup Patel
2023-05-15 11:12 ` [PATCH v6 5/7] lib: sbi: Optimize probe of srst/susp Andrew Jones
2023-05-21 15:31   ` Anup Patel
2023-05-15 11:12 ` [PATCH v6 6/7] lib: sbi: Remove 0/1 probe implementations Andrew Jones
2023-05-21 15:31   ` Anup Patel
2023-05-15 11:12 ` [PATCH v6 7/7] lib: sbi: Document sbi_ecall_extension members Andrew Jones
2023-05-21 15:32   ` Anup Patel

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.