* [PATCH] translate-all: Remove tb_alloc
@ 2019-10-23 16:46 Richard Henderson
2019-10-23 17:55 ` Philippe Mathieu-Daudé
2019-10-24 9:59 ` Clement Deschamps
0 siblings, 2 replies; 3+ messages in thread
From: Richard Henderson @ 2019-10-23 16:46 UTC (permalink / raw)
To: qemu-devel
Since 2ac01d6dafab, this function does only two things: assert a
lock is held, and call tcg_tb_alloc. It is used exactly once,
and its user has already done the assert.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
I noticed that this function was essentially a stub while
reviewing Clement's tb->orig_tb fix.
Note that the added newline in tb_gen_code both adds the
missing break after the variable declaration block and
also happens to highlight the assert mentioned above. ;-)
r~
---
accel/tcg/translate-all.c | 20 ++------------------
1 file changed, 2 insertions(+), 18 deletions(-)
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index f9b7ba159d..ae063b53f9 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -1156,23 +1156,6 @@ void tcg_exec_init(unsigned long tb_size)
#endif
}
-/*
- * Allocate a new translation block. Flush the translation buffer if
- * too many translation blocks or too much generated code.
- */
-static TranslationBlock *tb_alloc(target_ulong pc)
-{
- TranslationBlock *tb;
-
- assert_memory_lock();
-
- tb = tcg_tb_alloc(tcg_ctx);
- if (unlikely(tb == NULL)) {
- return NULL;
- }
- return tb;
-}
-
/* call with @p->lock held */
static inline void invalidate_page_bitmap(PageDesc *p)
{
@@ -1681,6 +1664,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
TCGProfile *prof = &tcg_ctx->prof;
int64_t ti;
#endif
+
assert_memory_lock();
phys_pc = get_page_addr_code(env, pc);
@@ -1706,7 +1690,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
}
buffer_overflow:
- tb = tb_alloc(pc);
+ tb = tcg_tb_alloc(tcg_ctx);
if (unlikely(!tb)) {
/* flush must be done */
tb_flush(cpu);
--
2.17.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] translate-all: Remove tb_alloc
2019-10-23 16:46 [PATCH] translate-all: Remove tb_alloc Richard Henderson
@ 2019-10-23 17:55 ` Philippe Mathieu-Daudé
2019-10-24 9:59 ` Clement Deschamps
1 sibling, 0 replies; 3+ messages in thread
From: Philippe Mathieu-Daudé @ 2019-10-23 17:55 UTC (permalink / raw)
To: Richard Henderson, qemu-devel
On 10/23/19 6:46 PM, Richard Henderson wrote:
> Since 2ac01d6dafab, this function does only two things: assert a
> lock is held, and call tcg_tb_alloc. It is used exactly once,
> and its user has already done the assert.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> ---
>
> I noticed that this function was essentially a stub while
> reviewing Clement's tb->orig_tb fix.
>
> Note that the added newline in tb_gen_code both adds the
> missing break after the variable declaration block and
> also happens to highlight the assert mentioned above. ;-)
>
>
> r~
>
> ---
> accel/tcg/translate-all.c | 20 ++------------------
> 1 file changed, 2 insertions(+), 18 deletions(-)
>
> diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
> index f9b7ba159d..ae063b53f9 100644
> --- a/accel/tcg/translate-all.c
> +++ b/accel/tcg/translate-all.c
> @@ -1156,23 +1156,6 @@ void tcg_exec_init(unsigned long tb_size)
> #endif
> }
>
> -/*
> - * Allocate a new translation block. Flush the translation buffer if
> - * too many translation blocks or too much generated code.
> - */
> -static TranslationBlock *tb_alloc(target_ulong pc)
> -{
> - TranslationBlock *tb;
> -
> - assert_memory_lock();
> -
> - tb = tcg_tb_alloc(tcg_ctx);
> - if (unlikely(tb == NULL)) {
> - return NULL;
> - }
> - return tb;
> -}
> -
> /* call with @p->lock held */
> static inline void invalidate_page_bitmap(PageDesc *p)
> {
> @@ -1681,6 +1664,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
> TCGProfile *prof = &tcg_ctx->prof;
> int64_t ti;
> #endif
> +
> assert_memory_lock();
>
> phys_pc = get_page_addr_code(env, pc);
> @@ -1706,7 +1690,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
> }
>
> buffer_overflow:
> - tb = tb_alloc(pc);
> + tb = tcg_tb_alloc(tcg_ctx);
> if (unlikely(!tb)) {
> /* flush must be done */
> tb_flush(cpu);
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] translate-all: Remove tb_alloc
2019-10-23 16:46 [PATCH] translate-all: Remove tb_alloc Richard Henderson
2019-10-23 17:55 ` Philippe Mathieu-Daudé
@ 2019-10-24 9:59 ` Clement Deschamps
1 sibling, 0 replies; 3+ messages in thread
From: Clement Deschamps @ 2019-10-24 9:59 UTC (permalink / raw)
To: Richard Henderson, qemu-devel
On 10/23/19 6:46 PM, Richard Henderson wrote:
> Since 2ac01d6dafab, this function does only two things: assert a
> lock is held, and call tcg_tb_alloc. It is used exactly once,
> and its user has already done the assert.
>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> ---
Reviewed-by: Clement Deschamps <clement.deschamps@greensocs.com>
>
> I noticed that this function was essentially a stub while
> reviewing Clement's tb->orig_tb fix.
>
> Note that the added newline in tb_gen_code both adds the
> missing break after the variable declaration block and
> also happens to highlight the assert mentioned above. ;-)
>
>
> r~
>
> ---
> accel/tcg/translate-all.c | 20 ++------------------
> 1 file changed, 2 insertions(+), 18 deletions(-)
>
> diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
> index f9b7ba159d..ae063b53f9 100644
> --- a/accel/tcg/translate-all.c
> +++ b/accel/tcg/translate-all.c
> @@ -1156,23 +1156,6 @@ void tcg_exec_init(unsigned long tb_size)
> #endif
> }
>
> -/*
> - * Allocate a new translation block. Flush the translation buffer if
> - * too many translation blocks or too much generated code.
> - */
> -static TranslationBlock *tb_alloc(target_ulong pc)
> -{
> - TranslationBlock *tb;
> -
> - assert_memory_lock();
> -
> - tb = tcg_tb_alloc(tcg_ctx);
> - if (unlikely(tb == NULL)) {
> - return NULL;
> - }
> - return tb;
> -}
> -
> /* call with @p->lock held */
> static inline void invalidate_page_bitmap(PageDesc *p)
> {
> @@ -1681,6 +1664,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
> TCGProfile *prof = &tcg_ctx->prof;
> int64_t ti;
> #endif
> +
> assert_memory_lock();
>
> phys_pc = get_page_addr_code(env, pc);
> @@ -1706,7 +1690,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
> }
>
> buffer_overflow:
> - tb = tb_alloc(pc);
> + tb = tcg_tb_alloc(tcg_ctx);
> if (unlikely(!tb)) {
> /* flush must be done */
> tb_flush(cpu);
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-10-24 10:26 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-10-23 16:46 [PATCH] translate-all: Remove tb_alloc Richard Henderson
2019-10-23 17:55 ` Philippe Mathieu-Daudé
2019-10-24 9:59 ` Clement Deschamps
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.