[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] cpu: flush TB cache when loading VMState
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [PATCH] cpu: flush TB cache when loading VMState |
Date: |
Wed, 10 Jan 2018 17:55:45 +0000 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
* Richard Henderson (address@hidden) wrote:
> On 01/10/2018 05:48 AM, Pavel Dovgalyuk wrote:
> > Flushing TB cache is required because TBs key in the cache may match
> > different code which existed in the previous state.
> >
> > Signed-off-by: Pavel Dovgalyuk <address@hidden>
> > Signed-off-by: Maria Klimushenkova <address@hidden>
> > ---
> > exec.c | 1 +
> > 1 file changed, 1 insertion(+)
> >
> > diff --git a/exec.c b/exec.c
> > index 4722e52..ff31e71 100644
> > --- a/exec.c
> > +++ b/exec.c
> > @@ -622,6 +622,7 @@ static int cpu_common_post_load(void *opaque, int
> > version_id)
> > version_id is increased. */
> > cpu->interrupt_request &= ~0x01;
> > tlb_flush(cpu);
> > + tb_flush(cpu);
>
> I'm not necessarily objecting, but what do you mean by "may match different
> code"?
>
> What this patch suggests is that the inputs to the computation of TB->FLAGS
> are
> different for some unspecified reason. Without further explanation, to me
> this
> suggests a bug in vmstate save/restore.
>
> What is the observed problem here?
Is this a case where you're repeatedly running 'loadvm' to revert to a
previous snapshot (or I guess the debug stuff); so you've been running
and translating code and then reload state ?
Dave
>
> r~
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK