qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] kvmvapic: fix migration
@ 2014-09-22 12:14 Pavel Dovgalyuk
  2014-09-22 19:07 ` Paolo Bonzini
  0 siblings, 1 reply; 2+ messages in thread
From: Pavel Dovgalyuk @ 2014-09-22 12:14 UTC (permalink / raw)
  To: qemu-devel
  Cc: pbonzini, zealot351, maria.klimushenkova, pavel.dovgaluk,
	batuzovk

This patch fixes migration by extending do_vapic_enable function. This function
called vapic_enable which read cpu number from the guest memory. When cpu
number could not be read, vapic was not enabled while loading the VM state.
This patch adds required code for cpu_number=0 to do_vapic_enable function,
because it is called only when cpu_number=0.

Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
---
 hw/i386/kvmvapic.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
index 2cca7a4..f9da050 100644
--- a/hw/i386/kvmvapic.c
+++ b/hw/i386/kvmvapic.c
@@ -732,7 +732,11 @@ static void do_vapic_enable(void *data)
     VAPICROMState *s = data;
     X86CPU *cpu = X86_CPU(first_cpu);
 
-    vapic_enable(s, cpu);
+    static const uint8_t enabled = 1;
+    cpu_physical_memory_write(s->vapic_paddr + offsetof(VAPICState, enabled),
+                              &enabled, sizeof(enabled));
+    apic_enable_vapic(cpu->apic_state, s->vapic_paddr);
+    s->state = VAPIC_ACTIVE;
 }
 
 static void kvmvapic_vm_state_change(void *opaque, int running,

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

* Re: [Qemu-devel] [PATCH] kvmvapic: fix migration
  2014-09-22 12:14 [Qemu-devel] [PATCH] kvmvapic: fix migration Pavel Dovgalyuk
@ 2014-09-22 19:07 ` Paolo Bonzini
  0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2014-09-22 19:07 UTC (permalink / raw)
  To: Pavel Dovgalyuk, qemu-devel; +Cc: zealot351, maria.klimushenkova, batuzovk

Il 22/09/2014 14:14, Pavel Dovgalyuk ha scritto:
> This patch fixes migration by extending do_vapic_enable function. This function
> called vapic_enable which read cpu number from the guest memory. When cpu
> number could not be read, vapic was not enabled while loading the VM state.
> This patch adds required code for cpu_number=0 to do_vapic_enable function,
> because it is called only when cpu_number=0.
> 
> Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru>
> ---
>  hw/i386/kvmvapic.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
> 
> diff --git a/hw/i386/kvmvapic.c b/hw/i386/kvmvapic.c
> index 2cca7a4..f9da050 100644
> --- a/hw/i386/kvmvapic.c
> +++ b/hw/i386/kvmvapic.c
> @@ -732,7 +732,11 @@ static void do_vapic_enable(void *data)
>      VAPICROMState *s = data;
>      X86CPU *cpu = X86_CPU(first_cpu);
>  
> -    vapic_enable(s, cpu);
> +    static const uint8_t enabled = 1;
> +    cpu_physical_memory_write(s->vapic_paddr + offsetof(VAPICState, enabled),
> +                              &enabled, sizeof(enabled));
> +    apic_enable_vapic(cpu->apic_state, s->vapic_paddr);
> +    s->state = VAPIC_ACTIVE;
>  }
>  
>  static void kvmvapic_vm_state_change(void *opaque, int running,
> 

Thanks.

Paolo

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

end of thread, other threads:[~2014-09-22 19:07 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-22 12:14 [Qemu-devel] [PATCH] kvmvapic: fix migration Pavel Dovgalyuk
2014-09-22 19:07 ` Paolo Bonzini

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).