>> If we link a TB with another TB from the different page, then the >> second TB may disappear when the memory mapping changes and the >> subsequent direct jump from the first TB will crash qemu. > > Perhaps the guest OS swap the second TB out of the guest memory, > is it what you mean?
I meant TLB change by e.g. tlb_set_page. If you change single page mapping then all TBs in that page will be gone. This may be the result of e.g. a page swapping, or a task switch. If there's no direct link between TBs then softmmu will be used during the target TB search and softmmu will generate an appropriate guest exception. See cpu_exec -> tb_find_fast -> tb_find_slow -> get_page_addr_code. But if there is a direct link, then softmmu has no chance to do it. -- Thanks. -- Max