
virt inclusion category: feature bugzilla: https://gitee.com/openeuler/qemu/issues/IC1EV7 ------------------------------------------------------------------------ QEMU uses ioctl to enable IPIV. Signed-off-by: Jinqian Yang <yangjinqian1@huawei.com> --- target/arm/kvm.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index ee5ba68305..6db1fe4c3c 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -257,6 +257,23 @@ int kvm_arch_get_default_type(MachineState *ms) return fixed_ipa ? 0 : size; } +static void kvm_update_ipiv_cap(KVMState *s) +{ + int ret; + + if (!kvm_check_extension(s, KVM_CAP_ARM_IPIV_MODE)) { + fprintf(stderr, "Host KVM does not support IPIV\n"); + return; + } + + ret = kvm_vm_enable_cap(s, KVM_CAP_ARM_IPIV_MODE, 0); + if (ret) { + fprintf(stderr, "Could not enable KVM_CAP_ARM_IPIV_MODE: %d\n", ret); + } + + return; +} + int kvm_arch_init(MachineState *ms, KVMState *s) { MachineClass *mc = MACHINE_GET_CLASS(ms); @@ -330,6 +347,7 @@ int kvm_arch_init(MachineState *ms, KVMState *s) } kvm_arm_init_debug(s); + kvm_update_ipiv_cap(s); return ret; } -- 2.33.0