[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 08/21] qemu-kvm: Use upstream kvm_arch_get_suppor
From: |
Jan Kiszka |
Subject: |
[Qemu-devel] [PATCH v2 08/21] qemu-kvm: Use upstream kvm_arch_get_supported_cpuid |
Date: |
Wed, 3 Feb 2010 09:53:33 +0100 |
It is idential to our version now, so drop the copy.
Signed-off-by: Jan Kiszka <address@hidden>
---
kvm.h | 3 -
qemu-kvm-x86.c | 106 -----------------------------------------------------
qemu-kvm.h | 5 --
target-i386/kvm.c | 4 +-
4 files changed, 2 insertions(+), 116 deletions(-)
diff --git a/kvm.h b/kvm.h
index b5ed744..189a5d4 100644
--- a/kvm.h
+++ b/kvm.h
@@ -137,11 +137,8 @@ void kvm_arch_update_guest_debug(CPUState *env, struct
kvm_guest_debug *dbg);
int kvm_check_extension(KVMState *s, unsigned int extension);
-#ifdef KVM_UPSTREAM
uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
int reg);
-#endif
-
void kvm_cpu_synchronize_state(CPUState *env);
/* generic hooks - to be moved/refactored once there are more users */
diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c
index 4cb1cb3..a7bf446 100644
--- a/qemu-kvm-x86.c
+++ b/qemu-kvm-x86.c
@@ -627,106 +627,6 @@ int kvm_disable_tpr_access_reporting(CPUState *env)
#endif
-#ifdef KVM_CAP_EXT_CPUID
-
-static struct kvm_cpuid2 *try_get_cpuid(kvm_context_t kvm, int max)
-{
- struct kvm_cpuid2 *cpuid;
- int r, size;
-
- size = sizeof(*cpuid) + max * sizeof(*cpuid->entries);
- cpuid = qemu_malloc(size);
- cpuid->nent = max;
- r = kvm_ioctl(kvm_state, KVM_GET_SUPPORTED_CPUID, cpuid);
- if (r == 0 && cpuid->nent >= max)
- r = -E2BIG;
- if (r < 0) {
- if (r == -E2BIG) {
- free(cpuid);
- return NULL;
- } else {
- fprintf(stderr, "KVM_GET_SUPPORTED_CPUID failed: %s\n",
- strerror(-r));
- exit(1);
- }
- }
- return cpuid;
-}
-
-#define R_EAX 0
-#define R_ECX 1
-#define R_EDX 2
-#define R_EBX 3
-#define R_ESP 4
-#define R_EBP 5
-#define R_ESI 6
-#define R_EDI 7
-
-uint32_t kvm_get_supported_cpuid(kvm_context_t kvm, uint32_t function, int reg)
-{
- struct kvm_cpuid2 *cpuid;
- int i, max;
- uint32_t ret = 0;
- uint32_t cpuid_1_edx;
-
- if (!kvm_check_extension(kvm_state, KVM_CAP_EXT_CPUID)) {
- return -1U;
- }
-
- max = 1;
- while ((cpuid = try_get_cpuid(kvm, max)) == NULL) {
- max *= 2;
- }
-
- for (i = 0; i < cpuid->nent; ++i) {
- if (cpuid->entries[i].function == function) {
- switch (reg) {
- case R_EAX:
- ret = cpuid->entries[i].eax;
- break;
- case R_EBX:
- ret = cpuid->entries[i].ebx;
- break;
- case R_ECX:
- ret = cpuid->entries[i].ecx;
- break;
- case R_EDX:
- ret = cpuid->entries[i].edx;
- if (function == 1) {
- /* kvm misreports the following features
- */
- ret |= 1 << 12; /* MTRR */
- ret |= 1 << 16; /* PAT */
- ret |= 1 << 7; /* MCE */
- ret |= 1 << 14; /* MCA */
- }
-
- /* On Intel, kvm returns cpuid according to
- * the Intel spec, so add missing bits
- * according to the AMD spec:
- */
- if (function == 0x80000001) {
- cpuid_1_edx =
kvm_get_supported_cpuid(kvm, 1, R_EDX);
- ret |= cpuid_1_edx & 0xdfeff7ff;
- }
- break;
- }
- }
- }
-
- free(cpuid);
-
- return ret;
-}
-
-#else
-
-uint32_t kvm_get_supported_cpuid(kvm_context_t kvm, uint32_t function, int reg)
-{
- return -1U;
-}
-
-#endif
int kvm_qemu_create_memory_alias(uint64_t phys_start,
uint64_t len,
uint64_t target_phys)
@@ -1690,12 +1590,6 @@ int kvm_arch_init_irq_routing(void)
return 0;
}
-uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
- int reg)
-{
- return kvm_get_supported_cpuid(kvm_context, function, reg);
-}
-
void kvm_arch_process_irqchip_events(CPUState *env)
{
if (env->interrupt_request & CPU_INTERRUPT_INIT) {
diff --git a/qemu-kvm.h b/qemu-kvm.h
index b34b39f..77b8f75 100644
--- a/qemu-kvm.h
+++ b/qemu-kvm.h
@@ -859,8 +859,6 @@ int kvm_assign_set_msix_entry(kvm_context_t kvm,
struct kvm_assigned_msix_entry *entry);
#endif
-uint32_t kvm_get_supported_cpuid(kvm_context_t kvm, uint32_t function, int
reg);
-
#else /* !CONFIG_KVM */
typedef struct kvm_context *kvm_context_t;
@@ -1051,9 +1049,6 @@ static inline int kvm_sync_vcpus(void)
return 0;
}
-uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
- int reg);
-
static inline int kvm_set_migration_log(int enable)
{
return kvm_physical_memory_set_dirty_tracking(enable);
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 9fb96b5..8743f32 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -25,8 +25,6 @@
#include "gdbstub.h"
#include "host-utils.h"
-#ifdef KVM_UPSTREAM
-
#ifdef CONFIG_KVM_PARA
#include <linux/kvm_para.h>
#endif
@@ -133,6 +131,8 @@ uint32_t kvm_arch_get_supported_cpuid(CPUState *env,
uint32_t function, int reg)
#endif
+#ifdef KVM_UPSTREAM
+
static void kvm_trim_features(uint32_t *features, uint32_t supported)
{
int i;
--
1.6.0.2
- [Qemu-devel] [PATCH v2 00/21] qemu-kvm: Hook cleanups and extended use of upstream code, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 01/21] qemu-kvm: Drop vmport changes, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 02/21] KVM: Make vmport KVM-compatible, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 06/21] qemu-kvm: Use upstream kvm_setup_guest_memory, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 03/21] qemu-kvm: Clean up register access API, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 08/21] qemu-kvm: Use upstream kvm_arch_get_supported_cpuid,
Jan Kiszka <=
- [Qemu-devel] [PATCH v2 04/21] KVM: x86: Fix up misreported CPU features, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 09/21] qemu-kvm: Use upstream kvm_pit_in_kernel, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 18/21] qemu-kvm: Cleanup/fix TSC and PV clock writeback, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 10/21] KVM: Move and rename regs_modified, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 07/21] qemu-kvm: Use some more upstream prototypes, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 11/21] KVM: Rework of guest debug state writing, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 16/21] KVM: x86: Restrict writeback of VCPU state, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 05/21] qemu-kvm: Use upstream kvm_enabled and cpu_synchronize_state, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 20/21] qemu-kvm: Move kvm_set_boot_cpu_id, Jan Kiszka, 2010/02/03
- [Qemu-devel] [PATCH v2 21/21] qemu-kvm: Bring qemu_init_vcpu back home, Jan Kiszka, 2010/02/03