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

Re: [Xen-devel] [XEN PATCH for-4.13 v2 0/6] Fix: libxl workaround, multiple connection to single QMP socket



On 08/11/2019 07:06, Jürgen Groß wrote:
> On 30.10.19 19:06, Anthony PERARD wrote:
>> Patch series available in this git branch:
>> https://xenbits.xen.org/git-http/people/aperard/xen-unstable.git 
>> br.fix-ev_qmp-multi-connect-v2
>>
>> Hi,
>>
>> QEMU's QMP socket doesn't allow multiple concurrent connection. Also, it
>> listen() on the socket with a `backlog' of only 1. On Linux at least, once 
>> that
>> backlog is filled connect() will return EAGAIN if the socket fd is
>> non-blocking. libxl may attempt many concurrent connect() attempt if for
>> example a guest is started with several PCI passthrough devices, and a
>> connect() failure lead to a failure to start the guest.
>>
>> Since we can't change the listen()'s `backlog' that QEMU use, we need other
>> ways to workaround the issue. This patch series introduce a lock to acquire
>> before attempting to connect() to the QMP socket. Since the lock might be 
>> held
>> for to long, the series also introduce a way to cancel the acquisition of the
>> lock, this means killing the process that tries to get the lock.
>>
>> See thread[1] for discussed alternative.
>> [1] 
>> https://lists.xenproject.org/archives/html/xen-devel/2019-10/msg01815.html
>>
>> Cheers,
>>
>> Anthony PERARD (6):
>>    libxl: Introduce libxl__ev_child_kill_deregister
>>    libxl: Move libxl__ev_devlock declaration
>>    libxl: Rename ev_devlock to ev_slowlock
>>    libxl: Introduce libxl__ev_slowlock_dispose
>>    libxl: libxl__ev_qmp_send now takes an egc
>>    libxl_qmp: Have a lock for QMP socket access
>>
>>   tools/libxl/libxl_disk.c        |  16 ++--
>>   tools/libxl/libxl_dm.c          |   8 +-
>>   tools/libxl/libxl_dom_save.c    |   2 +-
>>   tools/libxl/libxl_dom_suspend.c |   2 +-
>>   tools/libxl/libxl_domain.c      |  18 ++---
>>   tools/libxl/libxl_event.c       |   6 +-
>>   tools/libxl/libxl_fork.c        |  48 ++++++++++++
>>   tools/libxl/libxl_internal.c    |  41 +++++++---
>>   tools/libxl/libxl_internal.h    | 130 +++++++++++++++++++-------------
>>   tools/libxl/libxl_pci.c         |   8 +-
>>   tools/libxl/libxl_qmp.c         | 119 ++++++++++++++++++++++++-----
>>   tools/libxl/libxl_usb.c         |  28 ++++---
>>   12 files changed, 301 insertions(+), 125 deletions(-)
>>
> 
> For the series:
> 
> Release-acked-by: Juergen Gross <jgross@xxxxxxxx>
> 
> 
> Juergen

Hi Juergen,

Since a lot more recent patches have been committed, but these don't seem to.
I was wondering if these fell through the cracks.

--
Sander



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.