On 11/14/24 10:21, Charlie Jenkins wrote:
Add a new hwprobe key "RISCV_HWPROBE_KEY_VENDOR_EXT_THEAD_0" which
allows userspace to probe for the new RISCV_ISA_VENDOR_EXT_XTHEADVECTOR
vendor extension.
Hi Charlie,
How about changing the name of the key from
"RISCV_ISA_VENDOR_EXT_XTHEADVECTOR" to "RISCV_HWPROBE_KEY_VENDOR_EXT_0"
and use marchid to identify what the vendor is, each vendor will have
its own bit definition in this value. So we can avoid adding so many
hwprobe keys for each vendor in the future.
I proposed a commit here:
https://github.com/cyyself/linux/commit/36390645d85d1ac75dd71172f167719df4297f59
This new key will allow userspace code to probe for which thead vendor
extensions are supported. This API is modeled to be consistent with
RISCV_HWPROBE_KEY_IMA_EXT_0. The bitmask returned will have each bit
corresponding to a supported thead vendor extension of the cpumask set.
Just like RISCV_HWPROBE_KEY_IMA_EXT_0, this allows a userspace program
to determine all of the supported thead vendor extensions in one call.
Signed-off-by: Charlie Jenkins <charlie@xxxxxxxxxxxx>
Reviewed-by: Evan Green <evan@xxxxxxxxxxxx>
---
arch/riscv/include/asm/hwprobe.h | 3 +-
.../include/asm/vendor_extensions/thead_hwprobe.h | 19 +++++++++++
.../include/asm/vendor_extensions/vendor_hwprobe.h | 37 ++++++++++++++++++++++
arch/riscv/include/uapi/asm/hwprobe.h | 3 +-
arch/riscv/include/uapi/asm/vendor/thead.h | 3 ++
arch/riscv/kernel/sys_hwprobe.c | 5 +++
arch/riscv/kernel/vendor_extensions/Makefile | 1 +
.../riscv/kernel/vendor_extensions/thead_hwprobe.c | 19 +++++++++++
8 files changed, 88 insertions(+), 2 deletions(-)