KVM RISC-V Conditional Operations
Subsystems (5)
v3 cover KVM RISC-V Conditional Operations
This series extends KVM RISC-V to allow Guest/VM discover and use conditional operations related ISA extensions (namely XVentanaCondOps and Zicond).
To try these patches, use KVMTOOL from riscv_zbx_zicntr_smstateen_condops_v1 branch at: https://github.com/avpatel/kvmtool.git
These patches are based upon the latest riscv_kvm_queue and can also be found in the riscv_kvm_condops_v3 branch at:
https://github.com/avpatel/linux.git
Changes since v2:
- Dropped patch1, patch2, and patch5 since these patches don't meet the requirements of patch acceptance policy.
Changes since v1:
- Rebased the series on riscv_kvm_queue
- Split PATCH1 and PATCH2 of v1 series into two patches
- Added separate test configs for XVentanaCondOps and Zicond in PATCH7 of v1 series.
Anup Patel (6):
dt-bindings: riscv: Add Zicond extension entry
RISC-V: Detect Zicond from ISA string
RISC-V: KVM: Allow Zicond extension for Guest/VM
KVM: riscv: selftests: Add senvcfg register to get-reg-list test
KVM: riscv: selftests: Add smstateen registers to get-reg-list test
KVM: riscv: selftests: Add condops extensions to get-reg-list test
.../devicetree/bindings/riscv/extensions.yaml | 6 +++ arch/riscv/include/asm/hwcap.h | 1 + arch/riscv/include/uapi/asm/kvm.h | 1 + arch/riscv/kernel/cpufeature.c | 1 + arch/riscv/kvm/vcpu_onereg.c | 2 + .../selftests/kvm/riscv/get-reg-list.c | 54 +++++++++++++++++++ 6 files changed, 65 insertions(+)
Signature · 1 line
2.34.1
PATCH v3 1/6 dt-bindings: riscv: Add Zicond extension entry
Add an entry for the Zicond extension to the riscv,isa-extensions property.
--- Documentation/devicetree/bindings/riscv/extensions.yaml | 6 ++++++ 1 file changed, 6 insertions(+)
Documentation/devicetree/bindings/riscv/extensions.yaml +6 -0
@@ -218,6 +218,12 @@ properties: ratified in the 20191213 version of the unprivileged ISA specification. + - const: zicond + description: + The standard Zicond extension for conditional arithmetic and + conditional-select/move operations as ratified in commit 95cf1f9 + ("Add changes requested by Ved during signoff") of riscv-zicond. + - const: zicsr description: | The standard Zicsr extension for control and status register
Signature · 1 line
2.34.1
PATCH v3 2/6 RISC-V: Detect Zicond from ISA string
In reply to Anup PatelThe RISC-V integer conditional (Zicond) operation extension defines standard conditional arithmetic and conditional-select/move operations which are inspired from the XVentanaCondOps extension. In fact, QEMU RISC-V also has support for emulating Zicond extension.
Let us detect Zicond extension from ISA string available through DT or ACPI.
--- arch/riscv/include/asm/hwcap.h | 1 + arch/riscv/kernel/cpufeature.c | 1 + 2 files changed, 2 insertions(+)
arch/riscv/include/asm/hwcap.h +1 -0
@@ -59,6 +59,7 @@#define RISCV_ISA_EXT_ZIFENCEI 41#define RISCV_ISA_EXT_ZIHPM 42#define RISCV_ISA_EXT_SMSTATEEN 43 +#define RISCV_ISA_EXT_ZICOND 44#define RISCV_ISA_EXT_MAX 64
arch/riscv/kernel/cpufeature.c +1 -0
@@ -167,6 +167,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] = {__RISCV_ISA_EXT_DATA (zicbom,RISCV_ISA_EXT_ZICBOM ),__RISCV_ISA_EXT_DATA (zicboz,RISCV_ISA_EXT_ZICBOZ ),__RISCV_ISA_EXT_DATA (zicntr,RISCV_ISA_EXT_ZICNTR ), +__RISCV_ISA_EXT_DATA (zicond,RISCV_ISA_EXT_ZICOND ),__RISCV_ISA_EXT_DATA (zicsr,RISCV_ISA_EXT_ZICSR ),__RISCV_ISA_EXT_DATA (zifencei,RISCV_ISA_EXT_ZIFENCEI ), __RISCV_ISA_EXT_DATA(zihintpause, RISCV_ISA_EXT_ZIHINTPAUSE),
Signature · 1 line
2.34.1
Re: [PATCH v3 2/6] RISC-V: Detect Zicond from ISA string
Quoted 33 lines · apatel at ventanamicro.com
The RISC-V integer conditional (Zicond) operation extension defines standard conditional arithmetic and conditional-select/move operations which are inspired from the XVentanaCondOps extension. In fact, QEMU RISC-V also has support for emulating Zicond extension.
Let us detect Zicond extension from ISA string available through DT or ACPI.
Signed-off-by Anup Patel <[email protected]>Reviewed-by Andrew Jones <[email protected]>Reviewed-by Conor Dooley <[email protected]>--- arch/riscv/include/asm/hwcap.h | 1 + arch/riscv/kernel/cpufeature.c | 1 + 2 files changed, 2 insertions(+)arch/riscv/include/asm/hwcap.h +1
-0@@ -59,6 +59,7 @@#define RISCV_ISA_EXT_ZIFENCEI 41#define RISCV_ISA_EXT_ZIHPM 42#define RISCV_ISA_EXT_SMSTATEEN 43 +#define RISCV_ISA_EXT_ZICOND 44#define RISCV_ISA_EXT_MAX 64arch/riscv/kernel/cpufeature.c +0
-0
arch/riscv/kernel/cpufeature.c const struct riscv_isa_ext_data riscv_isa_ext[] = { · line 173
Quoted 7 lines
arch/riscv/kernel/cpufeature.c +1
-0@@ -167,6 +167,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] = {__RISCV_ISA_EXT_DATA (zicbom,RISCV_ISA_EXT_ZICBOM ),__RISCV_ISA_EXT_DATA (zicboz,RISCV_ISA_EXT_ZICBOZ ),__RISCV_ISA_EXT_DATA (zicntr,RISCV_ISA_EXT_ZICNTR ), +__RISCV_ISA_EXT_DATA (zicond,RISCV_ISA_EXT_ZICOND ),__RISCV_ISA_EXT_DATA (zicsr,RISCV_ISA_EXT_ZICSR ),__RISCV_ISA_EXT_DATA (zifencei,RISCV_ISA_EXT_ZIFENCEI ), __RISCV_ISA_EXT_DATA(zihintpause, RISCV_ISA_EXT_ZIHINTPAUSE),
Can we do a shared tag, though? These will conflict.
Anup Patel
maintainerRe: [PATCH v3 2/6] RISC-V: Detect Zicond from ISA string
Quoted 45 lines · On Wed, Oct 4, 2023 at 7:37?PM Palmer Dabbelt <[email protected]> wrote:
Quoted 33 lines · apatel at ventanamicro.com
The RISC-V integer conditional (Zicond) operation extension defines standard conditional arithmetic and conditional-select/move operations which are inspired from the XVentanaCondOps extension. In fact, QEMU RISC-V also has support for emulating Zicond extension.
Let us detect Zicond extension from ISA string available through DT or ACPI.
Signed-off-by Anup Patel <[email protected]>Reviewed-by Andrew Jones <[email protected]>Reviewed-by Conor Dooley <[email protected]>--- arch/riscv/include/asm/hwcap.h | 1 + arch/riscv/kernel/cpufeature.c | 1 + 2 files changed, 2 insertions(+)arch/riscv/include/asm/hwcap.h +1
-0@@ -59,6 +59,7 @@#define RISCV_ISA_EXT_ZIFENCEI 41#define RISCV_ISA_EXT_ZIHPM 42#define RISCV_ISA_EXT_SMSTATEEN 43 +#define RISCV_ISA_EXT_ZICOND 44#define RISCV_ISA_EXT_MAX 64arch/riscv/kernel/cpufeature.c +0
-0arch/riscv/kernel/cpufeature.c const struct riscv_isa_ext_data riscv_isa_ext[] = { · line 173
Quoted 7 lines
arch/riscv/kernel/cpufeature.c +1
-0@@ -167,6 +167,7 @@ const struct riscv_isa_ext_data riscv_isa_ext[] = {__RISCV_ISA_EXT_DATA (zicbom,RISCV_ISA_EXT_ZICBOM ),__RISCV_ISA_EXT_DATA (zicboz,RISCV_ISA_EXT_ZICBOZ ),__RISCV_ISA_EXT_DATA (zicntr,RISCV_ISA_EXT_ZICNTR ), +__RISCV_ISA_EXT_DATA (zicond,RISCV_ISA_EXT_ZICOND ),__RISCV_ISA_EXT_DATA (zicsr,RISCV_ISA_EXT_ZICSR ),__RISCV_ISA_EXT_DATA (zifencei,RISCV_ISA_EXT_ZIFENCEI ), __RISCV_ISA_EXT_DATA(zihintpause, RISCV_ISA_EXT_ZIHINTPAUSE),Acked-by Palmer Dabbelt <[email protected]>
Quoted 1 line
Can we do a shared tag, though? These will conflict.
Thanks Palmer.
I will provide a shared tag based on 6.6-rc5 sometime next week. I hope this is okay for you.
Regards,
Anup
Quoted 5 lines
--
kvm-riscv mailing list
kvm-riscv at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kvm-riscv
PATCH v3 3/6 RISC-V: KVM: Allow Zicond extension for Guest/VM
In reply to Anup PatelWe extend the KVM ISA extension ONE_REG interface to allow KVM user space to detect and enable Zicond extension for Guest/VM.
--- arch/riscv/include/uapi/asm/kvm.h | 1 + arch/riscv/kvm/vcpu_onereg.c | 2 ++ 2 files changed, 3 insertions(+)
arch/riscv/include/uapi/asm/kvm.h +1 -0
@@ -138,6 +138,7 @@ enum KVM_RISCV_ISA_EXT_ID {KVM_RISCV_ISA_EXT_ZIFENCEI ,KVM_RISCV_ISA_EXT_ZIHPM ,KVM_RISCV_ISA_EXT_SMSTATEEN , +KVM_RISCV_ISA_EXT_ZICOND , KVM_RISCV_ISA_EXT_MAX, };
arch/riscv/kvm/vcpu_onereg.c +2 -0
@@ -46,6 +46,7 @@ static const unsigned long kvm_isa_ext_arr[] = {KVM_ISA_EXT_ARR (ZICBOM ),KVM_ISA_EXT_ARR (ZICBOZ ),KVM_ISA_EXT_ARR (ZICNTR ), +KVM_ISA_EXT_ARR (ZICOND ),KVM_ISA_EXT_ARR (ZICSR ),KVM_ISA_EXT_ARR (ZIFENCEI ), KVM_ISA_EXT_ARR(ZIHINTPAUSE),
@@ -93,6 +94,7 @@ static bool kvm_riscv_vcpu_isa_disable_allowed(unsigned long ext)case KVM_RISCV_ISA_EXT_ZBB :case KVM_RISCV_ISA_EXT_ZBS :case KVM_RISCV_ISA_EXT_ZICNTR : +case KVM_RISCV_ISA_EXT_ZICOND :case KVM_RISCV_ISA_EXT_ZICSR :case KVM_RISCV_ISA_EXT_ZIFENCEI :case KVM_RISCV_ISA_EXT_ZIHINTPAUSE :
Signature · 1 line
2.34.1
PATCH v3 4/6 KVM: riscv: selftests: Add senvcfg register to get-reg-list test
In reply to Anup PatelWe have a new senvcfg register in the general CSR ONE_REG interface so let us add it to get-reg-list test.
--- tools/testing/selftests/kvm/riscv/get-reg-list.c | 3 +++ 1 file changed, 3 insertions(+)
tools/testing/selftests/kvm/riscv/get-reg-list.c +3 -0
@@ -211,6 +211,8 @@ static const char *general_csr_id_to_str(__u64 reg_off)return RISCV_CSR_GENERAL (satp);case KVM_REG_RISCV_CSR_REG (scounteren):return RISCV_CSR_GENERAL (scounteren); +case KVM_REG_RISCV_CSR_REG (senvcfg): +return RISCV_CSR_GENERAL (senvcfg); }TEST_FAIL ("Unknown general csr reg: 0x%llx" , reg_off);
@@ -540,6 +542,7 @@ static __u64 base_regs[] = {KVM_REG_RISCV |KVM_REG_SIZE_ULONG |KVM_REG_RISCV_CSR |KVM_REG_RISCV_CSR_GENERAL |KVM_REG_RISCV_CSR_REG (sip),KVM_REG_RISCV |KVM_REG_SIZE_ULONG |KVM_REG_RISCV_CSR |KVM_REG_RISCV_CSR_GENERAL |KVM_REG_RISCV_CSR_REG (satp),KVM_REG_RISCV |KVM_REG_SIZE_ULONG |KVM_REG_RISCV_CSR |KVM_REG_RISCV_CSR_GENERAL |KVM_REG_RISCV_CSR_REG (scounteren), +KVM_REG_RISCV |KVM_REG_SIZE_ULONG |KVM_REG_RISCV_CSR |KVM_REG_RISCV_CSR_GENERAL |KVM_REG_RISCV_CSR_REG (senvcfg),KVM_REG_RISCV |KVM_REG_SIZE_U64 |KVM_REG_RISCV_TIMER |KVM_REG_RISCV_TIMER_REG (frequency),KVM_REG_RISCV |KVM_REG_SIZE_U64 |KVM_REG_RISCV_TIMER |KVM_REG_RISCV_TIMER_REG (time), KVM_REG_RISCV | KVM_REG_SIZE_U64 | KVM_REG_RISCV_TIMER | KVM_REG_RISCV_TIMER_REG(compare),
Signature · 1 line
2.34.1
PATCH v3 5/6 KVM: riscv: selftests: Add smstateen registers to get-reg-list test
In reply to Anup PatelWe have a new smstateen registers as separate sub-type of CSR ONE_REG interface so let us add these registers to get-reg-list test.
--- .../selftests/kvm/riscv/get-reg-list.c | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+)
tools/testing/selftests/kvm/riscv/get-reg-list.c +34 -0
@@ -36,6 +36,7 @@ bool filter_reg(__u64 reg)case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_I :case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_M :case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_V : +case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_SMSTATEEN :case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_SSAIA :case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_SSTC :case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_SVINVAL :
@@ -186,6 +187,8 @@ static const char *core_id_to_str(const char *prefix, __u64 id) "KVM_REG_RISCV_CSR_GENERAL | KVM_REG_RISCV_CSR_REG(" #csr ")"#define RISCV_CSR_AIA (csr) \ "KVM_REG_RISCV_CSR_AIA | KVM_REG_RISCV_CSR_REG(" #csr ")" +#define RISCV_CSR_SMSTATEEN (csr) \ + "KVM_REG_RISCV_CSR_SMSTATEEN | KVM_REG_RISCV_CSR_REG(" #csr ")"static const char *general_csr_id_to_str (__u64 reg_off) {
@@ -243,6 +246,18 @@ static const char *aia_csr_id_to_str(__u64 reg_off)return NULL ; } +static const char *smstateen_csr_id_to_str (__u64 reg_off) +{ +/* reg_off is the offset into struct kvm_riscv_smstateen_csr */ +switch (reg_off) { +case KVM_REG_RISCV_CSR_SMSTATEEN_REG (sstateen0): +return RISCV_CSR_SMSTATEEN (sstateen0); + } + +TEST_FAIL ("Unknown smstateen csr reg: 0x%llx" , reg_off); +return NULL ; +} +static const char *csr_id_to_str (const char *prefix,__u64 id) {__u64 reg_off = id & ~(REG_MASK |KVM_REG_RISCV_CSR );
@@ -255,6 +270,8 @@ static const char *csr_id_to_str(const char *prefix, __u64 id)return general_csr_id_to_str (reg_off);case KVM_REG_RISCV_CSR_AIA :return aia_csr_id_to_str (reg_off); +case KVM_REG_RISCV_CSR_SMSTATEEN : +return smstateen_csr_id_to_str (reg_off); }TEST_FAIL ("%s: Unknown csr subtype: 0x%llx" , prefix, reg_subtype);
@@ -332,6 +349,7 @@ static const char *isa_ext_id_to_str(__u64 id)KVM_ISA_EXT_ARR (I ),KVM_ISA_EXT_ARR (M ),KVM_ISA_EXT_ARR (V ), +KVM_ISA_EXT_ARR (SMSTATEEN ),KVM_ISA_EXT_ARR (SSAIA ),KVM_ISA_EXT_ARR (SSTC ), KVM_ISA_EXT_ARR(SVINVAL),
@@ -637,6 +655,11 @@ static __u64 aia_regs[] = { KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_SSAIA, }; +static __u64 smstateen_regs[] = { +KVM_REG_RISCV |KVM_REG_SIZE_ULONG |KVM_REG_RISCV_CSR |KVM_REG_RISCV_CSR_SMSTATEEN |KVM_REG_RISCV_CSR_SMSTATEEN_REG (sstateen0), +KVM_REG_RISCV |KVM_REG_SIZE_ULONG |KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_SMSTATEEN , +}; +static __u64 fp_f_regs[] = {KVM_REG_RISCV |KVM_REG_SIZE_U32 |KVM_REG_RISCV_FP_F |KVM_REG_RISCV_FP_F_REG (f[0 ]),KVM_REG_RISCV |KVM_REG_SIZE_U32 |KVM_REG_RISCV_FP_F |KVM_REG_RISCV_FP_F_REG (f[1 ]),
@@ -744,6 +767,8 @@ static __u64 fp_d_regs[] = { {"zihpm", .feature = KVM_RISCV_ISA_EXT_ZIHPM, .regs = zihpm_regs, .regs_n = ARRAY_SIZE(zihpm_regs),}#define AIA_REGS_SUBLIST \ {"aia", .feature = KVM_RISCV_ISA_EXT_SSAIA, .regs = aia_regs, .regs_n = ARRAY_SIZE(aia_regs),} +#define SMSTATEEN_REGS_SUBLIST \ + {"smstateen", .feature = KVM_RISCV_ISA_EXT_SMSTATEEN, .regs = smstateen_regs, .regs_n = ARRAY_SIZE(smstateen_regs),}#define FP_F_REGS_SUBLIST \ {"fp_f", .feature = KVM_RISCV_ISA_EXT_F, .regs = fp_f_regs, \ .regs_n = ARRAY_SIZE(fp_f_regs),}
@@ -871,6 +896,14 @@ static struct vcpu_reg_list aia_config = { }, }; +static struct vcpu_reg_list smstateen_config = { + .sublists = { +BASE_SUBLIST , +SMSTATEEN_REGS_SUBLIST , + {0 }, + }, +}; +static struct vcpu_reg_list fp_f_config = { .sublists = {BASE_SUBLIST ,
@@ -903,6 +936,7 @@ struct vcpu_reg_list *vcpu_configs[] = { &zifencei_config, &zihpm_config, &aia_config, + &smstateen_config, &fp_f_config, &fp_d_config, };
Signature · 1 line
2.34.1
PATCH v3 6/6 KVM: riscv: selftests: Add condops extensions to get-reg-list test
In reply to Anup PatelWe have a new conditional operations related ISA extensions so let us add these extensions to get-reg-list test.
--- .../testing/selftests/kvm/riscv/get-reg-list.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
tools/testing/selftests/kvm/riscv/get-reg-list.c +17 -0
@@ -48,6 +48,7 @@ bool filter_reg(__u64 reg)case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_ZICBOM :case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_ZICBOZ :case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_ZICNTR : +case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_ZICOND :case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_ZICSR :case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_ZIFENCEI :case KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_ZIHINTPAUSE :
@@ -361,6 +362,7 @@ static const char *isa_ext_id_to_str(__u64 id)KVM_ISA_EXT_ARR (ZICBOM ),KVM_ISA_EXT_ARR (ZICBOZ ),KVM_ISA_EXT_ARR (ZICNTR ), +KVM_ISA_EXT_ARR (ZICOND ),KVM_ISA_EXT_ARR (ZICSR ),KVM_ISA_EXT_ARR (ZIFENCEI ), KVM_ISA_EXT_ARR(ZIHINTPAUSE),
@@ -632,6 +634,10 @@ static __u64 zicntr_regs[] = { KVM_REG_RISCV | KVM_REG_SIZE_ULONG | KVM_REG_RISCV_ISA_EXT | KVM_RISCV_ISA_EXT_ZICNTR, }; +static __u64 zicond_regs[] = { +KVM_REG_RISCV |KVM_REG_SIZE_ULONG |KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_ZICOND , +}; +static __u64 zicsr_regs[] = {KVM_REG_RISCV |KVM_REG_SIZE_ULONG |KVM_REG_RISCV_ISA_EXT |KVM_RISCV_ISA_EXT_ZICSR , };
@@ -759,6 +765,8 @@ static __u64 fp_d_regs[] = { {"zbs", .feature = KVM_RISCV_ISA_EXT_ZBS, .regs = zbs_regs, .regs_n = ARRAY_SIZE(zbs_regs),}#define ZICNTR_REGS_SUBLIST \ {"zicntr", .feature = KVM_RISCV_ISA_EXT_ZICNTR, .regs = zicntr_regs, .regs_n = ARRAY_SIZE(zicntr_regs),} +#define ZICOND_REGS_SUBLIST \ + {"zicond", .feature = KVM_RISCV_ISA_EXT_ZICOND, .regs = zicond_regs, .regs_n = ARRAY_SIZE(zicond_regs),}#define ZICSR_REGS_SUBLIST \ {"zicsr", .feature = KVM_RISCV_ISA_EXT_ZICSR, .regs = zicsr_regs, .regs_n = ARRAY_SIZE(zicsr_regs),}#define ZIFENCEI_REGS_SUBLIST \
@@ -864,6 +872,14 @@ static struct vcpu_reg_list zicntr_config = { }, }; +static struct vcpu_reg_list zicond_config = { + .sublists = { +BASE_SUBLIST , +ZICOND_REGS_SUBLIST , + {0 }, + }, +}; +static struct vcpu_reg_list zicsr_config = { .sublists = {BASE_SUBLIST ,
@@ -932,6 +948,7 @@ struct vcpu_reg_list *vcpu_configs[] = { &zbb_config, &zbs_config, &zicntr_config, + &zicond_config, &zicsr_config, &zifencei_config, &zihpm_config,
Signature · 1 line
2.34.1
Anup Patel
maintainerQuoted 22 lines · On Tue, Oct 3, 2023 at 9:22?AM Anup Patel <[email protected]> wrote:
This series extends KVM RISC-V to allow Guest/VM discover and use conditional operations related ISA extensions (namely XVentanaCondOps and Zicond).
To try these patches, use KVMTOOL from
riscv_zbx_zicntr_smstateen_condops_v1branch at: https://github.com/avpatel/kvmtool.gitThese patches are based upon the latest
riscv_kvm_queueand can also be found in theriscv_kvm_condops_v3branch at:
https://github.com/avpatel/linux.gitChanges since v2:
- Dropped patch1, patch2, and patch5 since these patches don't meet the requirements of patch acceptance policy.Changes since v1:
- Rebased the series onriscv_kvm_queue
- Split PATCH1 and PATCH2 of v1 series into two patches
- Added separate test configs for XVentanaCondOps and Zicond in PATCH7 of v1 series.
Quoted 7 lines
Anup Patel (6):
dt-bindings: riscv: Add Zicond extension entry
RISC-V: Detect Zicond from ISA string
RISC-V: KVM: Allow Zicond extension for Guest/VM
KVM: riscv: selftests: Add senvcfg register to get-reg-list test
KVM: riscv: selftests: Add smstateen registers to get-reg-list test
KVM: riscv: selftests: Add condops extensions to get-reg-list test
Queued this series for Linux-6.7
Thanks,
Anup
Quoted 12 lines
.../devicetree/bindings/riscv/extensions.yaml | 6 +++ arch/riscv/include/asm/hwcap.h | 1 + arch/riscv/include/uapi/asm/kvm.h | 1 + arch/riscv/kernel/cpufeature.c | 1 + arch/riscv/kvm/vcpu_onereg.c | 2 + .../selftests/kvm/riscv/get-reg-list.c | 54 +++++++++++++++++++ 6 files changed, 65 insertions(+)--
2.34.1
Anup Patel
maintainerHi Palmer,
Quoted 32 lines · On Thu, Oct 5, 2023 at 11:35?AM Anup Patel <[email protected]> wrote:
Quoted 22 lines · On Tue, Oct 3, 2023 at 9:22?AM Anup Patel <[email protected]> wrote:
This series extends KVM RISC-V to allow Guest/VM discover and use conditional operations related ISA extensions (namely XVentanaCondOps and Zicond).
To try these patches, use KVMTOOL from
riscv_zbx_zicntr_smstateen_condops_v1branch at: https://github.com/avpatel/kvmtool.gitThese patches are based upon the latest
riscv_kvm_queueand can also be found in theriscv_kvm_condops_v3branch at:
https://github.com/avpatel/linux.gitChanges since v2:
- Dropped patch1, patch2, and patch5 since these patches don't meet the requirements of patch acceptance policy.Changes since v1:
- Rebased the series onriscv_kvm_queue
- Split PATCH1 and PATCH2 of v1 series into two patches
- Added separate test configs for XVentanaCondOps and Zicond in PATCH7 of v1 series.Quoted 7 lines
Anup Patel (6):
dt-bindings: riscv: Add Zicond extension entry
RISC-V: Detect Zicond from ISA string
RISC-V: KVM: Allow Zicond extension for Guest/VM
KVM: riscv: selftests: Add senvcfg register to get-reg-list test
KVM: riscv: selftests: Add smstateen registers to get-reg-list test
KVM: riscv: selftests: Add condops extensions to get-reg-list test
Quoted 1 line
Queued this series for Linux-6.7
I have created shared tag kvm-riscv-shared-tag-6.7 in the KVM RISC-V repo at:
https://github.com/kvm-riscv/linux.git
This shared tag is based on 6.6-rc5 and contains following 4 patches:
dt-bindings: riscv: Add Zicond extension entry
RISC-V: Detect Zicond from ISA string
dt-bindings: riscv: Add smstateen entry
RISC-V: Detect Smstateen extension
Thanks,
Anup
Quoted 16 lines
Thanks,
AnupQuoted 12 lines
.../devicetree/bindings/riscv/extensions.yaml | 6 +++ arch/riscv/include/asm/hwcap.h | 1 + arch/riscv/include/uapi/asm/kvm.h | 1 + arch/riscv/kernel/cpufeature.c | 1 + arch/riscv/kvm/vcpu_onereg.c | 2 + .../selftests/kvm/riscv/get-reg-list.c | 54 +++++++++++++++++++ 6 files changed, 65 insertions(+)--
2.34.1
This series was applied to riscv/linux.git (fixes) by Anup Patel <[email protected]>:
Hello:
This series was applied to riscv/linux.git (fixes) by Anup Patel <[email protected]>:
Quoted 8 lines · On Tue, 3 Oct 2023 09:22:20 +0530 you wrote:
This series extends KVM RISC-V to allow Guest/VM discover and use conditional operations related ISA extensions (namely XVentanaCondOps and Zicond).
To try these patches, use KVMTOOL from
riscv_zbx_zicntr_smstateen_condops_v1branch at: https://github.com/avpatel/kvmtool.git[...]
Here is the summary with links:
- [v3,1/6] dt-bindings: riscv: Add Zicond extension entry
https://git.kernel.org/riscv/c/00c6f39c8247 - [v3,2/6] RISC-V: Detect Zicond from ISA string https://git.kernel.org/riscv/c/662a601aa355 - [v3,3/6] RISC-V: KVM: Allow Zicond extension for Guest/VM https://git.kernel.org/riscv/c/df68f4d8cb49 - [v3,4/6] KVM: riscv: selftests: Add senvcfg register to get-reg-list test https://git.kernel.org/riscv/c/4d554e0226e6 - [v3,5/6] KVM: riscv: selftests: Add smstateen registers to get-reg-list test https://git.kernel.org/riscv/c/e1a8db0c9a0e - [v3,6/6] KVM: riscv: selftests: Add condops extensions to get-reg-list test https://git.kernel.org/riscv/c/2b3f2b78ec93
You are awesome, thank you!
Signature · 2 lines
Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html