On Wed, Jul 03, 2019 at 01:56:13PM +0800, Chao Gao wrote: > To remove a device from a domain, a qmp command is sent to qemu. But it is > handled by qemu asychronously. Even the qmp command is claimed to be done, > the actual handling in qemu side may happen later. > This behavior brings two questions: > 1. Attaching a device back to a domain right after detaching the device from > that domain would fail with error: > > libxl: error: libxl_qmp.c:341:qmp_handle_error_response: Domain 1:received an > error message from QMP server: Duplicate ID 'pci-pt-60_00.0' for device > > 2. Accesses to PCI configuration space in Qemu may overlap with later device > reset issued by 'xl' or by pciback. > > In order to avoid mentioned questions, wait for the completion of device > removal by querying all pci devices using qmp command and ensuring the target > device isn't listed. Only retry 5 times to avoid 'xl' potentially being > blocked > by qemu. > > Signed-off-by: Chao Gao <chao....@intel.com> > --- > Changes in v2: > - Break out early if we found an error during querying pci devices. > - Print a message to warn admin that device removal may not be done > in device model's side.
Reviewed-by: Anthony PERARD <anthony.per...@citrix.com> Thanks, -- Anthony PERARD _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel