|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] XSA-59
Liu, Jinsong wrote:
> Jan,
>
> For XSA-59, I list some questions (coming from your patches and
> emails) and consult Intel inside from different groups.
>
> Below are the questions and replies (Q2 still not got answer):
> Q1: is the PCI IDs list (0x3400 ...) of root port a complete list?
> Jan got it from a disclosure that Intel made to him meanwhile well
> over-two-years-ago --> Any update about the list? [Asit]: There is
> not update to this list. This was provided in 2011 and included the
> Ids prior to being fixed.
>
>
> Q2: is the PCI IDs list (0x100 ...) of host bridge a complete list?
> it comes from Yuriy but Jan need double confirm 'a complete list'.
>
>
> Q3: the "... without AER capability?" warning triggers on Jan's
> systems --> is it an issue? or, how to handle it properly? [Asit]
> BIOS can have option to not expose AER capability. It will be good to
> check the BIOS setup options. The error reporting should be masked so
> not action needed. [Yuriy] I expanded the answer to Q3 vs. what's in
> the attached email after we found out that when root port is
> operating in DMI mode, AER ext. capability is not in the chain of
> ext. capability headers. Please use this one instead.
> Answer to Q3:
> On Romley system (DID 0x3c00 ... 0x3c0b), for Host bridge
> BDF=00:00.0, when the root port is operating as DMI, AER extended
> capability is defined in VSHDR (Vendor Specific Header) configuration
> register (offset 0x148). It should have value 0x0004.
> After pci_find_ext_capability, if it didn't find AER capability, for
> BDF=00:00.0 the patch would need to check if VSHDR register has value
> 0x0004 in bits [15:0].
> Below I've provided example fix for this case:
> case 0x3c00 ... 0x3c0b:
> pos = pci_find_ext_capability(seg, bus, pdev->devfn,
> PCI_EXT_CAP_ID_ERR);
> if ( !pos )
> {
> if ( 0 == bus && 0 == pdev->devfn )
> {
> dmi_aer_cap_id = pci_conf_read16(seg, 0, 0, 0, 0x148)
> // DMI Specific AER Capability ID if ( 0x0004 !=
> dmi_aer_cap_id ) {
> printk(XENLOG_WARNING "%04x:%02x:%02x.%u without
> AER capability?\n", seg, bus, dev, func); break;
> }
> }
> else
> {
> printk(XENLOG_WARNING "%04x:%02x:%02x.%u without AER
> capability?\n", seg, bus, dev, func); break;
> }
> }
>
>
> Q4: the patches have no way of handling future chipsets (yet we also
> have no indication that future chipsets would not exhibit the same
> bad behavior) --> thoughts? [Jinsong] IMHO handle future chipset case
> by case.
>
>
> Q5: please clarify whether masking the reporting of unsupported
> requests is really an appropriate thing to do: After all, this masks
> not only maliciously created instances of them, but also any ones
> possibly resulting from malfunctioning hardware. [Yuriy] Most of the
> client systems don't have SERR enabled (not recommended
> configuration). For server systems, I don't know the answer to this
> question as our team didn't work on the issue and workaround for it
> when it was defined. You'd need to ask Rajesh.
Sorry, cc Rajesh.
Thanks,
Jinsong
>
>
> BTW, some other infromation from Yuriy:
> VT-d-mask-UR-host-bridge.patch:
> 1. The workaround is only applicable to the host bridge device
> 00:00.0 (DMIBAR does not exist for other devices). The patch is
> written generically for any PCIe device/bridge.
> 2. The workaround is only needed when SERR is enabled. As there will
> be only a fraction of client systems with SERR enabled, it might
> be worthwhile to only apply it when SERRE is 1. val =
> pci_conf_read16(seg, bus, dev, func, PCI_COMMAND); if ( val &
> PCI_COMMAND_SERR ) apply this workaround
>
>
> Thank you all,
> Jinsong
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |