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

Re: [Xen-devel] [PATCH 0/4] x86/IOMMU: multi-vector MSI prerequisites

On 4/10/2013 9:46 AM, Jan Beulich wrote:
On 10.04.13 at 16:38, Suravee Suthikulanit <suravee.suthikulpanit@xxxxxxx>
On 4/10/2013 8:55 AM, Jan Beulich wrote:

did you have a chance to retry with the v2 patch indicated above,
or to gain understanding on the points mentioned above. I'm
afraid I won't be able to make any progress (or propose any
fixes) without your help here, and we'd really like to have multi-
vector MSI support ready for 4.3...

Sorry I didn't see the patch.  Let me try that and get back to you today.
And irrespective of the patch (which fixes another issue, and
I suppose that's not connected to the problem you saw), did
you find an explanation why the IOMMU lookup in the MSI
message read path would fail, when the same lookup in the MSI
message write path obviously succeeds?



- From drivers/passthrough/amd/iommu_init.c: enable_iommu(), the enabling code tries to set MSI affinity for IOMMU. - From xen/arch/x86/msi.c: set_msi_affinity(), the code tries to "read_msi_msg()" which eventually calls "amd_iommu_read_msi_from_ire()". - Please note that the "amd_iommu_read_msi_from_ire()" was originally empty prior the patch. - From the patch, the new code try to call "get_intremap_entry()", which is the function that was asserting due to table is NULL.

Here, the MSI read message was sent to read IOMMU registers. Since the message is targeting for IOMMU itself (bdf 0x2 in this case), it should not be remapped. That is why I believe the interrupt remapping table is empty.

Let me know what you think.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.