[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.
- Re: [PATCH v2 11/20] target/arm: Hoist finalize_memop out of do_fp_{ld, st}, (continued)
- [PATCH v2 02/20] target/arm: Add feature test for FEAT_LSE2, Richard Henderson, 2023/05/25
- [PATCH v2 05/20] target/arm: Use tcg_gen_qemu_{st, ld}_i128 for do_fp_{st, ld}, Richard Henderson, 2023/05/25
- [PATCH v2 08/20] target/arm: Sink gen_mte_check1 into load/store_exclusive, Richard Henderson, 2023/05/25
- [PATCH v2 14/20] target/arm: Check alignment in helper_mte_check, Richard Henderson, 2023/05/25
- [PATCH v2 12/20] target/arm: Pass memop to gen_mte_check1*, Richard Henderson, 2023/05/25
- [PATCH v2 01/20] target/arm: Add commentary for CPUARMState.exclusive_high, Richard Henderson, 2023/05/25
[PATCH v2 20/20] target/arm: Enable FEAT_LSE2 for -cpu max, Richard Henderson, 2023/05/25
[PATCH v2 04/20] target/arm: Use tcg_gen_qemu_ld_i128 for LDXP, Richard Henderson, 2023/05/25
[PATCH v2 13/20] target/arm: Pass single_memop to gen_mte_checkN, Richard Henderson, 2023/05/25
[PATCH v2 15/20] target/arm: Add SCTLR.nAA to TBFLAG_A64, Richard Henderson, 2023/05/25
[PATCH v2 16/20] target/arm: Relax ordered/atomic alignment checks for LSE2, Richard Henderson, 2023/05/25
[PATCH v2 17/20] target/arm: Move mte check for store-exclusive, Richard Henderson, 2023/05/25
[PATCH v2 19/20] tests/tcg/multiarch: Adjust sigbus.c, Richard Henderson, 2023/05/25