Re: [RFC PATCH v3 3/5] PCI: Add host bridge attribute to indicate filtering of MSIs is supported
From: Yongji Xie <hidden>
Date: 2016-01-20 09:42:37
Also in:
kvm, linuxppc-dev, lkml
From: Yongji Xie <hidden>
Date: 2016-01-20 09:42:37
Also in:
kvm, linuxppc-dev, lkml
On 2016/1/16 1:24, David Laight wrote:
From: Yongji Xiequoted
Sent: 15 January 2016 07:06 MSI-X tables are not allowed to be mmapped in vfio-pci driver in case that user get to touch this directly. This will cause some performance issues when when PCI adapters have critical registers in the same page as the MSI-X table.... If the driver wants to generate an incorrect MSI-X interrupt it can do so by requesting the device do a normal memory transfer to the target address area that raises MSI-X interrupts.
IOMMUs supporting interrupt remapping can prevent this case.
So disabling writes to the MSI-X table (and pending bit array) areas only raises the bar very slightly. A device may also give the driver write access to the MSI-X table through other addresses. This seems to make disallowing the mapping of the MSI-X table rather pointless.
If we allow the mapping of the MSI-X table, it seems the guest kernels of some architectures can write invalid data to MSI-X table when device drivers initialize MSI-X interrupts. Regards, Yongji Xie
I've also dumped out the MSI-X table (during development) to check that the values are being written there correctly. David