On 8/18/2023 5:50 PM, Xiaoyao Li wrote: > From: Chenyi Qiang <chenyi.qiang@xxxxxxxxx> > > When TD guest invokes getquote tdvmcall, QEMU will register a async qio > task with default context when the qio channel is connected. However, as > there is a blocking action (recvmsg()) in qio_channel_read() and it will > block main thread and make TD guest have no response until the server > returns. > > Set the io channel non-blocking and register the socket fd with the main > loop. Move the read operation into the callback. When the fd is readable, > inovke the callback to handle the quote data. > > Signed-off-by: Chenyi Qiang <chenyi.qiang@xxxxxxxxx> > Signed-off-by: Xiaoyao Li <xiaoyao.li@xxxxxxxxx> > --- > target/i386/kvm/tdx.c | 147 +++++++++++++++++++++++++++--------------- > 1 file changed, 96 insertions(+), 51 deletions(-) > How about squashing this patch with the previous one? I think this patch is somewhat a bug fix for it to resolve the thread blocking issue.