On Thu, Apr 24, 2025 at 02:32:01PM +0200, Clément Léger wrote: > > > On 24/04/2025 13:00, Andrew Jones wrote: > > On Thu, Apr 17, 2025 at 02:19:50PM +0200, Clément Léger wrote: > >> This SBI extensions enables supervisor mode to control feature that are > >> under M-mode control (For instance, Svadu menvcfg ADUE bit, Ssdbltrp > >> DTE, etc). Add an interface to set local features for a specific cpu > >> mask as well as for the online cpu mask. > >> > >> Signed-off-by: Clément Léger <cle...@rivosinc.com> > >> Reviewed-by: Andrew Jones <ajo...@ventanamicro.com> > >> --- > >> arch/riscv/include/asm/sbi.h | 17 +++++++++++ > >> arch/riscv/kernel/sbi.c | 57 ++++++++++++++++++++++++++++++++++++ > >> 2 files changed, 74 insertions(+) > >> > >> diff --git a/arch/riscv/include/asm/sbi.h b/arch/riscv/include/asm/sbi.h > >> index 7ec249fea880..c8eab315c80e 100644 > >> --- a/arch/riscv/include/asm/sbi.h > >> +++ b/arch/riscv/include/asm/sbi.h > >> @@ -503,6 +503,23 @@ int sbi_remote_hfence_vvma_asid(const struct cpumask > >> *cpu_mask, > >> unsigned long asid); > >> long sbi_probe_extension(int ext); > >> > >> +int sbi_fwft_set(u32 feature, unsigned long value, unsigned long flags); > >> +int sbi_fwft_local_set_cpumask(const cpumask_t *mask, u32 feature, > >> + unsigned long value, unsigned long flags); > > > > I'm confused by the naming that includes 'local' and 'cpumask' together > > and... > > > >> +/** > >> + * sbi_fwft_local_set() - Set a feature on all online cpus > >> + * @feature: The feature to be set > >> + * @value: The feature value to be set > >> + * @flags: FWFT feature set flags > >> + * > >> + * Return: 0 on success, appropriate linux error code otherwise. > >> + */ > >> +static inline int sbi_fwft_local_set(u32 feature, unsigned long value, > >> + unsigned long flags) > >> +{ > >> + return sbi_fwft_local_set_cpumask(cpu_online_mask, feature, value, > >> flags); > > > > ...that something named with just 'local' is applied to all online cpus. > > I've always considered 'local' functions to only affect the calling cpu. > > Yeah I thought of that as well, local here refers to the fact that this > function applies for a local feature (as described in the SBI > documentation) but agreed that it's really missleading. Any idea for a > better naming ?
I'd drop 'local' from these names and when we deal with global features we can add 'global' to their function names. If we really must have something now, then maybe 'per_cpu' instead of 'local'. Thanks, drew