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

Re: [RFC PATCH v2 0/3] xl: Allow PCI devices to be passthrough'd via Qemu command line


  • To: "Marek Marczykowski-Górecki" <marmarek@xxxxxxxxxxxxxxxxxxxxxx>
  • From: "Thierry Escande" <thierry.escande@xxxxxxxxxx>
  • Date: Fri, 10 Apr 2026 08:16:22 +0000
  • Authentication-results: eu.smtp.expurgate.cloud; dkim=pass header.s=mte1 header.d=mandrillapp.com header.i="@mandrillapp.com" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"; dkim=pass header.s=mte1 header.d=vates.tech header.i="thierry.escande@xxxxxxxxxx" header.h="From:Subject:Message-Id:To:Cc:References:In-Reply-To:Feedback-ID:Date:MIME-Version:Content-Type:Content-Transfer-Encoding"
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxxx, "Anthony PERARD" <anthony.perard@xxxxxxxxxx>, "Juergen Gross" <jgross@xxxxxxxx>, "Daniel P. Berrangé" <berrange@xxxxxxxxxx>
  • Delivery-date: Fri, 10 Apr 2026 08:16:45 +0000
  • Feedback-id: 30504962:30504962.20260410:md
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>


On 4/10/26 02:55, Marek Marczykowski-Górecki wrote:
> On Thu, Apr 09, 2026 at 04:20:57PM +0000, Thierry Escande wrote:
>> This series adds support for a new 'hotplug' option for PCI devices to be
>> passthrough'd to guests.
>>
>> The current mechanism for device passthrough uses QMP device_add command
>> to hot-plug PCI devices to the guest Qemu instance. This is an issue for
>> guests running on Q35 chipset (preliminary support posted at [1]) since the
>> Q35 PCI root bus does not support hotplug. Devices could be hotplugged to
>> a secondary PCI bus but Xen only support 1 PCI bus for now.
>>
>> The 'hotplug' option allows to control how devices are attached to the
>> guest, either by using the legacy QMP mechanism (this is the default) or by
>> passing it directly to the Qemu command line using xen-pci-passthrough
>> device.
>>
>> Example usage in cfg file:
>>  pci = [ "00:03.0,seize=1,hotplug=0" ]
>>
>> Since Qemu -device option accepts parameters in json format, this
>> patchset adds a new internal function libxl__device_pci_get_qmp_json() that
>> generates the device json object used for both QMP hotplug and command line
>> passing.
>> Also, the function libxl_pci_assignable() is made available from libxl.h
>> for access in libxl_dm.c. I don't know if it's ok to make it public or if
>> it should stay private. Maybe it should be renamed as
>> libxl_device_pci_assignable() to match the other PCI device APIs.
>>
>> This has been successfully tested on Xen 4.22-dev and Qemu 10.0 running
>> Debian VMs in both Bios and UEFI mode with a passthrough'd nvme disk.
>> Disabling the hotplug mechanism might be made mandatory for Q35 machines
>> later, once Q35 support is merged upstream.
>>
>> [1] 
>> https://lore.kernel.org/xen-devel/20260313163455.790692-1-thierry.escande@xxxxxxxxxx/
>
> I don't see relevant device option added to the QEMU cmdline:
> https://gitlab.com/xen-project/people/marmarek/xen/-/jobs/13860278916
>
My bad. The code that adds the -device option is not in the correct code
block. (bad copy/paste at some point I guess...). v3 on its way.

Regards,
Thierry


--
Thierry Escande | Vates XCP-ng Developer

XCP-ng & Xen Orchestra - Vates solutions

web: https://vates.tech





 


Rackspace

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