All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: Kenneth Adam Miller <kennethadammiller@gmail.com>
Cc: QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: Change TCG cache size?
Date: Wed, 22 Sep 2021 18:32:12 +0100	[thread overview]
Message-ID: <875yuso6g7.fsf@linaro.org> (raw)
In-Reply-To: <CAK7rcp_gSO+eCWOPBSbEEB3GMhj7aXrkK166eYxrUr1Yj8HKkg@mail.gmail.com>


Kenneth Adam Miller <kennethadammiller@gmail.com> writes:

> Well, maybe I'm understanding that wrong. I am talking the cache that the tcg keeps of translated code. If I got that variable wrong then
> please let me know.

TB_JMP_CACHE_SIZE is used to keep a lookup of address to  translated
blocks (TBs). This is used to find the next TB on a computed jump
without doing a full lookup in the QHT hash.

The total size of the translation cache is tb-size in MBs (as in -accel
tcg,tb-size=1024). We have some heuristics to guess at a size (see
DEFAULT_CODE_GEN_BUFFER_SIZE in tcg/region.c) but you are free to
specify your own.

> But I want to make sure that that is large enough to keep from having
> to run TCG again. How can I do that?

Specifying a large tb-size will reduce the churn caused by running out
of translation cache but you will never be able to eliminate it
entirely. There are a number of places where tb_flush() has to get
called and that will require stuff to get re-translated. Also the
translator partitions the regions up per-CPU (for softmmu) so if one
vCPU is responsible for all code generation it will run out sooner.

You can observe the total number of flushes via the HMP and "info jit".
What is the behaviour your seeing? What workload is it?

>
> On Wed, Sep 22, 2021, 6:54 AM Alex Bennée <alex.bennee@linaro.org> wrote:
>
>  Kenneth Adam Miller <kennethadammiller@gmail.com> writes:
>
>  > Hello all,
>  >
>  > I just want to ask this one question: if I change the qemu tcg cache
>  > size (TB_JMP_CACHE_SIZE), will that force any errors at run time?
>
>  Hopefully not - for both user-mode and softmmu we take some care to
>  ensure tb_jmp_cache_hash_func and tb_jmp_cache_hash_page return
>  appropriately masked values for the table lookup.
>
>  What has not been done since Emilio's work in 6f1653180f (tb-hash:
>  improve tb_jmp_cache hash function in user mode) is a deeper look at the
>  hit rate and bounce rate of the softmmu jump table hashing. Any
>  suggested changes will need some benchmarking to show what difference it
>  makes.
>
>  -- 
>  Alex Bennée


-- 
Alex Bennée


  reply	other threads:[~2021-09-22 18:39 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-21 21:07 Change TCG cache size? Kenneth Adam Miller
2021-09-22 10:47 ` Alex Bennée
2021-09-22 12:32   ` Kenneth Adam Miller
2021-09-22 17:32     ` Alex Bennée [this message]
2021-09-22 17:50       ` Kenneth Adam Miller
2021-09-22 19:52         ` Kenneth Adam Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=875yuso6g7.fsf@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=kennethadammiller@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.