On 10/1/21 12:35 PM, Stefan Hajnoczi wrote:
QEMU's TCG threads execute translated code. There are events that require interrupting these threads. Today a check is performed at the start of every translated block. Most of the time the check is false and it's a waste of CPU.
User interrupts can eliminate the need for checks by interrupting TCG threads when events occur.
We used to use interrupts, and stopped because we need to wait until the guest is in a stable state. The guest is always in a stable state at the beginning of each TB.
See 378df4b2375.
r~