]> git.baikalelectronics.ru Git - kernel.git/commit
PCI: vmd: Disable MSI-X remapping when possible
authorJon Derrick <jonathan.derrick@intel.com>
Wed, 10 Feb 2021 16:13:15 +0000 (09:13 -0700)
committerLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Mon, 22 Mar 2021 14:08:20 +0000 (14:08 +0000)
commit0b0e5586aad1833de300a8a35dcc56655fd4e3e6
tree81a31ccd2216697575bc5f8383710d02bc4b17cb
parent6cf1e199f983012473b4f39affd3900495a34da4
PCI: vmd: Disable MSI-X remapping when possible

VMD will retransmit child device MSI-X using its own MSI-X table and
requester-id. This limits the number of MSI-X available to the whole
child device domain to the number of VMD MSI-X interrupts.

Some VMD devices have a mode where this remapping can be disabled,
allowing child device interrupts to bypass processing with the VMD MSI-X
domain interrupt handler and going straight the child device interrupt
handler, allowing for better performance and scaling. The requester-id
still gets changed to the VMD endpoint's requester-id, and the interrupt
remapping handlers have been updated to properly set IRTE for child
device interrupts to the VMD endpoint's context.

Some VMD platforms have existing production BIOS which rely on MSI-X
remapping and won't explicitly program the MSI-X remapping bit. This
re-enables MSI-X remapping on unload.

Link: https://lore.kernel.org/r/20210210161315.316097-3-jonathan.derrick@intel.com
Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Reviewed-by: Krzysztof WilczyƄski <kw@linux.com>
Acked-by: Joerg Roedel <jroedel@suse.de>
drivers/pci/controller/vmd.c