Richard Henderson <richard.hender...@linaro.org> 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