[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] target/arm: Convert ARM_TBFLAG_* to FIELDs
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH] target/arm: Convert ARM_TBFLAG_* to FIELDs |
Date: |
Tue, 18 Dec 2018 15:46:35 +0000 |
User-agent: |
mu4e 1.1.0; emacs 26.1.90 |
Richard Henderson <address@hidden> writes:
> 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.
I'm having all sorts of trouble applying this patch - have you got a
commit I can reference?
--
Alex Bennée