* [Qemu-devel] [PATCH 1/7] x86, mce: ignore SRAO only when MCG_SER_P is available
2010-10-21 18:25 [Qemu-devel] [PATCH 0/7] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
@ 2010-10-21 18:25 ` Marcelo Tosatti
2010-10-21 18:25 ` [Qemu-devel] [PATCH 2/7] x86, mce: broadcast mce depending on the cpu version Marcelo Tosatti
` (6 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Marcelo Tosatti @ 2010-10-21 18:25 UTC (permalink / raw)
To: Anthony Liguori; +Cc: Hidetoshi Seto, Marcelo Tosatti, qemu-devel, kvm
From: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
And restruct this block to call kvm_mce_in_exception() only when it is
required.
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
target-i386/kvm.c | 16 ++++++++++------
1 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 512d533..b813953 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -239,12 +239,16 @@ static void kvm_do_inject_x86_mce(void *_data)
struct kvm_x86_mce_data *data = _data;
int r;
- /* If there is an MCE excpetion being processed, ignore this SRAO MCE */
- r = kvm_mce_in_exception(data->env);
- if (r == -1)
- fprintf(stderr, "Failed to get MCE status\n");
- else if (r && !(data->mce->status & MCI_STATUS_AR))
- return;
+ /* If there is an MCE exception being processed, ignore this SRAO MCE */
+ if ((data->env->mcg_cap & MCG_SER_P) &&
+ !(data->mce->status & MCI_STATUS_AR)) {
+ r = kvm_mce_in_exception(data->env);
+ if (r == -1) {
+ fprintf(stderr, "Failed to get MCE status\n");
+ } else if (r) {
+ return;
+ }
+ }
r = kvm_set_mce(data->env, data->mce);
if (r < 0) {
--
1.7.2.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 2/7] x86, mce: broadcast mce depending on the cpu version
2010-10-21 18:25 [Qemu-devel] [PATCH 0/7] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
2010-10-21 18:25 ` [Qemu-devel] [PATCH 1/7] x86, mce: ignore SRAO only when MCG_SER_P is available Marcelo Tosatti
@ 2010-10-21 18:25 ` Marcelo Tosatti
2010-10-21 18:25 ` [Qemu-devel] [PATCH 3/7] Fix build on !KVM_CAP_MCE Marcelo Tosatti
` (5 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Marcelo Tosatti @ 2010-10-21 18:25 UTC (permalink / raw)
To: Anthony Liguori; +Cc: Hidetoshi Seto, Marcelo Tosatti, qemu-devel, kvm
From: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
There is no reason why SRAO event received by the main thread
is the only one that being broadcasted.
According to the x86 ASDM vol.3A 15.10.4.1,
MCE signal is broadcast on processor version 06H_EH or later.
This change is required to handle SRAR in smp guests.
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
target-i386/kvm.c | 29 ++++++++++++++++++++++++-----
1 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index b813953..9144f74 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -1636,6 +1636,28 @@ static void hardware_memory_error(void)
exit(1);
}
+#ifdef KVM_CAP_MCE
+static void kvm_mce_broadcast_rest(CPUState *env)
+{
+ CPUState *cenv;
+ int family, model, cpuver = env->cpuid_version;
+
+ family = (cpuver >> 8) & 0xf;
+ model = ((cpuver >> 12) & 0xf0) + ((cpuver >> 4) & 0xf);
+
+ /* Broadcast MCA signal for processor version 06H_EH and above */
+ if ((family == 6 && model >= 14) || family > 6) {
+ for (cenv = first_cpu; cenv != NULL; cenv = cenv->next_cpu) {
+ if (cenv == env) {
+ continue;
+ }
+ kvm_inject_x86_mce(cenv, 1, MCI_STATUS_VAL | MCI_STATUS_UC,
+ MCG_STATUS_MCIP | MCG_STATUS_RIPV, 0, 0, 1);
+ }
+ }
+}
+#endif
+
int kvm_on_sigbus_vcpu(CPUState *env, int code, void *addr)
{
#if defined(KVM_CAP_MCE)
@@ -1693,6 +1715,7 @@ int kvm_on_sigbus_vcpu(CPUState *env, int code, void *addr)
fprintf(stderr, "kvm_set_mce: %s\n", strerror(errno));
abort();
}
+ kvm_mce_broadcast_rest(env);
} else
#endif
{
@@ -1715,7 +1738,6 @@ int kvm_on_sigbus(int code, void *addr)
void *vaddr;
ram_addr_t ram_addr;
target_phys_addr_t paddr;
- CPUState *cenv;
/* Hope we are lucky for AO MCE */
vaddr = addr;
@@ -1731,10 +1753,7 @@ int kvm_on_sigbus(int code, void *addr)
kvm_inject_x86_mce(first_cpu, 9, status,
MCG_STATUS_MCIP | MCG_STATUS_RIPV, paddr,
(MCM_ADDR_PHYS << 6) | 0xc, 1);
- for (cenv = first_cpu->next_cpu; cenv != NULL; cenv = cenv->next_cpu) {
- kvm_inject_x86_mce(cenv, 1, MCI_STATUS_VAL | MCI_STATUS_UC,
- MCG_STATUS_MCIP | MCG_STATUS_RIPV, 0, 0, 1);
- }
+ kvm_mce_broadcast_rest(first_cpu);
} else
#endif
{
--
1.7.2.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 3/7] Fix build on !KVM_CAP_MCE
2010-10-21 18:25 [Qemu-devel] [PATCH 0/7] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
2010-10-21 18:25 ` [Qemu-devel] [PATCH 1/7] x86, mce: ignore SRAO only when MCG_SER_P is available Marcelo Tosatti
2010-10-21 18:25 ` [Qemu-devel] [PATCH 2/7] x86, mce: broadcast mce depending on the cpu version Marcelo Tosatti
@ 2010-10-21 18:25 ` Marcelo Tosatti
2010-10-21 18:25 ` [Qemu-devel] [PATCH 4/7] kvm: add save/restore of MSR_VM_HSAVE_PA Marcelo Tosatti
` (4 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Marcelo Tosatti @ 2010-10-21 18:25 UTC (permalink / raw)
To: Anthony Liguori; +Cc: Hidetoshi Seto, Marcelo Tosatti, qemu-devel, kvm
From: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
This patch removes following warnings:
target-i386/kvm.c: In function 'kvm_put_msrs':
target-i386/kvm.c:782: error: unused variable 'i'
target-i386/kvm.c: In function 'kvm_get_msrs':
target-i386/kvm.c:1083: error: label at end of compound statement
Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
target-i386/kvm.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 9144f74..587ee19 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -783,7 +783,7 @@ static int kvm_put_msrs(CPUState *env, int level)
struct kvm_msr_entry entries[100];
} msr_data;
struct kvm_msr_entry *msrs = msr_data.entries;
- int i, n = 0;
+ int n = 0;
kvm_msr_entry_set(&msrs[n++], MSR_IA32_SYSENTER_CS, env->sysenter_cs);
kvm_msr_entry_set(&msrs[n++], MSR_IA32_SYSENTER_ESP, env->sysenter_esp);
@@ -805,6 +805,7 @@ static int kvm_put_msrs(CPUState *env, int level)
}
#ifdef KVM_CAP_MCE
if (env->mcg_cap) {
+ int i;
if (level == KVM_PUT_RESET_STATE)
kvm_msr_entry_set(&msrs[n++], MSR_MCG_STATUS, env->mcg_status);
else if (level == KVM_PUT_FULL_STATE) {
@@ -1089,9 +1090,9 @@ static int kvm_get_msrs(CPUState *env)
if (msrs[i].index >= MSR_MC0_CTL &&
msrs[i].index < MSR_MC0_CTL + (env->mcg_cap & 0xff) * 4) {
env->mce_banks[msrs[i].index - MSR_MC0_CTL] = msrs[i].data;
- break;
}
#endif
+ break;
}
}
--
1.7.2.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 4/7] kvm: add save/restore of MSR_VM_HSAVE_PA
2010-10-21 18:25 [Qemu-devel] [PATCH 0/7] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
` (2 preceding siblings ...)
2010-10-21 18:25 ` [Qemu-devel] [PATCH 3/7] Fix build on !KVM_CAP_MCE Marcelo Tosatti
@ 2010-10-21 18:25 ` Marcelo Tosatti
2010-10-21 18:25 ` [Qemu-devel] [PATCH 5/7] kvm: factor out kvm_has_msr_star Marcelo Tosatti
` (3 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Marcelo Tosatti @ 2010-10-21 18:25 UTC (permalink / raw)
To: Anthony Liguori; +Cc: Marcelo Tosatti, qemu-devel, kvm
commit 2bba4446746add456ceeb0e8359a43032a2ea333
Author: Alexander Graf <agraf@suse.de>
Date: Thu Dec 18 15:38:32 2008 +0100
Enable nested SVM support in userspace
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
target-i386/kvm.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 587ee19..e6c9a1d 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -790,6 +790,7 @@ static int kvm_put_msrs(CPUState *env, int level)
kvm_msr_entry_set(&msrs[n++], MSR_IA32_SYSENTER_EIP, env->sysenter_eip);
if (kvm_has_msr_star(env))
kvm_msr_entry_set(&msrs[n++], MSR_STAR, env->star);
+ kvm_msr_entry_set(&msrs[n++], MSR_VM_HSAVE_PA, env->vm_hsave);
#ifdef TARGET_X86_64
/* FIXME if lm capable */
kvm_msr_entry_set(&msrs[n++], MSR_CSTAR, env->cstar);
@@ -1015,6 +1016,7 @@ static int kvm_get_msrs(CPUState *env)
msrs[n++].index = MSR_IA32_SYSENTER_EIP;
if (kvm_has_msr_star(env))
msrs[n++].index = MSR_STAR;
+ msrs[n++].index = MSR_VM_HSAVE_PA;
msrs[n++].index = MSR_IA32_TSC;
#ifdef TARGET_X86_64
/* FIXME lm_capable_kernel */
@@ -1071,6 +1073,9 @@ static int kvm_get_msrs(CPUState *env)
case MSR_IA32_TSC:
env->tsc = msrs[i].data;
break;
+ case MSR_VM_HSAVE_PA:
+ env->vm_hsave = msrs[i].data;
+ break;
case MSR_KVM_SYSTEM_TIME:
env->system_time_msr = msrs[i].data;
break;
--
1.7.2.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 5/7] kvm: factor out kvm_has_msr_star
2010-10-21 18:25 [Qemu-devel] [PATCH 0/7] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
` (3 preceding siblings ...)
2010-10-21 18:25 ` [Qemu-devel] [PATCH 4/7] kvm: add save/restore of MSR_VM_HSAVE_PA Marcelo Tosatti
@ 2010-10-21 18:25 ` Marcelo Tosatti
2010-10-21 18:25 ` [Qemu-devel] [PATCH 6/7] kvm: writeback SMP TSCs on migration only Marcelo Tosatti
` (2 subsequent siblings)
7 siblings, 0 replies; 11+ messages in thread
From: Marcelo Tosatti @ 2010-10-21 18:25 UTC (permalink / raw)
To: Anthony Liguori; +Cc: Marcelo Tosatti, qemu-devel, kvm
And add kvm_has_msr_hsave_pa(), to avoid warnings on older
kernels without support.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
target-i386/kvm.c | 41 ++++++++++++++++++++++++++++++-----------
1 files changed, 30 insertions(+), 11 deletions(-)
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index e6c9a1d..06474d6 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -438,23 +438,26 @@ void kvm_arch_reset_vcpu(CPUState *env)
}
}
-static int kvm_has_msr_star(CPUState *env)
+int has_msr_star;
+int has_msr_hsave_pa;
+
+static void kvm_supported_msrs(CPUState *env)
{
- static int has_msr_star;
+ static int kvm_supported_msrs;
int ret;
/* first time */
- if (has_msr_star == 0) {
+ if (kvm_supported_msrs == 0) {
struct kvm_msr_list msr_list, *kvm_msr_list;
- has_msr_star = -1;
+ kvm_supported_msrs = -1;
/* Obtain MSR list from KVM. These are the MSRs that we must
* save/restore */
msr_list.nmsrs = 0;
ret = kvm_ioctl(env->kvm_state, KVM_GET_MSR_INDEX_LIST, &msr_list);
if (ret < 0 && ret != -E2BIG) {
- return 0;
+ return;
}
/* Old kernel modules had a bug and could write beyond the provided
memory. Allocate at least a safe amount of 1K. */
@@ -470,7 +473,11 @@ static int kvm_has_msr_star(CPUState *env)
for (i = 0; i < kvm_msr_list->nmsrs; i++) {
if (kvm_msr_list->indices[i] == MSR_STAR) {
has_msr_star = 1;
- break;
+ continue;
+ }
+ if (kvm_msr_list->indices[i] == MSR_VM_HSAVE_PA) {
+ has_msr_hsave_pa = 1;
+ continue;
}
}
}
@@ -478,9 +485,19 @@ static int kvm_has_msr_star(CPUState *env)
free(kvm_msr_list);
}
- if (has_msr_star == 1)
- return 1;
- return 0;
+ return;
+}
+
+static int kvm_has_msr_hsave_pa(CPUState *env)
+{
+ kvm_supported_msrs(env);
+ return has_msr_hsave_pa;
+}
+
+static int kvm_has_msr_star(CPUState *env)
+{
+ kvm_supported_msrs(env);
+ return has_msr_star;
}
static int kvm_init_identity_map_page(KVMState *s)
@@ -790,7 +807,8 @@ static int kvm_put_msrs(CPUState *env, int level)
kvm_msr_entry_set(&msrs[n++], MSR_IA32_SYSENTER_EIP, env->sysenter_eip);
if (kvm_has_msr_star(env))
kvm_msr_entry_set(&msrs[n++], MSR_STAR, env->star);
- kvm_msr_entry_set(&msrs[n++], MSR_VM_HSAVE_PA, env->vm_hsave);
+ if (kvm_has_msr_hsave_pa(env))
+ kvm_msr_entry_set(&msrs[n++], MSR_VM_HSAVE_PA, env->vm_hsave);
#ifdef TARGET_X86_64
/* FIXME if lm capable */
kvm_msr_entry_set(&msrs[n++], MSR_CSTAR, env->cstar);
@@ -1016,7 +1034,8 @@ static int kvm_get_msrs(CPUState *env)
msrs[n++].index = MSR_IA32_SYSENTER_EIP;
if (kvm_has_msr_star(env))
msrs[n++].index = MSR_STAR;
- msrs[n++].index = MSR_VM_HSAVE_PA;
+ if (kvm_has_msr_hsave_pa(env))
+ msrs[n++].index = MSR_VM_HSAVE_PA;
msrs[n++].index = MSR_IA32_TSC;
#ifdef TARGET_X86_64
/* FIXME lm_capable_kernel */
--
1.7.2.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 6/7] kvm: writeback SMP TSCs on migration only
2010-10-21 18:25 [Qemu-devel] [PATCH 0/7] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
` (4 preceding siblings ...)
2010-10-21 18:25 ` [Qemu-devel] [PATCH 5/7] kvm: factor out kvm_has_msr_star Marcelo Tosatti
@ 2010-10-21 18:25 ` Marcelo Tosatti
2010-10-21 18:25 ` [Qemu-devel] [PATCH 7/7] kvm: save/restore x86-64 MSRs on x86-64 kernels Marcelo Tosatti
2010-10-22 13:27 ` [Qemu-devel] [PATCH 0/7] [PULL] qemu-kvm.git uq/master queue Anthony Liguori
7 siblings, 0 replies; 11+ messages in thread
From: Marcelo Tosatti @ 2010-10-21 18:25 UTC (permalink / raw)
To: Anthony Liguori; +Cc: Marcelo Tosatti, qemu-devel, kvm
commit 6389c45441269baa2873e6feafebd17105ddeaf6
Author: Jan Kiszka <jan.kiszka@siemens.com>
Date: Mon Mar 1 18:17:26 2010 +0100
qemu-kvm: Cleanup/fix TSC and PV clock writeback
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
target-i386/kvm.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index 06474d6..e2f7e2e 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -817,7 +817,15 @@ static int kvm_put_msrs(CPUState *env, int level)
kvm_msr_entry_set(&msrs[n++], MSR_LSTAR, env->lstar);
#endif
if (level == KVM_PUT_FULL_STATE) {
- kvm_msr_entry_set(&msrs[n++], MSR_IA32_TSC, env->tsc);
+ /*
+ * KVM is yet unable to synchronize TSC values of multiple VCPUs on
+ * writeback. Until this is fixed, we only write the offset to SMP
+ * guests after migration, desynchronizing the VCPUs, but avoiding
+ * huge jump-backs that would occur without any writeback at all.
+ */
+ if (smp_cpus == 1 || env->tsc != 0) {
+ kvm_msr_entry_set(&msrs[n++], MSR_IA32_TSC, env->tsc);
+ }
kvm_msr_entry_set(&msrs[n++], MSR_KVM_SYSTEM_TIME,
env->system_time_msr);
kvm_msr_entry_set(&msrs[n++], MSR_KVM_WALL_CLOCK, env->wall_clock_msr);
--
1.7.2.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Qemu-devel] [PATCH 7/7] kvm: save/restore x86-64 MSRs on x86-64 kernels
2010-10-21 18:25 [Qemu-devel] [PATCH 0/7] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
` (5 preceding siblings ...)
2010-10-21 18:25 ` [Qemu-devel] [PATCH 6/7] kvm: writeback SMP TSCs on migration only Marcelo Tosatti
@ 2010-10-21 18:25 ` Marcelo Tosatti
2010-10-22 13:27 ` [Qemu-devel] [PATCH 0/7] [PULL] qemu-kvm.git uq/master queue Anthony Liguori
7 siblings, 0 replies; 11+ messages in thread
From: Marcelo Tosatti @ 2010-10-21 18:25 UTC (permalink / raw)
To: Anthony Liguori; +Cc: Marcelo Tosatti, qemu-devel, kvm
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
target-i386/kvm.c | 30 ++++++++++++++++++++----------
1 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index e2f7e2e..ae0a034 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -15,6 +15,7 @@
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/mman.h>
+#include <sys/utsname.h>
#include <linux/kvm.h>
@@ -53,6 +54,8 @@
#define BUS_MCEERR_AO 5
#endif
+static int lm_capable_kernel;
+
#ifdef KVM_CAP_EXT_CPUID
static struct kvm_cpuid2 *try_get_cpuid(KVMState *s, int max)
@@ -523,6 +526,11 @@ int kvm_arch_init(KVMState *s, int smp_cpus)
{
int ret;
+ struct utsname utsname;
+
+ uname(&utsname);
+ lm_capable_kernel = strcmp(utsname.machine, "x86_64") == 0;
+
/* create vm86 tss. KVM uses vm86 mode to emulate 16-bit code
* directly. In order to use vm86 mode, a TSS is needed. Since this
* must be part of guest physical memory, we need to allocate it. Older
@@ -810,11 +818,12 @@ static int kvm_put_msrs(CPUState *env, int level)
if (kvm_has_msr_hsave_pa(env))
kvm_msr_entry_set(&msrs[n++], MSR_VM_HSAVE_PA, env->vm_hsave);
#ifdef TARGET_X86_64
- /* FIXME if lm capable */
- kvm_msr_entry_set(&msrs[n++], MSR_CSTAR, env->cstar);
- kvm_msr_entry_set(&msrs[n++], MSR_KERNELGSBASE, env->kernelgsbase);
- kvm_msr_entry_set(&msrs[n++], MSR_FMASK, env->fmask);
- kvm_msr_entry_set(&msrs[n++], MSR_LSTAR, env->lstar);
+ if (lm_capable_kernel) {
+ kvm_msr_entry_set(&msrs[n++], MSR_CSTAR, env->cstar);
+ kvm_msr_entry_set(&msrs[n++], MSR_KERNELGSBASE, env->kernelgsbase);
+ kvm_msr_entry_set(&msrs[n++], MSR_FMASK, env->fmask);
+ kvm_msr_entry_set(&msrs[n++], MSR_LSTAR, env->lstar);
+ }
#endif
if (level == KVM_PUT_FULL_STATE) {
/*
@@ -1046,11 +1055,12 @@ static int kvm_get_msrs(CPUState *env)
msrs[n++].index = MSR_VM_HSAVE_PA;
msrs[n++].index = MSR_IA32_TSC;
#ifdef TARGET_X86_64
- /* FIXME lm_capable_kernel */
- msrs[n++].index = MSR_CSTAR;
- msrs[n++].index = MSR_KERNELGSBASE;
- msrs[n++].index = MSR_FMASK;
- msrs[n++].index = MSR_LSTAR;
+ if (lm_capable_kernel) {
+ msrs[n++].index = MSR_CSTAR;
+ msrs[n++].index = MSR_KERNELGSBASE;
+ msrs[n++].index = MSR_FMASK;
+ msrs[n++].index = MSR_LSTAR;
+ }
#endif
msrs[n++].index = MSR_KVM_SYSTEM_TIME;
msrs[n++].index = MSR_KVM_WALL_CLOCK;
--
1.7.2.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [Qemu-devel] [PATCH 0/7] [PULL] qemu-kvm.git uq/master queue
2010-10-21 18:25 [Qemu-devel] [PATCH 0/7] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
` (6 preceding siblings ...)
2010-10-21 18:25 ` [Qemu-devel] [PATCH 7/7] kvm: save/restore x86-64 MSRs on x86-64 kernels Marcelo Tosatti
@ 2010-10-22 13:27 ` Anthony Liguori
7 siblings, 0 replies; 11+ messages in thread
From: Anthony Liguori @ 2010-10-22 13:27 UTC (permalink / raw)
To: Marcelo Tosatti; +Cc: qemu-devel, kvm
On 10/21/2010 01:25 PM, Marcelo Tosatti wrote:
> The following changes since commit 633aa0acfe2c4d3e56acfe28c912796bf54de6d3:
>
> Fix pci hotplug to generate level triggered interrupt. (2010-10-20 17:23:28 -0500)
>
Pulled. Thanks.
Regards,
Anthony Liguori
> are available in the git repository at:
> git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git uq/master
>
> Hidetoshi Seto (3):
> x86, mce: ignore SRAO only when MCG_SER_P is available
> x86, mce: broadcast mce depending on the cpu version
> Fix build on !KVM_CAP_MCE
>
> Marcelo Tosatti (4):
> kvm: add save/restore of MSR_VM_HSAVE_PA
> kvm: factor out kvm_has_msr_star
> kvm: writeback SMP TSCs on migration only
> kvm: save/restore x86-64 MSRs on x86-64 kernels
>
> target-i386/kvm.c | 132 +++++++++++++++++++++++++++++++++++++++-------------
> 1 files changed, 99 insertions(+), 33 deletions(-)
>
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread