Re: splitting a bt wifi combo between two vms

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

 



Greetings Michal,

> Sent: Monday, August 26, 2024 at 12:42 PM
> From: "Michal Prívozník" <mprivozn@xxxxxxxxxx>
> To: "daggs" <daggs@xxxxxxx>, users@xxxxxxxxxxxxxxxxx
> Subject: Re: splitting a bt wifi combo between two vms
>
> On 8/26/24 10:37, daggs via Users wrote:
> > Greetings,
> > 
> > I have the following combo device:
> > dagg@NCC-5001D ~ $ lsusb -d8087:0029
> > Bus 001 Device 002: ID 8087:0029 Intel Corp. AX200 Bluetooth
> > dagg@NCC-5001D ~ $ lspci -vv -s 03:00.0
> > 03:00.0 Network controller: Intel Corporation Wi-Fi 6 AX200 (rev 1a)
> >         Subsystem: Intel Corporation Wi-Fi 6 AX200NGW
> >         Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
> >         Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> >         Interrupt: pin A routed to IRQ 34
> >         IOMMU group: 13
> >         Region 0: Memory at fc600000 (64-bit, non-prefetchable) [size=16K]
> >         Capabilities: <access denied>
> >         Kernel modules: iwlwifi
> > 
> > I want to pass each of them to a different vm.
> > should I expect problems?
> 
> If you assign a PCI device to a VM then the host has to release it.
> You're not showing the full PCI device config (I assume bluetooth is
> another PCI function), but I'd assume it's all or nothing. I don't think
> I've seen a PCI device that allows detaching a single PCI function
> (apart from SRIO-V, which are specifically designed to do this). IOW, if
> you assign the 03:00.0 PCI device to a VM then the other function
> (bluetooth) has to be detached too at which point it can not be assigned
> to another VM.
> 
> This can be verified via virsh:
> 
> virsh nodedev-dumpxml pci_0000_03_00_0
> 
> in the printed XML you'll find <iommuGroup/> element, e.g.:
> 
>     <iommuGroup number='14'>
>       <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
>     </iommuGroup>
> 
> If there's just one <address/> child element, then the device is in its
> own iommu group and can be detached alone. If there are multiple child
> elements, e.g.:
> 
>     <iommuGroup number='16'>
>       <address domain='0x0000' bus='0x07' slot='0x01' function='0x0'/>
>       <address domain='0x0000' bus='0x07' slot='0x04' function='0x0'/>
>       <address domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
>       <address domain='0x0000' bus='0x07' slot='0x00' function='0x0'/>
>       <address domain='0x0000' bus='0x06' slot='0x00' function='0x0'/>
>       <address domain='0x0000' bus='0x04' slot='0x01' function='0x0'/>
>     </iommuGroup>
> 
> then all devices within the iommu group have to be detached from the
> host before giving any device to a VM.
> 
> Michal
> 
> 

that is the thing, from what I can see, this combo device has a pci device which is the wifi, see:
$ tail /sys/bus/pci/devices/0000\:03\:00.0/{device,vendor}
==> /sys/bus/pci/devices/0000:03:00.0/device <==
0x2723

==> /sys/bus/pci/devices/0000:03:00.0/vendor <==
0x8086

dagg@NCC-5001D ~ $ ll /sys/bus/pci/devices/0000\:03\:00.0/iommu_group
lrwxrwxrwx 1 root root 0 Aug 26 09:44 /sys/bus/pci/devices/0000:03:00.0/iommu_group -> ../../../../../../kernel/iommu_groups/13

while the bt is a usb device, see:
$ tail /sys/bus/usb/devices/1-5/id*
==> /sys/bus/usb/devices/1-5/idProduct <==
0029

==> /sys/bus/usb/devices/1-5/idVendor <==
8087

both of them are AX200

Dagg




[Index of Archives]     [Virt Tools]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux