qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] How expensive is an extra QEMU TLB MMU index ?


From: Peter Maydell
Subject: Re: [Qemu-devel] How expensive is an extra QEMU TLB MMU index ?
Date: Mon, 24 Apr 2017 11:45:46 +0100

On 21 April 2017 at 18:59, Richard Henderson <address@hidden> wrote:
> On 04/21/2017 10:23 AM, Peter Maydell wrote:
>> So, just how expensive is having an extra MMU mode which isn't
>> actually used? Is it bad enough to be worth the reduced
>> maintainability?

> Once you get above 7 indicies, we will start to reduce the size of the TLB
> for various hosts.  See CPU_TLB_BITS in include/exec/cpu-defs.h.

That should be "above 8", right?

#define CPU_TLB_BITS                                             \
    MIN(8,                                                       \
        TCG_TARGET_TLB_DISPLACEMENT_BITS - CPU_TLB_ENTRY_BITS -  \
        (NB_MMU_MODES <= 1 ? 0 :                                 \
         NB_MMU_MODES <= 2 ? 1 :                                 \
         NB_MMU_MODES <= 4 ? 2 :                                 \
         NB_MMU_MODES <= 8 ? 3 : 4))

Given that the worst case TCG_TARGET_TLB_DISPLACEMENT_BITS
is 16 (ARM, PPC, MIPS) and CPU_TLB_ENTRY_BITS 5, it's
only the NB_MMU_MODES 9 or more that reduces CPU_TLB_BITS
below 8.

So I have one more "free" mmu index for ARM, after which
it starts to cost us on ARM/PPC/MIPS hosts.

Unfortunately for v8M we're going to want "HFNMIENA, Secure"
as another index, which would be over 8. I'll have a play with
an approach where we have a wider set of index values within
target/arm code which we translate to/from MMU indexes when
we interact with the core TLB code.

thanks
-- PMM



reply via email to

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