qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v1 2/4] accel/tcg: remove link between guest ram and TCG cach


From: Niek Linnenbank
Subject: Re: [PATCH v1 2/4] accel/tcg: remove link between guest ram and TCG cache size
Date: Wed, 26 Feb 2020 23:26:50 +0100

Hi Alex,

On Wed, Feb 26, 2020 at 7:10 PM Alex Bennée <address@hidden> 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 <address@hidden>
Cc: Niek Linnenbank <address@hidden>
Cc: Igor Mammedov <address@hidden>
---
 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 <address@hidden>

Regards,
Niek
 
-#endif
     }
     if (tb_size < MIN_CODE_GEN_BUFFER_SIZE) {
         tb_size = MIN_CODE_GEN_BUFFER_SIZE;
--
2.20.1



--
Niek Linnenbank


reply via email to

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