Hi Alex, On Wed, Feb 26, 2020 at 7:10 PM Alex Bennée <[email protected]> wrote:
> Basing the TB cache size on the ram_size was always a little heuristic > and was broken by a1b18df9a4 which caused ram_size not to be fully > realised at the time we initialise the TCG translation cache. > Now I'm beginning to understand the issue better. So without this patch, the TCG translation cache effectively was disabled, causing the slowdown, correct? > > The current DEFAULT_CODE_GEN_BUFFER_SIZE may still be a little small > but follow-up patches will address that. > > Fixes: a1b18df9a4 > Signed-off-by: Alex Bennée <[email protected]> > Cc: Niek Linnenbank <[email protected]> > Cc: Igor Mammedov <[email protected]> > --- > accel/tcg/translate-all.c | 8 -------- > 1 file changed, 8 deletions(-) > > diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c > index 238b0e575bf..5b66af783b5 100644 > --- a/accel/tcg/translate-all.c > +++ b/accel/tcg/translate-all.c > @@ -938,15 +938,7 @@ static inline size_t size_code_gen_buffer(size_t > tb_size) > { > /* Size the buffer. */ > if (tb_size == 0) { > -#ifdef USE_STATIC_CODE_GEN_BUFFER > tb_size = DEFAULT_CODE_GEN_BUFFER_SIZE; > -#else > - /* ??? Needs adjustments. */ > - /* ??? If we relax the requirement that CONFIG_USER_ONLY use the > - static buffer, we could size this on RESERVED_VA, on the text > - segment size of the executable, or continue to use the > default. */ > - tb_size = (unsigned long)(ram_size / 4); > As you wrote in the commit message, I think we are indeed reducing the cache size here to 32MiB versus a larger size without this patch. In the next patch #4 in this series you are increasing it for 64-bit hosts, but what about the 32-bit hosts? Or will that be addressed in a later series? For now, this fix works and resolves the slowdown, so: Tested-by: Niek Linnenbank <[email protected]> Regards, Niek > -#endif > } > if (tb_size < MIN_CODE_GEN_BUFFER_SIZE) { > tb_size = MIN_CODE_GEN_BUFFER_SIZE; > -- > 2.20.1 > > -- Niek Linnenbank
