Hi Richard,
Thank you for improvising on the initial patch shared.

On Thu, Aug 13, 2026 at 6:20 AM Richard Henderson <
[email protected]> wrote:

> Hi Yogesh,
>
> The main problem with your patch is where you've placed the change:
> tcg_region_initial_alloc__locked is also used by tcg_region_reset_all,
> used by tb_flush.  Along that path, we really can't have a failure.
> The path on which we can defer allocation is via tcg_register_thread.
>
> The second change I made is to use code_buf_ptr == NULL to signal
> reallocation is required.  In addition, tcg_tb_alloc doesn't need
> to immediately fail: in the interim since thread creation, we may
> well have performed a tb_flush already.
>
> Please have a try vs your hotplug test case.
>
I tried testing these patches on my x86 host running qemu-system-ppc64 by
initially hotpluging 400 vCPUs.
While the response was relatively slower than the initial patch that I had
shared, I also observed the VM is as slow as stuck when I retried
hotplugging upto 1024.
I will share more feedback if I have any.

Regards,
Yogesh


>
> r~
>
>
> Richard Henderson (3):
>   tcg: Return success from tcg_region_alloc__locked
>   tcg: Return success from tcg_region_alloc
>   tcg: Defer tb_flush when initial thread region alloc fails
>
>  tcg/tcg-internal.h |  2 +-
>  tcg/region.c       | 40 ++++++++++++++++++++++++++++++----------
>  tcg/tcg.c          | 24 +++++++++++++++---------
>  3 files changed, 46 insertions(+), 20 deletions(-)
>
> --
> 2.43.0
>
>

Reply via email to