From 4a74147e1b2e276eb2ad2855bafc3c0136bc18a3 Mon Sep 17 00:00:00 2001 From: gaosong Date: Sun, 8 Sep 2024 22:34:57 +0800 Subject: [PATCH 76/78] hw/loongarch: clean code remove some unused code Signed-off-by: gaosong Signed-off-by: Xianglai Li --- target/loongarch/kvm/kvm.c | 103 --------------------------- target/loongarch/kvm/kvm_loongarch.h | 2 - target/loongarch/machine.c | 20 ------ 3 files changed, 125 deletions(-) diff --git a/target/loongarch/kvm/kvm.c b/target/loongarch/kvm/kvm.c index ab1ea3d4fd..0acdd5c4c1 100644 --- a/target/loongarch/kvm/kvm.c +++ b/target/loongarch/kvm/kvm.c @@ -684,53 +684,6 @@ static int kvm_check_cpucfg2(CPUState *cs) return ret; } -static int kvm_check_cpucfg6(CPUState *cs) -{ - int ret; - uint64_t val; - struct kvm_device_attr attr = { - .group = KVM_LOONGARCH_VCPU_CPUCFG, - .attr = 6, - .addr = (uint64_t)&val, - }; - LoongArchCPU *cpu = LOONGARCH_CPU(cs); - CPULoongArchState *env = &cpu->env; - - ret = kvm_vcpu_ioctl(cs, KVM_HAS_DEVICE_ATTR, &attr); - if (!ret) { - kvm_vcpu_ioctl(cs, KVM_GET_DEVICE_ATTR, &attr); - - if (FIELD_EX32(env->cpucfg[6], CPUCFG6, PMP)) { - /* Check PMP */ - if (!FIELD_EX32(val, CPUCFG6, PMP)) { - error_report("'pmu' feature not supported by KVM on this host" - " Please disable 'pmu' with " - "'... -cpu XXX,pmu=off ...'\n"); - exit(EXIT_FAILURE); - } - /* Check PMNUM */ - int guest_pmnum = FIELD_EX32(env->cpucfg[6], CPUCFG6, PMNUM); - int host_pmnum = FIELD_EX32(val, CPUCFG6, PMNUM); - if (guest_pmnum > host_pmnum){ - warn_report("The guest pmnum %d larger than KVM support %d\n", - guest_pmnum, host_pmnum); - env->cpucfg[6] = FIELD_DP32(env->cpucfg[6], CPUCFG6, - PMNUM, host_pmnum); - } - /* Check PMBITS */ - int guest_pmbits = FIELD_EX32(env->cpucfg[6], CPUCFG6, PMBITS); - int host_pmbits = FIELD_EX32(val, CPUCFG6, PMBITS); - if (guest_pmbits != host_pmbits) { - warn_report("The host not support PMBITS %d\n", guest_pmbits); - env->cpucfg[6] = FIELD_DP32(env->cpucfg[6], CPUCFG6, - PMBITS, host_pmbits); - } - } - } - - return ret; -} - static int kvm_loongarch_put_cpucfg(CPUState *cs) { int i, ret = 0; @@ -745,12 +698,6 @@ static int kvm_loongarch_put_cpucfg(CPUState *cs) return ret; } } - if (i == 6) { - ret = kvm_check_cpucfg6(cs); - if (ret) { - return ret; - } - } val = env->cpucfg[i]; ret = kvm_set_one_reg(cs, KVM_IOC_CPUCFG(i), &val); if (ret < 0) { @@ -760,56 +707,6 @@ static int kvm_loongarch_put_cpucfg(CPUState *cs) return ret; } -int kvm_loongarch_put_pvtime(LoongArchCPU *cpu) -{ - CPULoongArchState *env = &cpu->env; - int err; - struct kvm_device_attr attr = { - .group = KVM_LOONGARCH_VCPU_PVTIME_CTRL, - .attr = KVM_LOONGARCH_VCPU_PVTIME_GPA, - .addr = (uint64_t)&env->st.guest_addr, - }; - - err = kvm_vcpu_ioctl(CPU(cpu), KVM_HAS_DEVICE_ATTR, attr); - if (err != 0) { - /* It's ok even though kvm has not such attr */ - return 0; - } - - err = kvm_vcpu_ioctl(CPU(cpu), KVM_SET_DEVICE_ATTR, attr); - if (err != 0) { - error_report("PVTIME IPA: KVM_SET_DEVICE_ATTR: %s", strerror(-err)); - return err; - } - - return 0; -} - -int kvm_loongarch_get_pvtime(LoongArchCPU *cpu) -{ - CPULoongArchState *env = &cpu->env; - int err; - struct kvm_device_attr attr = { - .group = KVM_LOONGARCH_VCPU_PVTIME_CTRL, - .attr = KVM_LOONGARCH_VCPU_PVTIME_GPA, - .addr = (uint64_t)&env->st.guest_addr, - }; - - err = kvm_vcpu_ioctl(CPU(cpu), KVM_HAS_DEVICE_ATTR, attr); - if (err != 0) { - /* It's ok even though kvm has not such attr */ - return 0; - } - - err = kvm_vcpu_ioctl(CPU(cpu), KVM_GET_DEVICE_ATTR, attr); - if (err != 0) { - error_report("PVTIME IPA: KVM_GET_DEVICE_ATTR: %s", strerror(-err)); - return err; - } - - return 0; -} - int kvm_arch_get_registers(CPUState *cs) { int ret; diff --git a/target/loongarch/kvm/kvm_loongarch.h b/target/loongarch/kvm/kvm_loongarch.h index 8482f9308d..1051a341ec 100644 --- a/target/loongarch/kvm/kvm_loongarch.h +++ b/target/loongarch/kvm/kvm_loongarch.h @@ -11,8 +11,6 @@ #define QEMU_KVM_LOONGARCH_H int kvm_loongarch_set_interrupt(LoongArchCPU *cpu, int irq, int level); -int kvm_loongarch_put_pvtime(LoongArchCPU *cpu); -int kvm_loongarch_get_pvtime(LoongArchCPU *cpu); void kvm_arch_reset_vcpu(CPUState *cs); #endif diff --git a/target/loongarch/machine.c b/target/loongarch/machine.c index fd69ea05dc..57abdddc09 100644 --- a/target/loongarch/machine.c +++ b/target/loongarch/machine.c @@ -112,24 +112,6 @@ static const VMStateDescription vmstate_lasx = { }, }; -static int cpu_post_load(void *opaque, int version_id) -{ -#ifdef CONFIG_KVM - LoongArchCPU *cpu = opaque; - kvm_loongarch_put_pvtime(cpu); -#endif - return 0; -} - -static int cpu_pre_save(void *opaque) -{ -#ifdef CONFIG_KVM - LoongArchCPU *cpu = opaque; - kvm_loongarch_get_pvtime(cpu); -#endif - return 0; -} - static bool lbt_needed(void *opaque) { LoongArchCPU *cpu = opaque; @@ -190,8 +172,6 @@ const VMStateDescription vmstate_loongarch_cpu = { .name = "cpu", .version_id = 3, .minimum_version_id = 3, - .post_load = cpu_post_load, - .pre_save = cpu_pre_save, .fields = (const VMStateField[]) { VMSTATE_UINTTL_ARRAY(env.gpr, LoongArchCPU, 32), VMSTATE_UINTTL(env.pc, LoongArchCPU), -- 2.39.1