Re: [PATCH] uio_pci_generic does not export memory resources

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

 



Alex Williamson wrote:
> On Fri, 2012-06-08 at 18:16 +0200, Andreas Hartmann wrote:
[...]
>> Besides the problem with AMD IOMMU, which requires to unbind a whole
>> group of devices in some cases (PCI passthrough - not PCIe), it's really
>> cool! And it's usable now!
> 
> If you're feeling adventurous (and know that this may not make it
> upstream), you can do something like this:

Hmm, even without this patch, it's not necessary to bind all devices to
pci-stub. Just to remember:

-[0000:00]-+-14.0  Advanced Micro Devices [AMD] nee ATI SBx00 SMBus Controller                                                                                                     
           +-14.1  Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 IDE Controller                                                                                           
           +-14.2  Advanced Micro Devices [AMD] nee ATI SBx00 Azalia (Intel HDA)                                                                                                   
           +-14.3  Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 LPC host controller                                                                                      
           +-14.4-[06]--                                                                                                                                                           
           \-14.5  Advanced Micro Devices [AMD] nee ATI SB7x0/SB8x0/SB9x0 USB OHCI2 Controller

Device 06:07.0 should be passed through.

The devices 14.0, 14.3 and 14.4 need not to be bound to pci-stub - the
VM starts (and seems to work fine) anyway. Maybe because there isn't
any driver anyway for these devices?

The USB device seems to be an internal device only - all of my external
USB jacks are working fine.

The only thing I'm missing is the sound device.

> diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
> index ab0dba0..5c26804 100644
> --- a/drivers/pci/quirks.c
> +++ b/drivers/pci/quirks.c
> @@ -3161,11 +3161,22 @@ struct pci_dev *pci_get_dma_source(struct pci_dev *dev)
>         return pci_dev_get(dev);
>  }
>  
> +static int pci_func_supports_acs(struct pci_dev *dev, u16 acs_flags)
> +{
> +       return 1;
> +}
> +
>  static const struct pci_dev_acs_enabled {
>         u16 vendor;
>         u16 device;
>         int (*acs_enabled)(struct pci_dev *dev, u16 acs_flags);
>  } pci_dev_acs_enabled[] = {
> +       { 0x1002, 0x4385, pci_func_supports_acs },
> +       { 0x1002, 0x439c, pci_func_supports_acs },
> +       { 0x1002, 0x4383, pci_func_supports_acs },
> +       { 0x1002, 0x439d, pci_func_supports_acs },
> +       { 0x1002, 0x4384, pci_func_supports_acs },
> +       { 0x1002, 0x4399, pci_func_supports_acs },
>         { 0 }
>  };

What's the risk of this patch? Machine crash? Data loss for an active
file in an application? Complete filesystem damage? The latter would be
worse.

> Hmm, I wonder if we should make a kernel boot parameter that allows
> whitelisting some devices.  I think it would have to taint the kernel
> but there's probably sufficient interest for usability vs
> supportability.

Good idea. I would print an additional big fat warning of dataloss /
filesystem damage / crash if this could be the case.


Thanks,
regards,
Andreas
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux