qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v5 2/3] tcg: introduce dynamic TLB sizing


From: Emilio G. Cota
Subject: Re: [Qemu-devel] [PATCH v5 2/3] tcg: introduce dynamic TLB sizing
Date: Mon, 17 Dec 2018 17:41:33 -0500
User-agent: Mutt/1.9.4 (2018-02-28)

On Fri, Dec 14, 2018 at 12:42:32 -0500, Emilio G. Cota wrote:
> +static void tlb_mmu_resize_locked(CPUArchState *env, int mmu_idx)
> +{
> +    CPUTLBDesc *desc = &env->tlb_d[mmu_idx];
> +    size_t old_size = tlb_n_entries(env, mmu_idx);
> +    size_t rate;
> +    size_t new_size = old_size;
(snip)
> +    if (desc->n_used_entries > desc->window.max_entries) {
> +        desc->window.max_entries = desc->n_used_entries;
> +    }
> +    rate = desc->window.max_entries * 100 / old_size;
> +
> +    if (rate == 100) {
> +        new_size = MIN(old_size << 2, 1 << CPU_TLB_DYN_MAX_BITS);
> +    } else if (rate > 70) {
> +        new_size = MIN(old_size << 1, 1 << CPU_TLB_DYN_MAX_BITS);

I won't resend a v6 until v5 gets any comments, but I just
want to point out that after doing some more benchmarking,
quadrupling the size here is unnecessary; in fact, perf is 1% better
on average if we just double the TLB size when rate > 70.

                Emilio



reply via email to

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