qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] pit: fix pit interrupt can't inject into vm after migration
@ 2014-09-16  7:26 arei.gonglei
  2014-09-16  8:39 ` Paolo Bonzini
  0 siblings, 1 reply; 2+ messages in thread
From: arei.gonglei @ 2014-09-16  7:26 UTC (permalink / raw)
  To: qemu-devel
  Cc: ChenLiang, weidong.huang, mst, quintela, Gonglei, aliguori,
	pbonzini, imammedo, afaerber

From: ChenLiang <chenliang88@huawei.com>

kvm_pit is running in kmod. kvm_pit is going to inject
interrupt to vm before cpu_synchronize_all_post_init at
dest side. vcpu will lose the pit interrupt, but
ack_irq(in kmod) has been 0. ack_irq become 1 after
vcpu responds pit interrupt. pit interruptcan inject
to vm when ack_irq is 1.

By the way, kvm_pit_vm_state_change has save and load
state of pit, so pre_save and post_load is unnecessary.

Signed-off-by: ChenLiang <chenliang88@huawei.com>
Signed-off-by: Gonglei <arei.gonglei@huawei.com>
---
 hw/i386/kvm/i8254.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/hw/i386/kvm/i8254.c b/hw/i386/kvm/i8254.c
index 59373aa..472af81 100644
--- a/hw/i386/kvm/i8254.c
+++ b/hw/i386/kvm/i8254.c
@@ -239,6 +239,7 @@ static void kvm_pit_vm_state_change(void *opaque, int running,
 
     if (running) {
         kvm_pit_update_clock_offset(s);
+        kvm_pit_put(PIT_COMMON(s));
         s->vm_stopped = false;
     } else {
         kvm_pit_update_clock_offset(s);
@@ -314,8 +315,6 @@ static void kvm_pit_class_init(ObjectClass *klass, void *data)
     dc->realize = kvm_pit_realizefn;
     k->set_channel_gate = kvm_pit_set_gate;
     k->get_channel_info = kvm_pit_get_channel_info;
-    k->pre_save = kvm_pit_get;
-    k->post_load = kvm_pit_put;
     dc->reset = kvm_pit_reset;
     dc->props = kvm_pit_properties;
 }
-- 
1.7.12.4

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

* Re: [Qemu-devel] [PATCH] pit: fix pit interrupt can't inject into vm after migration
  2014-09-16  7:26 [Qemu-devel] [PATCH] pit: fix pit interrupt can't inject into vm after migration arei.gonglei
@ 2014-09-16  8:39 ` Paolo Bonzini
  0 siblings, 0 replies; 2+ messages in thread
From: Paolo Bonzini @ 2014-09-16  8:39 UTC (permalink / raw)
  To: arei.gonglei, qemu-devel
  Cc: ChenLiang, weidong.huang, mst, quintela, aliguori, imammedo,
	afaerber

Il 16/09/2014 09:26, arei.gonglei@huawei.com ha scritto:
> From: ChenLiang <chenliang88@huawei.com>
> 
> kvm_pit is running in kmod. kvm_pit is going to inject
> interrupt to vm before cpu_synchronize_all_post_init at
> dest side. vcpu will lose the pit interrupt, but
> ack_irq(in kmod) has been 0. ack_irq become 1 after
> vcpu responds pit interrupt. pit interruptcan inject
> to vm when ack_irq is 1.
> 
> By the way, kvm_pit_vm_state_change has save and load
> state of pit, so pre_save and post_load is unnecessary.
> 
> Signed-off-by: ChenLiang <chenliang88@huawei.com>
> Signed-off-by: Gonglei <arei.gonglei@huawei.com>
> ---
>  hw/i386/kvm/i8254.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/hw/i386/kvm/i8254.c b/hw/i386/kvm/i8254.c
> index 59373aa..472af81 100644
> --- a/hw/i386/kvm/i8254.c
> +++ b/hw/i386/kvm/i8254.c
> @@ -239,6 +239,7 @@ static void kvm_pit_vm_state_change(void *opaque, int running,
>  
>      if (running) {
>          kvm_pit_update_clock_offset(s);
> +        kvm_pit_put(PIT_COMMON(s));
>          s->vm_stopped = false;
>      } else {
>          kvm_pit_update_clock_offset(s);
> @@ -314,8 +315,6 @@ static void kvm_pit_class_init(ObjectClass *klass, void *data)
>      dc->realize = kvm_pit_realizefn;
>      k->set_channel_gate = kvm_pit_set_gate;
>      k->get_channel_info = kvm_pit_get_channel_info;
> -    k->pre_save = kvm_pit_get;
> -    k->post_load = kvm_pit_put;
>      dc->reset = kvm_pit_reset;
>      dc->props = kvm_pit_properties;
>  }
> 

Looks good.  Thanks, will apply.

Paolo

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

end of thread, other threads:[~2014-09-16  8:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-16  7:26 [Qemu-devel] [PATCH] pit: fix pit interrupt can't inject into vm after migration arei.gonglei
2014-09-16  8:39 ` 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).