Re: [PATCH 11/11] qemu/kvm: mark in cpu state that hyper-v crash occured
On 22/06/2015 19:46, Andreas Färber wrote: On the other hand, I wonder if current_cpu is available in qemu_system_guest_panicked. If so, you could add the field to the generic CPUState struct and migrate it as a subsection of vmstate_cpu_common. Hm, not sure whether it is. It should be... Obviously depends on the call site. :) At some point in cpu-exec.c, current_cpu gets set to NULL. So the function would at least deserve a comment on when (not to) use it. I think it could be used anyway even if current_cpu. The difference would be whether the crash is attached to a CPU or not. Paolo -- To unsubscribe from this list: send the line unsubscribe kvm in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH 11/11] qemu/kvm: mark in cpu state that hyper-v crash occured
On 22/06/15 19:33, Andreas Färber wrote: Am 22.06.2015 um 18:27 schrieb Paolo Bonzini: On the other hand, I wonder if current_cpu is available in qemu_system_guest_panicked. If so, you could add the field to the generic CPUState struct and migrate it as a subsection of vmstate_cpu_common. Hm, not sure whether it is. Would that work with the two ways we use vmstate_cpu_common though? I.e., can a nested VMState struct (VMSTATE_CPU()) have subsections? Regards, Andreas we'd better squash to avoid troubles. Any other issues? -- To unsubscribe from this list: send the line unsubscribe kvm in
Re: [PATCH 11/11] qemu/kvm: mark in cpu state that hyper-v crash occured
On 22/06/2015 18:23, Andreas Färber wrote: @@ -679,6 +679,7 @@ static const VMStateDescription vmstate_msr_hyperv_crash = { VMSTATE_UINT64(env.msr_hv_crash_ctl, X86CPU), VMSTATE_UINT64_ARRAY(env.msr_hv_crash_prm, X86CPU, HV_X64_MSR_CRASH_PARAMS), +VMSTATE_UINT8(env.hv_crash_occurred, X86CPU), VMSTATE_END_OF_LIST() } }; This looks like a migration format breakage. You probably need to squash it with the preceding patch so that the cpu/msr_hyperv_crash subsection does not change in size between commits. Just incrementing the version is not an option for subsections, I think? We don't usually care about migration format within the same upstream release, but yes that would be better. On the other hand, I wonder if current_cpu is available in qemu_system_guest_panicked. If so, you could add the field to the generic CPUState struct and migrate it as a subsection of vmstate_cpu_common. Paolo -- To unsubscribe from this list: send the line unsubscribe kvm in
Re: [PATCH 11/11] qemu/kvm: mark in cpu state that hyper-v crash occured
Am 22.06.2015 um 18:05 schrieb Denis V. Lunev: From: Andrey Smetanin asmeta...@virtuozzo.com It's usually impossible to understand from Hyper-V crash msr's that crash happened because ctl msr always contains the same value HV_X64_MSR_CRASH_CTL_NOTIFY. To solve it add a particalar value hv_crash_occurred inside CPU state and migrate this value with crash msr's. Signed-off-by: Andrey Smetanin asmeta...@virtuozzo.com Signed-off-by: Denis V. Lunev d...@openvz.org CC: Paolo Bonzini pbonz...@redhat.com CC: Andreas Färber afaer...@suse.de --- [...] diff --git a/target-i386/machine.c b/target-i386/machine.c index 15b3f31..4f72ba8 100644 --- a/target-i386/machine.c +++ b/target-i386/machine.c @@ -679,6 +679,7 @@ static const VMStateDescription vmstate_msr_hyperv_crash = { VMSTATE_UINT64(env.msr_hv_crash_ctl, X86CPU), VMSTATE_UINT64_ARRAY(env.msr_hv_crash_prm, X86CPU, HV_X64_MSR_CRASH_PARAMS), +VMSTATE_UINT8(env.hv_crash_occurred, X86CPU), VMSTATE_END_OF_LIST() } }; This looks like a migration format breakage. You probably need to squash it with the preceding patch so that the cpu/msr_hyperv_crash subsection does not change in size between commits. Just incrementing the version is not an option for subsections, I think? Regards, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Dilip Upmanyu, Graham Norton; HRB 21284 (AG Nürnberg) -- To unsubscribe from this list: send the line unsubscribe kvm in
Re: [PATCH 11/11] qemu/kvm: mark in cpu state that hyper-v crash occured
Am 22.06.2015 um 18:27 schrieb Paolo Bonzini: On the other hand, I wonder if current_cpu is available in qemu_system_guest_panicked. If so, you could add the field to the generic CPUState struct and migrate it as a subsection of vmstate_cpu_common. Hm, not sure whether it is. Would that work with the two ways we use vmstate_cpu_common though? I.e., can a nested VMState struct (VMSTATE_CPU()) have subsections? Regards, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Dilip Upmanyu, Graham Norton; HRB 21284 (AG Nürnberg) -- To unsubscribe from this list: send the line unsubscribe kvm in
Re: [PATCH 11/11] qemu/kvm: mark in cpu state that hyper-v crash occured
On 22/06/2015 18:33, Andreas Färber wrote: On the other hand, I wonder if current_cpu is available in qemu_system_guest_panicked. If so, you could add the field to the generic CPUState struct and migrate it as a subsection of vmstate_cpu_common. Hm, not sure whether it is. It should be... Would that work with the two ways we use vmstate_cpu_common though? I.e., can a nested VMState struct (VMSTATE_CPU()) have subsections? Yes, it can. Paolo -- To unsubscribe from this list: send the line unsubscribe kvm in
Re: [PATCH 11/11] qemu/kvm: mark in cpu state that hyper-v crash occured
Am 22.06.2015 um 18:36 schrieb Paolo Bonzini: On 22/06/2015 18:33, Andreas Färber wrote: On the other hand, I wonder if current_cpu is available in qemu_system_guest_panicked. If so, you could add the field to the generic CPUState struct and migrate it as a subsection of vmstate_cpu_common. Hm, not sure whether it is. It should be... Obviously depends on the call site. :) At some point in cpu-exec.c, current_cpu gets set to NULL. So the function would at least deserve a comment on when (not to) use it. Cheers, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Dilip Upmanyu, Graham Norton; HRB 21284 (AG Nürnberg) -- To unsubscribe from this list: send the line unsubscribe kvm in