[vfio-users] PLX switch report a UR when EP tries to DMA to VM's memory

Wuzongyong (Euler Dept) cordius.wu at huawei.com
Fri Sep 14 01:25:20 UTC 2018


> > Hi,
> >
> > I notice a problem with a PCIe endpoint, which is behind a PLX switch,
> assigned to a VM by VFIO.
> > The problem is switch report a UR error when the EP tries to DMA to a
> memory zone inside VM's address space.
> > Assume that the DMA destination address is between in the VM's ram
> > address space, and unfortunately that address value in host's point of
> view just hit the PLX switch  upstream port BAR0 memory-mapped IO range.
> > In a result, the DMA will failed because SW think this memory request
> > is invalid if the destination address hit its UP's bar.
> > Is this a hardware bug or qemu/seabios doesn't maintain a proper address
> space for VM?
> 
> Upstream switch ports are generally single function devices and therefore
> governed by 6.12.1.3 (PCIe base spec rev 4.0, v1) which indicates an ACS
> capability must not be implemented.  We can therefore read into section
> 6.12.2 on interoperability which indicates the interaction between ACS and
> non-ACS components, including:
> 
>  * When ACS P2P Request Redirect, ACS P2P Completion Redirect, or both
>    are being used, certain components in the PCI Express hierarchy must
>    support ACS Upstream Forwarding (of Upstream redirected Requests).
>    Specifically:
>    ...
>    Between each ACS component where P2P TLP redirection is enabled and
>    its associated Root Port, any intermediate Switches must support ACS
>    Upstream Forwarding. Otherwise, how such Switches handle Upstream
>    redirected TLPs is undefined.
> 
> It's my interpretation therefore that in a configuration where the switch
> downstream ports supports ACS, the switch upstream port must implicitly
> support upstream forwarding, thus I would consider this a hardware issue.
> The alternative is that we need to poke holes in the VM address space to
> account for any possible conflict and assigned device hot-add becomes
> nearly a non-starter.  Thanks,
> 
> Alex

Thanks for your explanation.
Do you know are there other vendors' switches that wouldn't result in this problem?

Thanks,
Zongyong Wu




More information about the vfio-users mailing list