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