[libvirt] PCI devices passthough to LXC containers using libvirt

Devendra K. Modium dmodium at isi.edu
Thu Jul 28 13:32:06 UTC 2011


Hi

Thanks for the reply.

I think the links that you provided show 
how to deal with pci devices in case the hypervisor is kvm.
Please correct me if I am wrong.

But I am using LXC containers.I have skimmed through
the libvirt lxc driver code and found no functionality of
allowing specified devices into a container exists
other than currently where only hard coded devices are allowed
which can be seen in the file lxc_controller.c

  struct cgroup_device_policy devices[] = {
        {'c', LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_NULL},
        {'c', LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_ZERO},
        {'c', LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_FULL},
        {'c', LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_RANDOM},
        {'c', LXC_DEV_MAJ_MEMORY, LXC_DEV_MIN_URANDOM},
        {'c', LXC_DEV_MAJ_TTY, LXC_DEV_MIN_TTY},
        {'c', LXC_DEV_MAJ_TTY, LXC_DEV_MIN_PTMX},
        {0,   0, 0}};


Please confirm this or let me know if there is any other interface libvirt_lxc 
provides to allow specific pci/other devices into container.

Thanks in advance

Regards
Devendra



----- Original Message -----
From: "Alex Jia" <ajia at redhat.com>
To: "Devendra K. Modium" <dmodium at isi.edu>
Sent: Thursday, July 28, 2011 3:22:36 AM
Subject: Re: [libvirt] PCI devices passthough to LXC containers using libvirt

On 07/28/2011 05:13 AM, Devendra K. Modium wrote:
> Hi All
>
> Please let me know if anyone have given access to
> PCI devices for a LXC container.
>
> I have tried getting the xml from
> "virsh nodedev-dumpxml pci_device" and
> added to the libvirt xml file as shown below
>
> <device>
>    <name>pci_0000_03_00_0</name>
>    <parent>pci_0000_00_03_0</parent>
>    <driver>
>      <name>nvidia</name>
>    </driver>
>    <capability type='pci'>
>      <domain>0</domain>
>      <bus>3</bus>
>      <slot>0</slot>
>      <function>0</function>
>      <product id='0x06fd' />
>      <vendor id='0x10de'>nVidia Corporation</vendor>
>    </capability>
> </device>
You shouldn't directly add the above xml to guest xml configuration, here is a usage,
it should be helpful for you:

http://libvirt.org/formatdomain.html#elementsUSB
http://fedoraproject.org/wiki/Category:Virtualization_KVM_PCI_Device_Assignment_Test_Cases

Good Luck!
Alex

>
> But it didn't work. I see the logs and it says
> couldn't get physical and virtual functions of these devices with error
>
> get_physical_function_linux:323 : Attempting to get SR IOV physical function for device with sysfs path '/sys/devices/pci0000:00/0000:00:00.0'
> 16:48:34.033: 13802: debug : get_sriov_function:270 : Attempting to resolve device path from device link '/sys/devices/pci0000:00/0000:00:00.0/physfn'
> 16:48:34.033: 13802: debug : get_sriov_function:274 : SR IOV function link '/sys/devices/pci0000:00/0000:00:00.0/physfn' does not exist
> 16:48:34.033: 13802: debug : get_virtual_functions_linux:348 : Attempting to get SR IOV virtual functions for devicewith sysfs path '/sys/devices/pci0000:00/0000:00:00.0'
>
>
> If anyone got some guidelines how to debug, please let me know.
>
>
> Thanks in advance
>
> Regards
> Devendra
>
>
>
>
>
>
>
> --
> libvir-list mailing list
> libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list




More information about the libvir-list mailing list