[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] target/arm: Convert ARM_TBFLAG_* to FIELDs
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH] target/arm: Convert ARM_TBFLAG_* to FIELDs |
Date: |
Mon, 17 Dec 2018 10:03:56 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.1 |
On 12/17/18 9:43 AM, Alex Bennée wrote:
>> Use "register" TBFLAG_ANY to indicate shared state between
>> A32 and A64, and "registers" TBFLAG_A32 & TBFLAG_A64 for
>> fields that are specific to the given cpu state.
>>
>> Move ARM_TBFLAG_BE to shared state, instead of its current
>> placement within "Bit usage when in AArch32 state".
>
> This looks like a worthwhile clean-up but really we need to defer this
> calculation. It's in the top 2 hot functions on my build load stressor:
>
> 5.74% qemu-system-aarch64 [.] helper_lookup_tb_ptr
> 5.05% qemu-system-aarch64 [.] get_phys_addr_lpae
> 4.39% qemu-system-aarch64 [.] cpu_get_tb_cpu_state
> 3.73% qemu-system-aarch64 [.] tcg_gen_code
> 3.65% qemu-system-aarch64 [.] qht_lookup_custom
Yes, I know. We need to put on our thinking caps and come up with a scheme
that minimizes the chances of missing an update to any (partially) pre-computed
value.
That has been Peter's (legitimate) resistance to such a scheme so far. There
are a *lot* of variables that go into computing tb->flags.
In the meantime this patch just makes the task of adding bits less ugly.
r~