qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue
@ 2010-03-04 15:05 Marcelo Tosatti
  2010-03-04 15:15 ` Anthony Liguori
  0 siblings, 1 reply; 18+ messages in thread
From: Marcelo Tosatti @ 2010-03-04 15:05 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Marcelo Tosatti, qemu-devel, kvm

The following changes since commit 55b1e61f640bb2cf3bed0b4cc6d4ba1326c625d9:
  Samuel Thibault (1):
        (curses) Use more descriptive values

are available in the git repository at:

  git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git uq/master

Avi Kivity (1):
      Allocate memory below 4GB as one chunk

Jan Kiszka (4):
      KVM: Rework of guest debug state writing
      KVM: Rework VCPU state writeback API
      KVM: x86: Restrict writeback of VCPU state
      x86: Extend validity of bsp_to_cpu

Marcelo Tosatti (1):
      Add option to use file backed guest memory

 cpu-all.h             |    3 +
 exec.c                |  132 ++++++++++++++++++++++++++++++++++++++++--------
 hw/apic.c             |    2 -
 hw/pc.c               |   14 ++----
 hw/ppc_newworld.c     |    3 -
 hw/ppc_oldworld.c     |    3 -
 hw/s390-virtio.c      |    1 -
 kvm-all.c             |   43 +++++++++++-----
 kvm.h                 |   26 +++++++++-
 qemu-options.hx       |   16 ++++++
 savevm.c              |    4 ++
 sysemu.h              |    4 ++
 target-i386/kvm.c     |   77 +++++++++++++++++++++++------
 target-i386/machine.c |   11 ----
 target-ppc/kvm.c      |    2 +-
 target-ppc/machine.c  |    4 --
 target-s390x/kvm.c    |    3 +-
 vl.c                  |   41 +++++++++++++++
 18 files changed, 300 insertions(+), 89 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue
  2010-03-04 15:05 Marcelo Tosatti
@ 2010-03-04 15:15 ` Anthony Liguori
  0 siblings, 0 replies; 18+ messages in thread
From: Anthony Liguori @ 2010-03-04 15:15 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: Anthony Liguori, qemu-devel, kvm

On 03/04/2010 09:05 AM, Marcelo Tosatti wrote:
> The following changes since commit 55b1e61f640bb2cf3bed0b4cc6d4ba1326c625d9:
>    Samuel Thibault (1):
>          (curses) Use more descriptive values
>
> are available in the git repository at:
>
>    git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git uq/master
>
> Avi Kivity (1):
>        Allocate memory below 4GB as one chunk
>
> Jan Kiszka (4):
>        KVM: Rework of guest debug state writing
>        KVM: Rework VCPU state writeback API
>        KVM: x86: Restrict writeback of VCPU state
>        x86: Extend validity of bsp_to_cpu
>
> Marcelo Tosatti (1):
>        Add option to use file backed guest memory
>    

Pulled.  Thanks.

Regards,

Anthony Liguori

>   cpu-all.h             |    3 +
>   exec.c                |  132 ++++++++++++++++++++++++++++++++++++++++--------
>   hw/apic.c             |    2 -
>   hw/pc.c               |   14 ++----
>   hw/ppc_newworld.c     |    3 -
>   hw/ppc_oldworld.c     |    3 -
>   hw/s390-virtio.c      |    1 -
>   kvm-all.c             |   43 +++++++++++-----
>   kvm.h                 |   26 +++++++++-
>   qemu-options.hx       |   16 ++++++
>   savevm.c              |    4 ++
>   sysemu.h              |    4 ++
>   target-i386/kvm.c     |   77 +++++++++++++++++++++++------
>   target-i386/machine.c |   11 ----
>   target-ppc/kvm.c      |    2 +-
>   target-ppc/machine.c  |    4 --
>   target-s390x/kvm.c    |    3 +-
>   vl.c                  |   41 +++++++++++++++
>   18 files changed, 300 insertions(+), 89 deletions(-)
>
>
>
>    

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue
@ 2011-04-16 22:10 Marcelo Tosatti
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 1/6] kvm: use kernel-provided para_features instead of statically coming up with new capabilities Marcelo Tosatti
                   ` (6 more replies)
  0 siblings, 7 replies; 18+ messages in thread
From: Marcelo Tosatti @ 2011-04-16 22:10 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Marcelo Tosatti, qemu-devel, kvm

The following changes since commit adc56dda0c4eed62149d28939b7d7e329ad95ae8:

  migration: move some declarations to migration.h (2011-04-15 20:14:54 +0000)

are available in the git repository at:
  git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git uq/master

Glauber Costa (3):
      kvm: use kernel-provided para_features instead of statically coming up with new capabilities
      kvm: add kvmclock to its second bit
      kvm: create kvmclock when one of the flags are present

Jan Kiszka (3):
      Break up user and system cpu_interrupt implementations
      Redirect cpu_interrupt to callback handler
      kvm: Install specialized interrupt handler

 cpu-all.h           |   14 ++++++++-
 exec.c              |   18 ++++++++---
 hw/kvmclock.c       |    6 +++-
 kvm-all.c           |   11 +++++++
 target-i386/cpuid.c |    3 +-
 target-i386/kvm.c   |   78 ++++++++++++++++++++++++++++++++-------------------
 6 files changed, 92 insertions(+), 38 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PATCH 1/6] kvm: use kernel-provided para_features instead of statically coming up with new capabilities
  2011-04-16 22:10 [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
@ 2011-04-16 22:10 ` Marcelo Tosatti
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 2/6] kvm: add kvmclock to its second bit Marcelo Tosatti
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 18+ messages in thread
From: Marcelo Tosatti @ 2011-04-16 22:10 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Glauber Costa, qemu-devel, kvm, Avi Kivity

