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 > >
