kvm: Drop CONFIG_KVM_PARA
The kvm_para.h header is now always available. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
This commit is contained in:
parent
e205c7902f
commit
5802e066eb
1
configure
vendored
1
configure
vendored
@ -3223,7 +3223,6 @@ case "$target_arch2" in
|
|||||||
\( "$target_arch2" = "x86_64" -a "$cpu" = "i386" \) -o \
|
\( "$target_arch2" = "x86_64" -a "$cpu" = "i386" \) -o \
|
||||||
\( "$target_arch2" = "i386" -a "$cpu" = "x86_64" \) \) ; then
|
\( "$target_arch2" = "i386" -a "$cpu" = "x86_64" \) \) ; then
|
||||||
echo "CONFIG_KVM=y" >> $config_target_mak
|
echo "CONFIG_KVM=y" >> $config_target_mak
|
||||||
echo "CONFIG_KVM_PARA=y" >> $config_target_mak
|
|
||||||
if test $vhost_net = "yes" ; then
|
if test $vhost_net = "yes" ; then
|
||||||
echo "CONFIG_VHOST_NET=y" >> $config_target_mak
|
echo "CONFIG_VHOST_NET=y" >> $config_target_mak
|
||||||
fi
|
fi
|
||||||
|
@ -17,8 +17,6 @@
|
|||||||
#include "kvm.h"
|
#include "kvm.h"
|
||||||
#include "kvmclock.h"
|
#include "kvmclock.h"
|
||||||
|
|
||||||
#if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ADJUST_CLOCK)
|
|
||||||
|
|
||||||
#include <linux/kvm.h>
|
#include <linux/kvm.h>
|
||||||
#include <linux/kvm_para.h>
|
#include <linux/kvm_para.h>
|
||||||
|
|
||||||
@ -120,10 +118,3 @@ static void kvmclock_register_device(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
device_init(kvmclock_register_device);
|
device_init(kvmclock_register_device);
|
||||||
|
|
||||||
#else /* !(CONFIG_KVM_PARA && KVM_CAP_ADJUST_CLOCK) */
|
|
||||||
|
|
||||||
void kvmclock_create(void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
#endif /* !(CONFIG_KVM_PARA && KVM_CAP_ADJUST_CLOCK) */
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include <sys/utsname.h>
|
#include <sys/utsname.h>
|
||||||
|
|
||||||
#include <linux/kvm.h>
|
#include <linux/kvm.h>
|
||||||
|
#include <linux/kvm_para.h>
|
||||||
|
|
||||||
#include "qemu-common.h"
|
#include "qemu-common.h"
|
||||||
#include "sysemu.h"
|
#include "sysemu.h"
|
||||||
@ -29,10 +30,6 @@
|
|||||||
#include "hw/apic.h"
|
#include "hw/apic.h"
|
||||||
#include "ioport.h"
|
#include "ioport.h"
|
||||||
|
|
||||||
#ifdef CONFIG_KVM_PARA
|
|
||||||
#include <linux/kvm_para.h>
|
|
||||||
#endif
|
|
||||||
//
|
|
||||||
//#define DEBUG_KVM
|
//#define DEBUG_KVM
|
||||||
|
|
||||||
#ifdef DEBUG_KVM
|
#ifdef DEBUG_KVM
|
||||||
@ -62,9 +59,7 @@ const KVMCapabilityInfo kvm_arch_required_capabilities[] = {
|
|||||||
|
|
||||||
static bool has_msr_star;
|
static bool has_msr_star;
|
||||||
static bool has_msr_hsave_pa;
|
static bool has_msr_hsave_pa;
|
||||||
#if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
|
|
||||||
static bool has_msr_async_pf_en;
|
static bool has_msr_async_pf_en;
|
||||||
#endif
|
|
||||||
static int lm_capable_kernel;
|
static int lm_capable_kernel;
|
||||||
|
|
||||||
static struct kvm_cpuid2 *try_get_cpuid(KVMState *s, int max)
|
static struct kvm_cpuid2 *try_get_cpuid(KVMState *s, int max)
|
||||||
@ -92,7 +87,6 @@ static struct kvm_cpuid2 *try_get_cpuid(KVMState *s, int max)
|
|||||||
return cpuid;
|
return cpuid;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_KVM_PARA
|
|
||||||
struct kvm_para_features {
|
struct kvm_para_features {
|
||||||
int cap;
|
int cap;
|
||||||
int feature;
|
int feature;
|
||||||
@ -118,7 +112,6 @@ static int get_para_features(CPUState *env)
|
|||||||
|
|
||||||
return features;
|
return features;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
|
uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
|
||||||
@ -128,9 +121,7 @@ uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
|
|||||||
int i, max;
|
int i, max;
|
||||||
uint32_t ret = 0;
|
uint32_t ret = 0;
|
||||||
uint32_t cpuid_1_edx;
|
uint32_t cpuid_1_edx;
|
||||||
#ifdef CONFIG_KVM_PARA
|
|
||||||
int has_kvm_features = 0;
|
int has_kvm_features = 0;
|
||||||
#endif
|
|
||||||
|
|
||||||
max = 1;
|
max = 1;
|
||||||
while ((cpuid = try_get_cpuid(env->kvm_state, max)) == NULL) {
|
while ((cpuid = try_get_cpuid(env->kvm_state, max)) == NULL) {
|
||||||
@ -140,11 +131,9 @@ uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
|
|||||||
for (i = 0; i < cpuid->nent; ++i) {
|
for (i = 0; i < cpuid->nent; ++i) {
|
||||||
if (cpuid->entries[i].function == function &&
|
if (cpuid->entries[i].function == function &&
|
||||||
cpuid->entries[i].index == index) {
|
cpuid->entries[i].index == index) {
|
||||||
#ifdef CONFIG_KVM_PARA
|
|
||||||
if (cpuid->entries[i].function == KVM_CPUID_FEATURES) {
|
if (cpuid->entries[i].function == KVM_CPUID_FEATURES) {
|
||||||
has_kvm_features = 1;
|
has_kvm_features = 1;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
switch (reg) {
|
switch (reg) {
|
||||||
case R_EAX:
|
case R_EAX:
|
||||||
ret = cpuid->entries[i].eax;
|
ret = cpuid->entries[i].eax;
|
||||||
@ -177,12 +166,10 @@ uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
|
|||||||
|
|
||||||
qemu_free(cpuid);
|
qemu_free(cpuid);
|
||||||
|
|
||||||
#ifdef CONFIG_KVM_PARA
|
|
||||||
/* fallback for older kernels */
|
/* fallback for older kernels */
|
||||||
if (!has_kvm_features && (function == KVM_CPUID_FEATURES)) {
|
if (!has_kvm_features && (function == KVM_CPUID_FEATURES)) {
|
||||||
ret = get_para_features(env);
|
ret = get_para_features(env);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -377,9 +364,7 @@ int kvm_arch_init_vcpu(CPUState *env)
|
|||||||
uint32_t limit, i, j, cpuid_i;
|
uint32_t limit, i, j, cpuid_i;
|
||||||
uint32_t unused;
|
uint32_t unused;
|
||||||
struct kvm_cpuid_entry2 *c;
|
struct kvm_cpuid_entry2 *c;
|
||||||
#ifdef CONFIG_KVM_PARA
|
|
||||||
uint32_t signature[3];
|
uint32_t signature[3];
|
||||||
#endif
|
|
||||||
|
|
||||||
env->cpuid_features &= kvm_arch_get_supported_cpuid(env, 1, 0, R_EDX);
|
env->cpuid_features &= kvm_arch_get_supported_cpuid(env, 1, 0, R_EDX);
|
||||||
|
|
||||||
@ -397,7 +382,6 @@ int kvm_arch_init_vcpu(CPUState *env)
|
|||||||
|
|
||||||
cpuid_i = 0;
|
cpuid_i = 0;
|
||||||
|
|
||||||
#ifdef CONFIG_KVM_PARA
|
|
||||||
/* Paravirtualization CPUIDs */
|
/* Paravirtualization CPUIDs */
|
||||||
memcpy(signature, "KVMKVMKVM\0\0\0", 12);
|
memcpy(signature, "KVMKVMKVM\0\0\0", 12);
|
||||||
c = &cpuid_data.entries[cpuid_i++];
|
c = &cpuid_data.entries[cpuid_i++];
|
||||||
@ -416,8 +400,6 @@ int kvm_arch_init_vcpu(CPUState *env)
|
|||||||
|
|
||||||
#ifdef KVM_CAP_ASYNC_PF
|
#ifdef KVM_CAP_ASYNC_PF
|
||||||
has_msr_async_pf_en = c->eax & (1 << KVM_FEATURE_ASYNC_PF);
|
has_msr_async_pf_en = c->eax & (1 << KVM_FEATURE_ASYNC_PF);
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cpu_x86_cpuid(env, 0, 0, &limit, &unused, &unused, &unused);
|
cpu_x86_cpuid(env, 0, 0, &limit, &unused, &unused, &unused);
|
||||||
@ -936,12 +918,10 @@ static int kvm_put_msrs(CPUState *env, int level)
|
|||||||
kvm_msr_entry_set(&msrs[n++], MSR_KVM_SYSTEM_TIME,
|
kvm_msr_entry_set(&msrs[n++], MSR_KVM_SYSTEM_TIME,
|
||||||
env->system_time_msr);
|
env->system_time_msr);
|
||||||
kvm_msr_entry_set(&msrs[n++], MSR_KVM_WALL_CLOCK, env->wall_clock_msr);
|
kvm_msr_entry_set(&msrs[n++], MSR_KVM_WALL_CLOCK, env->wall_clock_msr);
|
||||||
#if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
|
|
||||||
if (has_msr_async_pf_en) {
|
if (has_msr_async_pf_en) {
|
||||||
kvm_msr_entry_set(&msrs[n++], MSR_KVM_ASYNC_PF_EN,
|
kvm_msr_entry_set(&msrs[n++], MSR_KVM_ASYNC_PF_EN,
|
||||||
env->async_pf_en_msr);
|
env->async_pf_en_msr);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#ifdef KVM_CAP_MCE
|
#ifdef KVM_CAP_MCE
|
||||||
if (env->mcg_cap) {
|
if (env->mcg_cap) {
|
||||||
@ -1182,11 +1162,9 @@ static int kvm_get_msrs(CPUState *env)
|
|||||||
#endif
|
#endif
|
||||||
msrs[n++].index = MSR_KVM_SYSTEM_TIME;
|
msrs[n++].index = MSR_KVM_SYSTEM_TIME;
|
||||||
msrs[n++].index = MSR_KVM_WALL_CLOCK;
|
msrs[n++].index = MSR_KVM_WALL_CLOCK;
|
||||||
#if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
|
|
||||||
if (has_msr_async_pf_en) {
|
if (has_msr_async_pf_en) {
|
||||||
msrs[n++].index = MSR_KVM_ASYNC_PF_EN;
|
msrs[n++].index = MSR_KVM_ASYNC_PF_EN;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef KVM_CAP_MCE
|
#ifdef KVM_CAP_MCE
|
||||||
if (env->mcg_cap) {
|
if (env->mcg_cap) {
|
||||||
@ -1263,11 +1241,9 @@ static int kvm_get_msrs(CPUState *env)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
#if defined(CONFIG_KVM_PARA) && defined(KVM_CAP_ASYNC_PF)
|
|
||||||
case MSR_KVM_ASYNC_PF_EN:
|
case MSR_KVM_ASYNC_PF_EN:
|
||||||
env->async_pf_en_msr = msrs[i].data;
|
env->async_pf_en_msr = msrs[i].data;
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user