[vfio-users] Z170X IOMMU Groups
Nick Sarnie
commendsarnex at gmail.com
Fri Sep 23 04:39:49 UTC 2016
Wei,
I submitted a ticket here:
http://www.gigabyte.us/support-downloads/support-downloads.aspx
Thanks,
Nick
On Fri, Sep 23, 2016 at 12:06 AM, Brett Peckinpaugh <bp10 at erylflynn.com>
wrote:
> Same here I have a ud5 that I would like a bios that does not need the ACS
> patch.
>
> On September 22, 2016 8:59:57 PM PDT, Wei Xu <wexu at redhat.com> wrote:
>
>>
>>
>> On 2016年09月23日 02:47, Nick Sarnie wrote:
>>
>>> Hi again,
>>>
>>> Very much to my surprise, Gigabyte replied and sent me a fixed BIOS. The
>>> new IOMMU groups (with ACS override patch kernel commandline removed for
>>> this boot), as well as my lspci information are below. I see four
>>> messages the following messages in dmesg now:
>>>
>>> [ 0.523892] pci 0000:00:1c.0: Intel SPT PCH root port ACS workaround
>>> enabled
>>> [ 0.524031] pci 0000:00:1c.4: Intel SPT PCH root port ACS workaround
>>> enabled
>>> [ 0.524159] pci 0000:00:1c.5: Intel SPT PCH root port ACS workaround
>>> enabled
>>> [ 0.524292] pci 0000:00:1d.0: Intel SPT PCH root port ACS workaround
>>> enabled
>>>
>>>
>>> IOMMU Groups: http://pastebin.com/raw/0dcHk8Xk
>>>
>>> lspci: http://pastebin.com/raw/1zAZuPBM
>>>
>>
>> That's cool, how did you report your issue to Gigabyte? I'd like to have
>> a try as well.
>>
>> Wei
>>
>>
>>> Alex, please let me know if they missed anything else, so I can report
>>> it to them.
>>>
>>> Thanks,
>>> Nick
>>>
>>> On Sun, Sep 18, 2016 at 4:03 PM, Nick Sarnie <commendsarnex at gmail.com
>>> <mailto:commendsarnex at gmail.com>> wrote:
>>>
>>> Hi again,
>>>
>>> Thanks a lot for investigating. I've reported the issue to the
>>> manufacturer.
>>>
>>>
>>> Thanks,
>>> sarnex
>>>
>>> On Sat, Sep 17, 2016 at 5:35 PM, Alex Williamson
>>> <alex.l.williamson at gmail.com <mailto:alex.l.williamson at gmail.com>>
>>> wrote:
>>>
>>> On Sat, Sep
>>> 17, 2016 at 12:29 PM, Nick Sarnie
>>> <commendsarnex at gmail.com <mailto:commendsarnex at gmail.com>> wrote:
>>>
>>> Hi Alex,
>>>
>>> The output is here: http://pastebin.com/raw/qjnpuaVr
>>> <http://pastebin.com/raw/qjnpuaVr>
>>>
>>>
>>> Ok, you need to go complain to your motherboard manufacturer,
>>> they're the ones hiding the ACS capability. PCIe capabilities
>>> always start at 0x100, the dword there is:
>>>
>>> 100: 01 00 01 22 = 0x22010001
>>>
>>> Breaking that down, the capability at 0x100 is ID 0x0001 (AER),
>>> version 0x1, and the next capability is at 0x220. So we do the
>>> same there:
>>>
>>> 220: 19 00 01 00 = 0x00010019
>>>
>>> Capability ID 0x0019 (Secondary PCIe), version 0x1, next
>>>
>>> capability 0x0, terminating the capability list.
>>>
>>> Per Intel documentation for the chipset
>>> (http://www.intel.com/content/www/us/en/chipsets/100-series-chipset-datasheet-vol-2.html
>>> <http://www.intel.com/content/www/us/en/chipsets/100-series-chipset-datasheet-vol-2.html>),
>>> the ACS capability and control registers live at 0x144 and 0x148
>>> respectively and we can see that you do have data here matching
>>> the default value of the capability register:
>>>
>>> 140: 00 00 00 00 0f 00 00 00 00 00 00 00 00 00 00 00
>>>
>>> ie. default value of 0x144 is 0xf. It appears that this BIOS
>>> vendor didn't connect the capability into the chain or fill in
>>> the
>>> capability header. The registers to do this are RW/O, ie.
>>> Read-Write-Once. IOW, the registers can only be written once,
>>> which is intended to be used by the BIOS. The capability bits
>>> themselves are RW/O, allowing vendors to expose different sets
>>> of ACS capabilities. Given that this vendor has not exposed the
>>> capability, we have no basis to believe that the default value
>>> of the register represents the real capabilities of the system
>>> and therefore we cannot assume we're able to control ACS. File
>>> a bug with the vendor or look for a BIOS update where they may
>>> have already fixed this.
>>>
>>> Also, is there any way we could move the USB controller into
>>> its own group, or remove the Ethernet and SATA controller
>>> into a seperate group? Ideally, I could pass the USB
>>> Controller in group 7 without
>>> the ACS patch.
>>>
>>>
>>> That's not how IOMMU groups works. See
>>> http://vfio.blogspot.com/2014/08/iommu-groups-inside-and-out.html <http://vfio.blogspot.com/2014/08/iommu-groups-inside-and-out.html>
>>> We aren't creating these groups arbitrarily, we base them on
>>> the information provided to use by the IOMMU driver and PCI
>>> topology features, including ACS. If we cannot determine that
>>> there is isolation between components, we must assume that they
>>> are not isolated. Your choices are to run an unsupported (and
>>> unsupportable) configuration using the ACS override patch, get
>>> your hardware vendor to fix their platform, or upgrade to better
>>> hardware with better isolation
>>> characteristics.
>>>
>>>
>>>
>>>
>>>
>>> ------------------------------
>>>
>>> vfio-users mailing list
>>> vfio-users at redhat.com
>>> https://www.redhat.com/mailman/listinfo/vfio-users
>>
>>
>>
>> ------------------------------
>>
>> vfio-users mailing list
>> vfio-users at redhat.com
>> https://www.redhat.com/mailman/listinfo/vfio-users
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/vfio-users/attachments/20160923/cd8ff61d/attachment.htm>
More information about the vfio-users
mailing list