Lines Matching +full:- +full:kvm

2  * x86 KVM CPU type initialization
7 * See the COPYING file in the top-level directory.
12 #include "host-cpu.h"
18 #include "accel/accel-cpu-target.h"
25 eax = kvm_arch_get_supported_cpuid(cs->kvm_state, 0x80000008, 0, R_EAX); in kvm_set_guest_phys_bits()
30 cpu->guest_phys_bits = guest_phys_bits; in kvm_set_guest_phys_bits()
31 if (cpu->guest_phys_bits > cpu->phys_bits) { in kvm_set_guest_phys_bits()
32 cpu->guest_phys_bits = cpu->phys_bits; in kvm_set_guest_phys_bits()
35 if (cpu->host_phys_bits && cpu->host_phys_bits_limit && in kvm_set_guest_phys_bits()
36 cpu->guest_phys_bits > cpu->host_phys_bits_limit) { in kvm_set_guest_phys_bits()
37 cpu->guest_phys_bits = cpu->host_phys_bits_limit; in kvm_set_guest_phys_bits()
44 CPUX86State *env = &cpu->env; in kvm_cpu_realizefn()
50 * cpu->ucode_rev and cpu->phys_bits, and updates the CPUID results in in kvm_cpu_realizefn()
64 * cpu_common_realizefn() (via xcc->parent_realize) in kvm_cpu_realizefn()
66 if (cpu->max_features) { in kvm_cpu_realizefn()
69 env->features[FEAT_7_0_ECX] |= CPUID_7_0_ECX_WAITPKG; in kvm_cpu_realizefn()
72 if (env->features[FEAT_1_ECX] & CPUID_EXT_MONITOR) { in kvm_cpu_realizefn()
73 host_cpuid(5, 0, &cpu->mwait.eax, &cpu->mwait.ebx, in kvm_cpu_realizefn()
74 &cpu->mwait.ecx, &cpu->mwait.edx); in kvm_cpu_realizefn()
77 if (cpu->ucode_rev == 0) { in kvm_cpu_realizefn()
78 cpu->ucode_rev = in kvm_cpu_realizefn()
88 if ((env->features[FEAT_8000_0001_EDX] & CPUID_EXT2_LM) && in kvm_cpu_realizefn()
89 cpu->guest_phys_bits == -1) { in kvm_cpu_realizefn()
108 CPUX86State *env = &cpu->env; in kvm_cpu_max_instance_init()
117 env->cpuid_min_level = in kvm_cpu_max_instance_init()
119 env->cpuid_min_xlevel = in kvm_cpu_max_instance_init()
121 env->cpuid_min_xlevel2 = in kvm_cpu_max_instance_init()
143 if (!esa->size) { in kvm_cpu_xsave_init()
148 assert(esa->size == eax); in kvm_cpu_xsave_init()
149 esa->offset = ebx; in kvm_cpu_xsave_init()
150 esa->ecx = ecx; in kvm_cpu_xsave_init()
156 * KVM-specific features that are automatically added/removed
157 * from cpudef models when KVM is enabled.
162 * by the KVM accelerator (see "OS requirements" section at
163 * docs/system/target-i386.rst)
167 { "kvm-nopiodelay", "on" },
168 { "kvm-asyncpf", "on" },
169 { "kvm-steal-time", "on" },
170 { "kvm-pv-eoi", "on" },
171 { "kvmclock-stable-bit", "on" },
173 { "kvm-msi-ext-dest-id", "off" },
186 for (pv = kvm_default_props; pv->prop; pv++) { in x86_cpu_change_kvm_default()
187 if (!strcmp(pv->prop, prop)) { in x86_cpu_change_kvm_default()
188 pv->value = value; in x86_cpu_change_kvm_default()
197 assert(pv->prop); in x86_cpu_change_kvm_default()
207 if (xcc->model) { in kvm_cpu_instance_init()
212 x86_cpu_change_kvm_default("kvm-msi-ext-dest-id", "on"); in kvm_cpu_instance_init()
219 if (cpu->max_features) { in kvm_cpu_instance_init()
230 acc->cpu_target_realize = kvm_cpu_realizefn; in kvm_cpu_accel_class_init()
231 acc->cpu_instance_init = kvm_cpu_instance_init; in kvm_cpu_accel_class_init()
234 .name = ACCEL_CPU_NAME("kvm"),