From: Glauber Costa <glommer@redhat.com>

Use the features provided by KVM_GET_SUPPORTED_CPUID directly to
mask out features from guest-visible cpuid.

The old get_para_features() mechanism is kept for older kernels that do not implement it.

Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
---
 target-i386/kvm.c |   78 +++++++++++++++++++++++++++++++++-------------------
 1 files changed, 49 insertions(+), 29 deletions(-)

diff --git a/target-i386/kvm.c b/target-i386/kvm.c
index a13599d..485572f 100644
--- a/target-i386/kvm.c
+++ b/target-i386/kvm.c
@@ -92,6 +92,35 @@ static struct kvm_cpuid2 *try_get_cpuid(KVMState *s, int max)
     return cpuid;
 }
 
+#ifdef CONFIG_KVM_PARA
+struct kvm_para_features {
+    int cap;
+    int feature;
+} para_features[] = {
+    { KVM_CAP_CLOCKSOURCE, KVM_FEATURE_CLOCKSOURCE },
+    { KVM_CAP_NOP_IO_DELAY, KVM_FEATURE_NOP_IO_DELAY },
+    { KVM_CAP_PV_MMU, KVM_FEATURE_MMU_OP },
+#ifdef KVM_CAP_ASYNC_PF
+    { KVM_CAP_ASYNC_PF, KVM_FEATURE_ASYNC_PF },
+#endif
+    { -1, -1 }
+};
+
+static int get_para_features(CPUState *env)
+{
+    int i, features = 0;
+
+    for (i = 0; i < ARRAY_SIZE(para_features) - 1; i++) {
+        if (kvm_check_extension(env->kvm_state, para_features[i].cap)) {
+            features |= (1 << para_features[i].feature);
+        }
+    }
+
+    return features;
+}
+#endif
+
+
 uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
                                       uint32_t index, int reg)
 {
@@ -99,6 +128,9 @@ uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
     int i, max;
     uint32_t ret = 0;
     uint32_t cpuid_1_edx;
+#ifdef CONFIG_KVM_PARA
+    int has_kvm_features = 0;
+#endif
 
     max = 1;
     while ((cpuid = try_get_cpuid(env->kvm_state, max)) == NULL) {
@@ -108,6 +140,11 @@ uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
     for (i = 0; i < cpuid->nent; ++i) {
         if (cpuid->entries[i].function == function &&
             cpuid->entries[i].index == index) {
+#ifdef CONFIG_KVM_PARA
+            if (cpuid->entries[i].function == KVM_CPUID_FEATURES) {
+                has_kvm_features = 1;
+            }
+#endif
             switch (reg) {
             case R_EAX:
                 ret = cpuid->entries[i].eax;
@@ -140,38 +177,15 @@ uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
 
     qemu_free(cpuid);
 
-    return ret;
-}
-
 #ifdef CONFIG_KVM_PARA
-struct kvm_para_features {
-    int cap;
-    int feature;
-} para_features[] = {
-    { KVM_CAP_CLOCKSOURCE, KVM_FEATURE_CLOCKSOURCE },
-    { KVM_CAP_NOP_IO_DELAY, KVM_FEATURE_NOP_IO_DELAY },
-    { KVM_CAP_PV_MMU, KVM_FEATURE_MMU_OP },
-#ifdef KVM_CAP_ASYNC_PF
-    { KVM_CAP_ASYNC_PF, KVM_FEATURE_ASYNC_PF },
-#endif
-    { -1, -1 }
-};
-
-static int get_para_features(CPUState *env)
-{
-    int i, features = 0;
-
-    for (i = 0; i < ARRAY_SIZE(para_features) - 1; i++) {
-        if (kvm_check_extension(env->kvm_state, para_features[i].cap)) {
-            features |= (1 << para_features[i].feature);
-        }
+    /* fallback for older kernels */
+    if (!has_kvm_features && (function == KVM_CPUID_FEATURES)) {
+        ret = get_para_features(env);
     }
-#ifdef KVM_CAP_ASYNC_PF
-    has_msr_async_pf_en = features & (1 << KVM_FEATURE_ASYNC_PF);
 #endif
-    return features;
+
+    return ret;
 }
-#endif /* CONFIG_KVM_PARA */
 
 typedef struct HWPoisonPage {
     ram_addr_t ram_addr;
@@ -397,7 +411,13 @@ int kvm_arch_init_vcpu(CPUState *env)
     c = &cpuid_data.entries[cpuid_i++];
     memset(c, 0, sizeof(*c));
     c->function = KVM_CPUID_FEATURES;
-    c->eax = env->cpuid_kvm_features & get_para_features(env);
+    c->eax = env->cpuid_kvm_features & kvm_arch_get_supported_cpuid(env,
+                                                KVM_CPUID_FEATURES, 0, R_EAX);
+
+#ifdef KVM_CAP_ASYNC_PF
+    has_msr_async_pf_en = c->eax & (1 << KVM_FEATURE_ASYNC_PF);
+#endif
+
 #endif
 
     cpu_x86_cpuid(env, 0, 0, &limit, &unused, &unused, &unused);
-- 
1.7.4.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PATCH 2/6] kvm: add kvmclock to its second bit
  2011-04-16 22:10 [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 1/6] kvm: use kernel-provided para_features instead of statically coming up with new capabilities Marcelo Tosatti
@ 2011-04-16 22:10 ` Marcelo Tosatti
  2011-04-17 11:02   ` Jan Kiszka
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 3/6] kvm: create kvmclock when one of the flags are present Marcelo Tosatti
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 18+ messages in thread
From: Marcelo Tosatti @ 2011-04-16 22:10 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Glauber Costa, qemu-devel, kvm, Avi Kivity

From: Glauber Costa <glommer@redhat.com>

We have two bits that can represent kvmclock in cpuid.
They signal the guest which msr set to use. When we tweak flags
involving this value - specially when we use "-", we have to act on both.

Besides adding it to the kvm features list, we also have to "break" the
assumption represented by the break in lookup_feature.

Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
---
 target-i386/cpuid.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c
index 814d13e..5e48d35 100644
--- a/target-i386/cpuid.c
+++ b/target-i386/cpuid.c
@@ -73,7 +73,7 @@ static const char *ext3_feature_name[] = {
 };
 
 static const char *kvm_feature_name[] = {
-    "kvmclock", "kvm_nopiodelay", "kvm_mmu", NULL, "kvm_asyncpf", NULL, NULL, NULL,
+    "kvmclock", "kvm_nopiodelay", "kvm_mmu", "kvmclock", "kvm_asyncpf", NULL, NULL, NULL,
     NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
     NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
     NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
@@ -193,7 +193,6 @@ static int lookup_feature(uint32_t *pval, const char *s, const char *e,
     for (mask = 1, ppc = featureset; mask; mask <<= 1, ++ppc)
         if (*ppc && !altcmp(s, e, *ppc)) {
             *pval |= mask;
-            break;
         }
     return (mask ? 1 : 0);
 }
-- 
1.7.4.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PATCH 3/6] kvm: create kvmclock when one of the flags are present
  2011-04-16 22:10 [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 1/6] kvm: use kernel-provided para_features instead of statically coming up with new capabilities Marcelo Tosatti
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 2/6] kvm: add kvmclock to its second bit Marcelo Tosatti
@ 2011-04-16 22:10 ` Marcelo Tosatti
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 4/6] Break up user and system cpu_interrupt implementations Marcelo Tosatti
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 18+ messages in thread
From: Marcelo Tosatti @ 2011-04-16 22:10 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Glauber Costa, qemu-devel, kvm, Avi Kivity

From: Glauber Costa <glommer@redhat.com>

kvmclock presence can be signalled by two different flags. So for
device creation, we have to test for both.

Signed-off-by: Glauber Costa <glommer@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
---
 hw/kvmclock.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/hw/kvmclock.c b/hw/kvmclock.c
index b6ceddf..004c4ad 100644
--- a/hw/kvmclock.c
+++ b/hw/kvmclock.c
@@ -103,7 +103,11 @@ static SysBusDeviceInfo kvmclock_info = {
 void kvmclock_create(void)
 {
     if (kvm_enabled() &&
-        first_cpu->cpuid_kvm_features & (1ULL << KVM_FEATURE_CLOCKSOURCE)) {
+        first_cpu->cpuid_kvm_features & ((1ULL << KVM_FEATURE_CLOCKSOURCE)
+#ifdef KVM_FEATURE_CLOCKSOURCE2
+        || (1ULL << KVM_FEATURE_CLOCKSOURCE2)
+#endif
+    )) {
         sysbus_create_simple("kvmclock", -1, NULL);
     }
 }
-- 
1.7.4.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PATCH 4/6] Break up user and system cpu_interrupt implementations
  2011-04-16 22:10 [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
                   ` (2 preceding siblings ...)
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 3/6] kvm: create kvmclock when one of the flags are present Marcelo Tosatti
@ 2011-04-16 22:10 ` Marcelo Tosatti
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 5/6] Redirect cpu_interrupt to callback handler Marcelo Tosatti
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 18+ messages in thread
From: Marcelo Tosatti @ 2011-04-16 22:10 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Jan Kiszka, Riku Voipio, qemu-devel, kvm, Marcelo Tosatti

From: Jan Kiszka <jan.kiszka@siemens.com>

Both have only two lines in common, and we will convert the system
service into a callback which is of no use for user mode operation.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
CC: Riku Voipio <riku.voipio@iki.fi>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
 exec.c |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/exec.c b/exec.c
index b1ee52a..cc0806e 100644
--- a/exec.c
+++ b/exec.c
@@ -1630,6 +1630,7 @@ static void cpu_unlink_tb(CPUState *env)
     spin_unlock(&interrupt_lock);
 }
 
+#ifndef CONFIG_USER_ONLY
 /* mask must never be zero, except for A20 change call */
 void cpu_interrupt(CPUState *env, int mask)
 {
@@ -1638,7 +1639,6 @@ void cpu_interrupt(CPUState *env, int mask)
     old_mask = env->interrupt_request;
     env->interrupt_request |= mask;
 
-#ifndef CONFIG_USER_ONLY
     /*
      * If called from iothread context, wake the target cpu in
      * case its halted.
@@ -1647,21 +1647,27 @@ void cpu_interrupt(CPUState *env, int mask)
         qemu_cpu_kick(env);
         return;
     }
-#endif
 
     if (use_icount) {
         env->icount_decr.u16.high = 0xffff;
-#ifndef CONFIG_USER_ONLY
         if (!can_do_io(env)
             && (mask & ~old_mask) != 0) {
             cpu_abort(env, "Raised interrupt while not in I/O function");
         }
-#endif
     } else {
         cpu_unlink_tb(env);
     }
 }
 
+#else /* CONFIG_USER_ONLY */
+
+void cpu_interrupt(CPUState *env, int mask)
+{
+    env->interrupt_request |= mask;
+    cpu_unlink_tb(env);
+}
+#endif /* CONFIG_USER_ONLY */
+
 void cpu_reset_interrupt(CPUState *env, int mask)
 {
     env->interrupt_request &= ~mask;
-- 
1.7.4.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PATCH 5/6] Redirect cpu_interrupt to callback handler
  2011-04-16 22:10 [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
                   ` (3 preceding siblings ...)
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 4/6] Break up user and system cpu_interrupt implementations Marcelo Tosatti
@ 2011-04-16 22:10 ` Marcelo Tosatti
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 6/6] kvm: Install specialized interrupt handler Marcelo Tosatti
  2011-04-16 23:57 ` [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue Anthony Liguori
  6 siblings, 0 replies; 18+ messages in thread
From: Marcelo Tosatti @ 2011-04-16 22:10 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Jan Kiszka, Marcelo Tosatti, qemu-devel, kvm

From: Jan Kiszka <jan.kiszka@siemens.com>

This allows to override the interrupt handling of QEMU in system mode.
KVM will make use of it to set a specialized handler.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
 cpu-all.h |   14 +++++++++++++-
 exec.c    |    4 +++-
 2 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/cpu-all.h b/cpu-all.h
index dc0f2f0..628206e 100644
--- a/cpu-all.h
+++ b/cpu-all.h
@@ -789,7 +789,19 @@ extern CPUState *cpu_single_env;
 #define CPU_INTERRUPT_SIPI   0x800 /* SIPI pending. */
 #define CPU_INTERRUPT_MCE    0x1000 /* (x86 only) MCE pending. */
 
-void cpu_interrupt(CPUState *s, int mask);
+#ifndef CONFIG_USER_ONLY
+typedef void (*CPUInterruptHandler)(CPUState *, int);
+
+extern CPUInterruptHandler cpu_interrupt_handler;
+
+static inline void cpu_interrupt(CPUState *s, int mask)
+{
+    cpu_interrupt_handler(s, mask);
+}
+#else /* USER_ONLY */
+void cpu_interrupt(CPUState *env, int mask);
+#endif /* USER_ONLY */
+
 void cpu_reset_interrupt(CPUState *env, int mask);
 
 void cpu_exit(CPUState *s);
diff --git a/exec.c b/exec.c
index cc0806e..72f4784 100644
--- a/exec.c
+++ b/exec.c
@@ -1632,7 +1632,7 @@ static void cpu_unlink_tb(CPUState *env)
 
 #ifndef CONFIG_USER_ONLY
 /* mask must never be zero, except for A20 change call */
-void cpu_interrupt(CPUState *env, int mask)
+static void tcg_handle_interrupt(CPUState *env, int mask)
 {
     int old_mask;
 
@@ -1659,6 +1659,8 @@ void cpu_interrupt(CPUState *env, int mask)
     }
 }
 
+CPUInterruptHandler cpu_interrupt_handler = tcg_handle_interrupt;
+
 #else /* CONFIG_USER_ONLY */
 
 void cpu_interrupt(CPUState *env, int mask)
-- 
1.7.4.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PATCH 6/6] kvm: Install specialized interrupt handler
  2011-04-16 22:10 [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
                   ` (4 preceding siblings ...)
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 5/6] Redirect cpu_interrupt to callback handler Marcelo Tosatti
@ 2011-04-16 22:10 ` Marcelo Tosatti
  2011-04-16 23:57 ` [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue Anthony Liguori
  6 siblings, 0 replies; 18+ messages in thread
From: Marcelo Tosatti @ 2011-04-16 22:10 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Jan Kiszka, Marcelo Tosatti, qemu-devel, kvm

From: Jan Kiszka <jan.kiszka@siemens.com>

KVM only requires to set the raised IRQ in CPUState and to kick the
receiving vcpu if it is remote. Installing a specialized handler allows
potential future changes to the TCG code path without risking KVM side
effects.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---
 kvm-all.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/kvm-all.c b/kvm-all.c
index 1d7e8ea..fd1fbfe 100644
--- a/kvm-all.c
+++ b/kvm-all.c
@@ -651,6 +651,15 @@ static CPUPhysMemoryClient kvm_cpu_phys_memory_client = {
     .log_stop = kvm_log_stop,
 };
 
+static void kvm_handle_interrupt(CPUState *env, int mask)
+{
+    env->interrupt_request |= mask;
+
+    if (!qemu_cpu_is_self(env)) {
+        qemu_cpu_kick(env);
+    }
+}
+
 int kvm_init(void)
 {
     static const char upgrade_note[] =
@@ -759,6 +768,8 @@ int kvm_init(void)
 
     s->many_ioeventfds = kvm_check_many_ioeventfds();
 
+    cpu_interrupt_handler = kvm_handle_interrupt;
+
     return 0;
 
 err:
-- 
1.7.4.2

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue
  2011-04-16 22:10 [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
                   ` (5 preceding siblings ...)
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 6/6] kvm: Install specialized interrupt handler Marcelo Tosatti
@ 2011-04-16 23:57 ` Anthony Liguori
  6 siblings, 0 replies; 18+ messages in thread
From: Anthony Liguori @ 2011-04-16 23:57 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: Jan Kiszka, Glauber Costa, qemu-devel, kvm

On 04/16/2011 05:10 PM, Marcelo Tosatti wrote:
> The following changes since commit adc56dda0c4eed62149d28939b7d7e329ad95ae8:
>
>    migration: move some declarations to migration.h (2011-04-15 20:14:54 +0000)
>
> are available in the git repository at:
>    git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git uq/master
>
> Glauber Costa (3):
>        kvm: use kernel-provided para_features instead of statically coming up with new capabilities

It's hard to follow this logic, but something in this series introduces 
a ton of chatter on stdout.  For instance:


anthony@titi:~/build/qemu$ x86_64-softmmu/qemu-system-x86_64 -hda 
~/images/linux.img -snapshot
error: feature "sse2" not available in set
error: bad option value [feature_edx = sse2 sse fxsr mmx pat cmov pge 
sep apic cx8 mce pae msr tsc pse de fpu    mtrr clflush mca pse36]
error: feature "sse2" not available in set
error: bad option value [feature_edx = sse2 sse fxsr mmx pat cmov pge 
sep apic cx8 mce pae msr tsc pse de fpu    mtrr clflush mca pse36]
error: feature "sse2" not available in set
error: bad option value [feature_edx = sse2 sse fxsr mmx pat cmov pge 
sep apic cx8 mce pae msr tsc pse de fpu    mtrr clflush mca pse36]
error: feature "sse2" not available in set
error: bad option value [feature_edx = sse2 sse fxsr mmx pat cmov pge 
sep apic cx8 mce pae msr tsc pse de fpu    mtrr clflush mca pse36]
error: feature "sse2" not available in set
error: bad option value [feature_edx = sse2 sse fxsr mmx pat cmov pge 
sep apic cx8 mce pae msr tsc pse de fpu    mtrr clflush mca pse36]
error: feature "sse2" not available in set
error: bad option value [feature_edx = sse2 sse fxsr mmx pat cmov pge 
sep apic cx8 mce pae msr tsc pse de fpu    mtrr clflush mca pse36]
CPU feature hypervisor not found

This is with or without KVM enabled.

Regards,

Anthony Liguori

>        kvm: add kvmclock to its second bit
>        kvm: create kvmclock when one of the flags are present
>
> Jan Kiszka (3):
>        Break up user and system cpu_interrupt implementations
>        Redirect cpu_interrupt to callback handler
>        kvm: Install specialized interrupt handler
>
>   cpu-all.h           |   14 ++++++++-
>   exec.c              |   18 ++++++++---
>   hw/kvmclock.c       |    6 +++-
>   kvm-all.c           |   11 +++++++
>   target-i386/cpuid.c |    3 +-
>   target-i386/kvm.c   |   78 ++++++++++++++++++++++++++++++++-------------------
>   6 files changed, 92 insertions(+), 38 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PATCH 2/6] kvm: add kvmclock to its second bit
  2011-04-16 22:10 ` [Qemu-devel] [PATCH 2/6] kvm: add kvmclock to its second bit Marcelo Tosatti
