[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] pit: fix pit interrupt can't inject into vm aft
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH] pit: fix pit interrupt can't inject into vm after migration |
Date: |
Tue, 16 Sep 2014 10:39:34 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.0 |
Il 16/09/2014 09:26, address@hidden ha scritto:
> From: ChenLiang <address@hidden>
>
> 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 <address@hidden>
> Signed-off-by: Gonglei <address@hidden>
> ---
> 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