qemu-arm
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 01/20] target/arm: Add commentary for CPUARMState.exclusiv


From: Juan Quintela
Subject: Re: [PATCH v2 01/20] target/arm: Add commentary for CPUARMState.exclusive_high
Date: Fri, 26 May 2023 11:49:46 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)

Philippe Mathieu-Daudé <philmd@linaro.org> wrote:
> Hi,
>
> On 26/5/23 01:25, Richard Henderson wrote:
>> Document the meaning of exclusive_high in a big-endian context,
>> and why we can't change it now.
>> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
>> ---
>>   target/arm/cpu.h | 7 +++++++
>>   1 file changed, 7 insertions(+)
>> diff --git a/target/arm/cpu.h b/target/arm/cpu.h
>> index d469a2637b..4e16eab82e 100644
>> --- a/target/arm/cpu.h
>> +++ b/target/arm/cpu.h
>> @@ -677,8 +677,15 @@ typedef struct CPUArchState {
>>           uint64_t zcr_el[4];   /* ZCR_EL[1-3] */
>>           uint64_t smcr_el[4];  /* SMCR_EL[1-3] */
>>       } vfp;
>> +
>>       uint64_t exclusive_addr;
>>       uint64_t exclusive_val;
>> +    /*
>> +     * Contains the 'val' for the second 64-bit register of LDXP, which 
>> comes
>> +     * from the higher address, not the high part of a complete 128-bit 
>> value.
>> +     * This is perhaps confusingly named, but the name is now baked into the
>> +     * migration format.
>> +     */
>>       uint64_t exclusive_high;
>
> Can't we rename the field if we add the old name to check_fields_match()
> in scripts/vmstate-static-checker.py?
>
> Juan, could we store this renamed information directly in the code in
> VMState? Maybe adding some VMSTATE_KEY_ALIAS(_old_key, _new_key) macro
> and have the migration/ code magically deal with that :)
>
> I.e. here:
>
>   VMSTATE_KEY_ALIAS("exclusive_val", high_addr),

You are asking for magic?
In VMState, that nobody understands.

Sniff.

I remembered that VMState only cares about values, not for field names.
We can rename fields without any trouble....

Until we arrive to dump_vmstate_vmsf().

But I think we can have both things, the only thing that we really care
about vmstate dump is to do comparisons.  And for doing comparisons you
should be using vmstate-static-checker.py

That already have support for this.  Look up:

check_fields_match()

and see how it renamed other fields.

As you know better how to do this, can you play with the script and see
if you can get what you want?

If not, I can try to modify the script to get to what you need.

Later, Juan.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]