@ 2011-04-17 11:02   ` Jan Kiszka
  2011-04-19 11:06     ` [Qemu-devel] [PATCH v2 2a/6] x86: Allow multiple cpu feature matches of lookup_feature Jan Kiszka
  2011-04-19 11:06     ` [Qemu-devel] [PATCH v2 2b/6] kvm: add kvmclock to its second bit Jan Kiszka
  0 siblings, 2 replies; 18+ messages in thread
From: Jan Kiszka @ 2011-04-17 11:02 UTC (permalink / raw)
  To: Marcelo Tosatti
  Cc: Avi Kivity, Anthony Liguori, Glauber Costa, kvm, qemu-devel

[-- Attachment #1: Type: text/plain, Size: 2257 bytes --]

On 2011-04-17 00:10, Marcelo Tosatti wrote:
> From: Glauber Costa <glommer@redhat.com>
> 
> We have two bits that can represent kvmclock in cpuid.
> They signal the guest which msr set to use. When we tweak flags
> involving this value - specially when we use "-", we have to act on both.
> 
> Besides adding it to the kvm features list, we also have to "break" the
> assumption represented by the break in lookup_feature.
> 
> Signed-off-by: Glauber Costa <glommer@redhat.com>
> Signed-off-by: Avi Kivity <avi@redhat.com>
> ---
>  target-i386/cpuid.c |    3 +--
>  1 files changed, 1 insertions(+), 2 deletions(-)
> 
> diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c
> index 814d13e..5e48d35 100644
> --- a/target-i386/cpuid.c
> +++ b/target-i386/cpuid.c
> @@ -73,7 +73,7 @@ static const char *ext3_feature_name[] = {
>  };
>  
>  static const char *kvm_feature_name[] = {
> -    "kvmclock", "kvm_nopiodelay", "kvm_mmu", NULL, "kvm_asyncpf", NULL, NULL, NULL,
> +    "kvmclock", "kvm_nopiodelay", "kvm_mmu", "kvmclock", "kvm_asyncpf", NULL, NULL, NULL,
>      NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
>      NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
>      NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
> @@ -193,7 +193,6 @@ static int lookup_feature(uint32_t *pval, const char *s, const char *e,
>      for (mask = 1, ppc = featureset; mask; mask <<= 1, ++ppc)
>          if (*ppc && !altcmp(s, e, *ppc)) {
>              *pval |= mask;
> -            break;
>          }
>      return (mask ? 1 : 0);
>  }

This is required on top to fix the issues Anthony was seeing:

diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c
index 5e48d35..b7e20e8 100644
--- a/target-i386/cpuid.c
+++ b/target-i386/cpuid.c
@@ -189,12 +189,14 @@ static int lookup_feature(uint32_t *pval, const char *s, const char *e,
 {
     uint32_t mask;
     const char **ppc;
+    int found = 0;
 
     for (mask = 1, ppc = featureset; mask; mask <<= 1, ++ppc)
         if (*ppc && !altcmp(s, e, *ppc)) {
             *pval |= mask;
+            found = 1;
         }
-    return (mask ? 1 : 0);
+    return found;
 }
 
 static void add_flagname_to_bitmaps(const char *flagname, uint32_t *features,


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 259 bytes --]

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PATCH v2 2a/6] x86: Allow multiple cpu feature matches of lookup_feature
  2011-04-17 11:02   ` Jan Kiszka
