It's just the overhead of running a cross architecture emulation. For Arm
to x86_64, the overhead is very high. I was wondering if there is some
command line argument that I was missing in order to reduce this. I read
somewhere that the tcg cache is defaulted to some value, and wanted to
check in to make sure that that wasn't it.

I can't see it right now, I was just looking into it.

On Wed, Sep 22, 2021 at 1:39 PM Alex Bennée <alex.ben...@linaro.org> wrote:

>
> Kenneth Adam Miller <kennethadammil...@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.ben...@linaro.org>
> wrote:
> >
> >  Kenneth Adam Miller <kennethadammil...@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 via email to