[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH 4/7] ppc: move sdr1 value change detection logic t
From: |
Mark Cave-Ayland |
Subject: |
Re: [Qemu-ppc] [PATCH 4/7] ppc: move sdr1 value change detection logic to helper_store_sdr1() |
Date: |
Tue, 20 Jan 2015 15:23:24 +0000 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Icedove/31.3.0 |
On 20/01/15 14:57, Paolo Bonzini wrote:
> On 23/12/2014 01:36, Mark Cave-Ayland wrote:
>> Otherwise when cpu_post_load calls ppc_store_sdr1() when restoring a VM
>> snapshot the value is deemed unchanged and so the internal env->htab*
>> variables aren't set correctly.
>>
>> Signed-off-by: Mark Cave-Ayland <address@hidden>
>> CC: Paolo Bonzini <address@hidden>
>> ---
>> target-ppc/misc_helper.c | 7 ++++++-
>> target-ppc/mmu_helper.c | 35 +++++++++++++++--------------------
>> 2 files changed, 21 insertions(+), 21 deletions(-)
>>
>> diff --git a/target-ppc/misc_helper.c b/target-ppc/misc_helper.c
>> index a577b3a..6b12ca8 100644
>> --- a/target-ppc/misc_helper.c
>> +++ b/target-ppc/misc_helper.c
>> @@ -77,8 +77,13 @@ void helper_msr_facility_check(CPUPPCState *env, uint32_t
>> bit,
>>
>> void helper_store_sdr1(CPUPPCState *env, target_ulong val)
>> {
>> + PowerPCCPU *cpu = ppc_env_get_cpu(env);
>> +
>> if (!env->external_htab) {
>> - ppc_store_sdr1(env, val);
>> + if (env->spr[SPR_SDR1] != val) {
>> + ppc_store_sdr1(env, val);
>> + tlb_flush(CPU(cpu), 1);
>
> Possibly stupid question: should this tlb_flush be in ppc_store_sdr1,
> maybe guarded by "if (tcg_enabled())"?
>
> Apart from this, the patch is okay.
Thanks Paolo. I based this patch upon a comment in a slightly earlier
thread here:
http://lists.gnu.org/archive/html/qemu-devel/2014-12/msg03146.html.
Is this still relevant or would you still like me to make the change?
This is a little beyond my area of knowledge, but at the very least I
can test any suggested changes under TCG fairly easily.
ATB,
Mark.