@ 2011-04-19 11:06     ` Jan Kiszka
  2011-04-27 18:38       ` Glauber Costa
  2011-04-19 11:06     ` [Qemu-devel] [PATCH v2 2b/6] kvm: add kvmclock to its second bit Jan Kiszka
  1 sibling, 1 reply; 18+ messages in thread
From: Jan Kiszka @ 2011-04-19 11:06 UTC (permalink / raw)
  To: Marcelo Tosatti, Glauber Costa
  Cc: Anthony Liguori, qemu-devel, kvm, Avi Kivity

kvmclock is represented by two feature bits. Therefore, lookup_feature
needs to continue its search even after the first match. Enhance it
accordingly and switch to a bool return type at this chance.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 target-i386/cpuid.c |   14 ++++++++------
 1 files changed, 8 insertions(+), 6 deletions(-)

Glauber, could you check/ack this? Marcelo, please respin the series
afterward. I'd like to see all bits upstream and merged back into
qemu-kvm to proceed with switching the latter to upstream's kvm
infrastructure.

diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c
index 814d13e..0ac592f 100644
--- a/target-i386/cpuid.c
+++ b/target-i386/cpuid.c
@@ -182,20 +182,22 @@ static int altcmp(const char *s, const char *e, const char *altstr)
 }
 
 /* search featureset for flag *[s..e), if found set corresponding bit in
- * *pval and return success, otherwise return zero
+ * *pval and return true, otherwise return false
  */
-static int lookup_feature(uint32_t *pval, const char *s, const char *e,
-    const char **featureset)
+static bool lookup_feature(uint32_t *pval, const char *s, const char *e,
+                           const char **featureset)
 {
     uint32_t mask;
     const char **ppc;
+    bool found = false;
 
-    for (mask = 1, ppc = featureset; mask; mask <<= 1, ++ppc)
+    for (mask = 1, ppc = featureset; mask; mask <<= 1, ++ppc) {
         if (*ppc && !altcmp(s, e, *ppc)) {
             *pval |= mask;
-            break;
+            found = true;
         }
-    return (mask ? 1 : 0);
+    }
+    return found;
 }
 
 static void add_flagname_to_bitmaps(const char *flagname, uint32_t *features,
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PATCH v2 2b/6] kvm: add kvmclock to its second bit
  2011-04-17 11:02   ` Jan Kiszka
  2011-04-19 11:06     ` [Qemu-devel] [PATCH v2 2a/6] x86: Allow multiple cpu feature matches of lookup_feature Jan Kiszka
@ 2011-04-19 11:06     ` Jan Kiszka
  1 sibling, 0 replies; 18+ messages in thread
From: Jan Kiszka @ 2011-04-19 11:06 UTC (permalink / raw)
  To: Marcelo Tosatti, Glauber Costa
  Cc: Anthony Liguori, qemu-devel, kvm, Avi Kivity

From: Glauber Costa <glommer@redhat.com>

We have two bits that can represent kvmclock in cpuid. They signal the
guest which msr set to use. When we tweak flags involving this value -
specially when we use "-", we have to act on both.

[Jan: factored out lookup_feature changes]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
---
 target-i386/cpuid.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c
index 0ac592f..e479a4d 100644
--- a/target-i386/cpuid.c
+++ b/target-i386/cpuid.c
@@ -73,7 +73,7 @@ static const char *ext3_feature_name[] = {
 };
 
 static const char *kvm_feature_name[] = {
-    "kvmclock", "kvm_nopiodelay", "kvm_mmu", NULL, "kvm_asyncpf", NULL, NULL, NULL,
+    "kvmclock", "kvm_nopiodelay", "kvm_mmu", "kvmclock", "kvm_asyncpf", NULL, NULL, NULL,
     NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
     NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
     NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PATCH v2 2a/6] x86: Allow multiple cpu feature matches of lookup_feature
  2011-04-19 11:06     ` [Qemu-devel] [PATCH v2 2a/6] x86: Allow multiple cpu feature matches of lookup_feature Jan Kiszka
@ 2011-04-27 18:38       ` Glauber Costa
  0 siblings, 0 replies; 18+ messages in thread
