qemu-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v2 03/29] tcg: Re-order tcg_region_init vs tcg_prologue_init


From: Richard Henderson
Subject: Re: [PATCH v2 03/29] tcg: Re-order tcg_region_init vs tcg_prologue_init
Date: Tue, 16 Mar 2021 08:57:17 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.7.1

On 3/15/21 5:37 PM, Roman Bolshakov wrote:
      tcg_exec_init(s->tb_size * 1024 * 1024, s->splitwx_enabled);
      mttcg_enabled = s->mttcg_enabled;
-
-    /*
-     * Initialize TCG regions only for softmmu.
-     *
-     * This needs to be done later for user mode, because the prologue
-     * generation needs to be delayed so that GUEST_BASE is already set.
-     */
-#ifndef CONFIG_USER_ONLY
-    tcg_region_init();

Note that tcg_region_init() invokes tcg_n_regions() that depends on
qemu_tcg_mttcg_enabled() that evaluates mttcg_enabled. Likely you need
to move "mttcg_enabled = s->mttcg_enabled;" before tcg_exec_init() to
keep existing behaviour.

Yes indeed. This gets fixed in patch 12, which is why I didn't notice breakage. Will adjust.

-    total_size = s->code_gen_buffer_size;
-    s->code_ptr = buf0;
-    s->code_buf = buf0;
+    tcg_region_assign(s, 0);
+    s->code_ptr = s->code_gen_ptr;
+    s->code_buf = s->code_gen_ptr;

Pardon me for asking a naive question, what's the difference between
s->code_buf and s->code_gen_buf and, respectively, s->code_ptr and
s->code_gen_ptr?

I don't remember. I actually had it in my mind to rename all of these, remove one or two that feel redundant, and document them all. But the patch set was large enough already.


r~



reply via email to

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