[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v3 07/49] kvmapic: fixing loading vmstate
From: |
Pavel Dovgalyuk |
Subject: |
Re: [Qemu-devel] [RFC PATCH v3 07/49] kvmapic: fixing loading vmstate |
Date: |
Thu, 31 Jul 2014 19:21:46 +0400 |
Pre load is necessary, because we switched off resetting VM while loading in the replay mode. Calling reset handlers generates irqs, that make loading process non-deterministic.
Sent from mobile device
-------- Исходное сообщение --------
От: Paolo Bonzini
Дата:31.07.2014 17:01 (GMT+04:00)
Кому: Pavel Dovgalyuk ,address@hidden
Копия: address@hidden,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden
Тема: Re: [RFC PATCH v3 07/49] kvmapic: fixing loading vmstate
Il 31/07/2014 14:54, Pavel Dovgalyuk ha scritto:
> +static int apic_pre_load(void *opaque)
> +{
> + APICCommonState *s = APIC_COMMON(opaque);
> + s->sipi_vector = 0;
> + s->wait_for_sipi = 0;
> + s->vapic_paddr = 0;
> + return 0;
Is this necessary? Or does reset already do that?
> +}
> +
> static void apic_dispatch_pre_save(void *opaque)
> {
> APICCommonState *s = APIC_COMMON(opaque);
> @@ -345,12 +354,46 @@ static int apic_dispatch_post_load(void *opaque, int version_id)
> return 0;
> }
>
> +static bool apic_common_sipi_needed(void *opaque)
> +{
> + APICCommonState *s = APIC_COMMON(opaque);
> + return s->wait_for_sipi != 0;
> +}
> +
> +static const VMStateDescription vmstate_apic_common_sipi = {
> + .name = "apic_sipi",
> + .version_id = 1,
> + .minimum_version_id = 1,
> + .fields = (VMStateField[]) {
> + VMSTATE_INT32(sipi_vector, APICCommonState),
> + VMSTATE_INT32(wait_for_sipi, APICCommonState),
> + VMSTATE_END_OF_LIST()
> + }
> +};
> +
> +static bool apic_common_vapic_paddr_needed(void *opaque)
> +{
> + APICCommonState *s = APIC_COMMON(opaque);
> + return s->vapic_paddr != 0;
> +}
> +
> +static const VMStateDescription vmstate_apic_common_vapic_paddr = {
> + .name = "apic_vapic_paddr",
> + .version_id = 1,
> + .minimum_version_id = 1,
> + .fields = (VMStateField[]) {
> + VMSTATE_UINT64(vapic_paddr, APICCommonState),
> + VMSTATE_END_OF_LIST()
> + }
> +};
> +
> static const VMStateDescription vmstate_apic_common = {
> .name = "apic",
> - .version_id = 3,
> + .version_id = 4,
You know what I'm going to say. :)
Paolo
- Re: [Qemu-devel] [RFC PATCH v3 07/49] kvmapic: fixing loading vmstate,
Pavel Dovgalyuk <=