From: Glauber Costa @ 2011-04-27 18:38 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: Anthony Liguori, Marcelo Tosatti, qemu-devel, kvm, Avi Kivity

On Tue, 2011-04-19 at 13:06 +0200, Jan Kiszka wrote:
> kvmclock is represented by two feature bits. Therefore, lookup_feature
> needs to continue its search even after the first match. Enhance it
> accordingly and switch to a bool return type at this chance.
> 
> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
> ---
>  target-i386/cpuid.c |   14 ++++++++------
>  1 files changed, 8 insertions(+), 6 deletions(-)
> 
> Glauber, could you check/ack this? Marcelo, please respin the series
> afterward. I'd like to see all bits upstream and merged back into
> qemu-kvm to proceed with switching the latter to upstream's kvm
> infrastructure.

Yes, this patch is okay.

Actually, I did sent out something like this, maybe Marcelo applied only
part of the series?

Anyway, Jan's version is handy, please apply it.

> diff --git a/target-i386/cpuid.c b/target-i386/cpuid.c
> index 814d13e..0ac592f 100644
> --- a/target-i386/cpuid.c
> +++ b/target-i386/cpuid.c
> @@ -182,20 +182,22 @@ static int altcmp(const char *s, const char *e, const char *altstr)
>  }
>  
>  /* search featureset for flag *[s..e), if found set corresponding bit in
> - * *pval and return success, otherwise return zero
> + * *pval and return true, otherwise return false
>   */
> -static int lookup_feature(uint32_t *pval, const char *s, const char *e,
> -    const char **featureset)
> +static bool lookup_feature(uint32_t *pval, const char *s, const char *e,
> +                           const char **featureset)
>  {
>      uint32_t mask;
>      const char **ppc;
> +    bool found = false;
>  
> -    for (mask = 1, ppc = featureset; mask; mask <<= 1, ++ppc)
> +    for (mask = 1, ppc = featureset; mask; mask <<= 1, ++ppc) {
>          if (*ppc && !altcmp(s, e, *ppc)) {
>              *pval |= mask;
> -            break;
> +            found = true;
>          }
> -    return (mask ? 1 : 0);
> +    }
> +    return found;
>  }
>  
>  static void add_flagname_to_bitmaps(const char *flagname, uint32_t *features,

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue
@ 2011-08-05 20:55 Marcelo Tosatti
  2011-08-08 20:07 ` Anthony Liguori
  0 siblings, 1 reply; 18+ messages in thread
From: Marcelo Tosatti @ 2011-08-05 20:55 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Marcelo Tosatti, qemu-devel, kvm

The following changes since commit 35d7ace74bd07e3d6983c1fd7cbfab4e11175689:

  qcow2: Fix L1 table size after bdrv_snapshot_goto (2011-08-05 07:15:47 -0500)

are available in the git repository at:
  git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git uq/master

Jan Kiszka (2):
      kvmclock: Fix feature detection
      kvm: Drop obsolete KVM_IOEVENTFD #ifdefs

Joerg Roedel (3):
      qemu: Add strtosz_suffix_unit function
      qemu-x86: Add tsc_freq option to -cpu
      qemu-x86: Set tsc_khz in kvm when supported

Marcelo Tosatti (1):
      Remove #ifdef KVM_CAP_TSC_CONTROL

 cutils.c            |   16 +++++++++++-----
 hw/kvmclock.c       |    7 ++-----
 kvm-all.c           |    8 --------
 qemu-common.h       |    2 ++
 target-i386/cpu.h   |    1 +
 target-i386/cpuid.c |   13 +++++++++++++
 target-i386/kvm.c   |   16 +++++++++++++++-
 7 files changed, 44 insertions(+), 19 deletions(-)

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue
  2011-08-05 20:55 Marcelo Tosatti
@ 2011-08-08 20:07 ` Anthony Liguori
  0 siblings, 0 replies; 18+ messages in thread
From: Anthony Liguori @ 2011-08-08 20:07 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: qemu-devel, kvm

On 08/05/2011 03:55 PM, Marcelo Tosatti wrote:
> The following changes since commit 35d7ace74bd07e3d6983c1fd7cbfab4e11175689:
>
>    qcow2: Fix L1 table size after bdrv_snapshot_goto (2011-08-05 07:15:47 -0500)
>
> are available in the git repository at:
>    git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git uq/master

Pulled.  Thanks.

Regards,

Anthony Liguori

>
> Jan Kiszka (2):
>        kvmclock: Fix feature detection
>        kvm: Drop obsolete KVM_IOEVENTFD #ifdefs
>
> Joerg Roedel (3):
>        qemu: Add strtosz_suffix_unit function
>        qemu-x86: Add tsc_freq option to -cpu
>        qemu-x86: Set tsc_khz in kvm when supported
>
> Marcelo Tosatti (1):
>        Remove #ifdef KVM_CAP_TSC_CONTROL
>
>   cutils.c            |   16 +++++++++++-----
>   hw/kvmclock.c       |    7 ++-----
>   kvm-all.c           |    8 --------
>   qemu-common.h       |    2 ++
>   target-i386/cpu.h   |    1 +
>   target-i386/cpuid.c |   13 +++++++++++++
>   target-i386/kvm.c   |   16 +++++++++++++++-
>   7 files changed, 44 insertions(+), 19 deletions(-)
>
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue
@ 2011-10-27 12:10 Marcelo Tosatti
  2011-10-31 16:52 ` Anthony Liguori
  0 siblings, 1 reply; 18+ messages in thread
From: Marcelo Tosatti @ 2011-10-27 12:10 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Marcelo Tosatti, qemu-devel, kvm

The following changes since commit 952e849c150b4f1b89f8728cba00f925c1d6e75b:

  Merge remote-tracking branch 'bonzini/split-main-loop-for-anthony' into staging (2011-10-24 10:51:12 -0500)

are available in the git repository at:

  git://github.com/avikivity/qemu.git uq/master

Avi Kivity (2):
      kvm: avoid reentring kvm_flush_coalesced_mmio_buffer()
      i386: wire up MSR_IA32_MISC_ENABLE

Jan Kiszka (2):
      kvm: Add tool for querying VMX capabilities
      kvm: Add top-like kvm statistics script

Liu, Jinsong (1):
      kvm: support TSC deadline MSR with subsection

Marcelo Tosatti (1):
      Revert "kvm: support TSC deadline MSR"

 kvm-all.c               |   10 +
 scripts/kvm/kvm_stat    |  480 +++++++++++++++++++++++++++++++++++++++++++++++
 scripts/kvm/vmxcap      |  224 ++++++++++++++++++++++
 target-i386/cpu.h       |    7 +-
 target-i386/helper.c    |    1 +
 target-i386/kvm.c       |   15 ++
 target-i386/machine.c   |   43 ++++-
 target-i386/op_helper.c |    6 +
 8 files changed, 784 insertions(+), 2 deletions(-)
 create mode 100755 scripts/kvm/kvm_stat
 create mode 100755 scripts/kvm/vmxcap

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue
  2011-10-27 12:10 Marcelo Tosatti
@ 2011-10-31 16:52 ` Anthony Liguori
  0 siblings, 0 replies; 18+ messages in thread
From: Anthony Liguori @ 2011-10-31 16:52 UTC (permalink / raw)
  To: Marcelo Tosatti; +Cc: qemu-devel, kvm

On 10/27/2011 07:10 AM, Marcelo Tosatti wrote:
> The following changes since commit 952e849c150b4f1b89f8728cba00f925c1d6e75b:
>
>    Merge remote-tracking branch 'bonzini/split-main-loop-for-anthony' into staging (2011-10-24 10:51:12 -0500)
>
> are available in the git repository at:
>
>    git://github.com/avikivity/qemu.git uq/master

Pulled.  Thanks.

Regards,

Anthony Liguori

>
> Avi Kivity (2):
>        kvm: avoid reentring kvm_flush_coalesced_mmio_buffer()
>        i386: wire up MSR_IA32_MISC_ENABLE
>
> Jan Kiszka (2):
>        kvm: Add tool for querying VMX capabilities
>        kvm: Add top-like kvm statistics script
>
> Liu, Jinsong (1):
>        kvm: support TSC deadline MSR with subsection
>
> Marcelo Tosatti (1):
>        Revert "kvm: support TSC deadline MSR"
>
>   kvm-all.c               |   10 +
>   scripts/kvm/kvm_stat    |  480 +++++++++++++++++++++++++++++++++++++++++++++++
>   scripts/kvm/vmxcap      |  224 ++++++++++++++++++++++
>   target-i386/cpu.h       |    7 +-
>   target-i386/helper.c    |    1 +
>   target-i386/kvm.c       |   15 ++
>   target-i386/machine.c   |   43 ++++-
>   target-i386/op_helper.c |    6 +
>   8 files changed, 784 insertions(+), 2 deletions(-)
>   create mode 100755 scripts/kvm/kvm_stat
>   create mode 100755 scripts/kvm/vmxcap
>
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2011-10-31 17:05 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-16 22:10 [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue Marcelo Tosatti
2011-04-16 22:10 ` [Qemu-devel] [PATCH 1/6] kvm: use kernel-provided para_features instead of statically coming up with new capabilities Marcelo Tosatti
2011-04-16 22:10 ` [Qemu-devel] [PATCH 2/6] kvm: add kvmclock to its second bit Marcelo Tosatti
2011-04-17 11:02   ` Jan Kiszka
2011-04-19 11:06     ` [Qemu-devel] [PATCH v2 2a/6] x86: Allow multiple cpu feature matches of lookup_feature Jan Kiszka
2011-04-27 18:38       ` Glauber Costa
2011-04-19 11:06     ` [Qemu-devel] [PATCH v2 2b/6] kvm: add kvmclock to its second bit Jan Kiszka
2011-04-16 22:10 ` [Qemu-devel] [PATCH 3/6] kvm: create kvmclock when one of the flags are present Marcelo Tosatti
2011-04-16 22:10 ` [Qemu-devel] [PATCH 4/6] Break up user and system cpu_interrupt implementations Marcelo Tosatti
2011-04-16 22:10 ` [Qemu-devel] [PATCH 5/6] Redirect cpu_interrupt to callback handler Marcelo Tosatti
2011-04-16 22:10 ` [Qemu-devel] [PATCH 6/6] kvm: Install specialized interrupt handler Marcelo Tosatti
2011-04-16 23:57 ` [Qemu-devel] [PATCH 0/6] [PULL] qemu-kvm.git uq/master queue Anthony Liguori
  -- strict thread matches above, loose matches on Subject: below --
2011-10-27 12:10 Marcelo Tosatti
2011-10-31 16:52 ` Anthony Liguori
2011-08-05 20:55 Marcelo Tosatti
2011-08-08 20:07 ` Anthony Liguori
2010-03-04 15:05 Marcelo Tosatti
2010-03-04 15:15 ` Anthony Liguori

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).