qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] migration/multifd: fix hangup with TLS-Multifd due to blocki


From: Daniel P . Berrangé
Subject: Re: [PATCH] migration/multifd: fix hangup with TLS-Multifd due to blocking handshake
Date: Tue, 10 Nov 2020 13:19:12 +0000
User-agent: Mutt/1.14.6 (2020-07-11)

On Fri, Nov 06, 2020 at 02:24:53PM +0800, Chuan Zheng wrote:
> The qemu main loop could hang up forever when we enable TLS+Multifd.
> The Src multifd_send_0 invokes tls handshake, it sends hello to sever
> and wait response.
> However, the Dst main qemu loop has been waiting recvmsg() for multifd_recv_1.
> Both of Src and Dst main qemu loop are blocking and waiting for reponse which
> results in hanging up forever.
> 
> Src: (multifd_send_0)                                              Dst: 
> (multifd_recv_1)
> multifd_channel_connect                                            
> migration_channel_process_incoming
>   multifd_tls_channel_connect                                        
> migration_tls_channel_process_incoming
>     multifd_tls_channel_connect                                        
> qio_channel_tls_handshake_task
>        qio_channel_tls_handshake                                         
> gnutls_handshake
>           qio_channel_tls_handshake_task                                      
>  ...
>             qcrypto_tls_session_handshake                                     
>  ...
>               gnutls_handshake                                                
>  ...
>                    ...                                                        
>  ...
>                 recvmsg (Blocking I/O waiting for response)                
> recvmsg (Blocking I/O waiting for response)
> 
> Fix this by offloadinig handshake work to a background thread.
> 
> Reported-by: Yan Jin <jinyan12@huawei.com>
> Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
> Signed-off-by: Chuan Zheng <zhengchuan@huawei.com>
> ---
>  migration/multifd.c | 23 +++++++++++++++++------
>  1 file changed, 17 insertions(+), 6 deletions(-)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>


Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|




reply via email to

[Prev in Thread] Current Thread [Next in Thread]