Message ID | 000601cfac82$0e135e30$2a3a1a90$@Dovgaluk@ispras.ru |
---|---|
State | New |
Headers | show |
Hi, Am 31.07.2014 07:41, schrieb Pavel Dovgaluk: > This patch adds subsection with exception_index field to the VMState for > correct saving the CPU state. > Without this patch simulator could miss the pending exception in the saved > virtual machine state. > > Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> > --- > exec.c | 35 +++++++++++++++++++++++++++++++++++ > 1 files changed, 35 insertions(+), 0 deletions(-) Doh, this resolves my request from the big series, Reviewed-by: Andreas Färber <afaerber@suse.de> I'll wait for more review before I take it, please keep me CC'ed. Thanks, Andreas
> From: Andreas Färber [mailto:afaerber@suse.de] > Am 31.07.2014 07:41, schrieb Pavel Dovgaluk: > > This patch adds subsection with exception_index field to the VMState for > > correct saving the CPU state. > > Without this patch simulator could miss the pending exception in the saved > > virtual machine state. > > > > Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> > > --- > > exec.c | 35 +++++++++++++++++++++++++++++++++++ > > 1 files changed, 35 insertions(+), 0 deletions(-) > > Doh, this resolves my request from the big series, > > Reviewed-by: Andreas Färber <afaerber@suse.de> > > I'll wait for more review before I take it, please keep me CC'ed. No more reviews yet. Will this patch be applied? Pavel Dovgalyuk
Am 25.08.2014 13:09, schrieb Pavel Dovgaluk: >> From: Andreas Färber [mailto:afaerber@suse.de] >> Am 31.07.2014 07:41, schrieb Pavel Dovgaluk: >>> This patch adds subsection with exception_index field to the VMState for >>> correct saving the CPU state. >>> Without this patch simulator could miss the pending exception in the saved >>> virtual machine state. >>> >>> Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> >>> --- >>> exec.c | 35 +++++++++++++++++++++++++++++++++++ >>> 1 files changed, 35 insertions(+), 0 deletions(-) >> >> Doh, this resolves my request from the big series, >> >> Reviewed-by: Andreas Färber <afaerber@suse.de> >> >> I'll wait for more review before I take it, please keep me CC'ed. > > No more reviews yet. > Will this patch be applied? Thanks for the reminder, applied to qom-cpu now: https://github.com/afaerber/qemu-cpu/commits/qom-cpu Andreas
diff --git a/exec.c b/exec.c index 765bd94..7581c06 100644 --- a/exec.c +++ b/exec.c @@ -430,15 +430,50 @@ static int cpu_common_post_load(void *opaque, int version_id) return 0; } +static int cpu_common_pre_load(void *opaque) +{ + CPUState *cpu = opaque; + + cpu->exception_index = 0; + + return 0; +} + +static bool cpu_common_exception_index_needed(void *opaque) +{ + CPUState *cpu = opaque; + + return cpu->exception_index != 0; +} + +static const VMStateDescription vmstate_cpu_common_exception_index = { + .name = "cpu_common/exception_index", + .version_id = 1, + .minimum_version_id = 1, + .fields = (VMStateField[]) { + VMSTATE_INT32(exception_index, CPUState), + VMSTATE_END_OF_LIST() + } +}; + const VMStateDescription vmstate_cpu_common = { .name = "cpu_common", .version_id = 1, .minimum_version_id = 1, + .pre_load = cpu_common_pre_load, .post_load = cpu_common_post_load, .fields = (VMStateField[]) { VMSTATE_UINT32(halted, CPUState), VMSTATE_UINT32(interrupt_request, CPUState), VMSTATE_END_OF_LIST() + }, + .subsections = (VMStateSubsection[]) { + { + .vmsd = &vmstate_cpu_common_exception_index, + .needed = cpu_common_exception_index_needed, + } , { + /* empty */ + } } };
This patch adds subsection with exception_index field to the VMState for correct saving the CPU state. Without this patch simulator could miss the pending exception in the saved virtual machine state. Signed-off-by: Pavel Dovgalyuk <pavel.dovgaluk@ispras.ru> --- exec.c | 35 +++++++++++++++++++++++++++++++++++ 1 files changed, 35 insertions(+), 0 deletions(-)