[PATCH v7 00/12] Fix kdump faults on system with amd iommu
bhe at redhat.com
Fri Dec 23 19:47:05 PST 2016
Could you help review this version? Not sure this could catch up to
On 11/25/16 at 01:13pm, Baoquan He wrote:
> This is v7 post.
> The principle of the fix is similar to intel iommu. Just defer the assignment
> of device to domain to device driver init. In this version of post, a new
> call-back is_attach_deferred is added to iommu-ops, it's used to check whether
> we need defer the domain attach/detach in iommu-core code.
> bnx2 NIC can't reset itself during driver init. Post patch to reset
> it during driver init. IO_PAGE_FAULT can't be seen anymore.
> Below is link of v5 post.
> According to Joerg's comments made several below main changes:
> - Add sanity check when copy old dev tables.
> - If a device is set up with guest translations (DTE.GV=1), then don't
> copy that information but move the device over to an empty guest-cr3
> table and handle the faults in the PPR log (which just answer them
> with INVALID).
> Two main changes are made according to Joerg's suggestion:
> - Add is_attach_deferred call-back to iommu-ops. With this domain
> can be deferred to device driver init cleanly.
> - Allocate memory below 4G for dev table if translation pre-enabled.
> AMD engineer pointed out that it's unsafe to update the device-table
> while iommu is enabled. device-table pointer update is split up into
> two 32bit writes in the IOMMU hardware. So updating it while the IOMMU
> is enabled could have some nasty side effects.
> Baoquan He (12):
> iommu/amd: Detect pre enabled translation
> iommu/amd: add several helper function
> iommu/amd: Define bit fields for DTE particularly
> iommu/amd: Add function copy_dev_tables
> iommu/amd: copy old trans table from old kernel
> iommu: Add is_attach_deferred call-back to iommu-ops
> iommu/amd: Use is_attach_deferred call-back
> iommu/amd: Add sanity check of irq remap information of old dev table
> iommu/amd: Don't copy GCR3 table root pointer
> iommu/amd: Clear out the GV flag when handle deferred domain attach
> iommu: Assign the direct mapped domain to group->domain
> iommu/amd: Allocate memory below 4G for dev table if translation
> drivers/iommu/amd_iommu.c | 78 +++++++++-------
> drivers/iommu/amd_iommu_init.c | 201 +++++++++++++++++++++++++++++++++++++---
> drivers/iommu/amd_iommu_proto.h | 2 +
> drivers/iommu/amd_iommu_types.h | 53 ++++++++++-
> drivers/iommu/amd_iommu_v2.c | 18 +++-
> drivers/iommu/iommu.c | 9 ++
> include/linux/iommu.h | 1 +
> 7 files changed, 313 insertions(+), 49 deletions(-)
More information about the kexec