[Patch v4 0/9] *** Fix kdump failure in system with amd iommu***
From: Baoquan He
Date: Wed May 25 2016 - 02:29:11 EST
Recently I have time to continue the work of fixing AMD IOMMU faults in
kdump kernel. The situation is I tried to make change at the time point
as Intel iommu has done, but still Ethernet NIC will trigger the printing
of IO_PAGE_FAULT. I got 2 machines with AMD IOMMU v1 and v2 separately,
the test result is similar, always there are IO_PAGE_FAULT message for
Ethernet network card. I have no idea why it happened though I did it
just like Intel IOMMU did.
In this v4 change, I just made changes as follows:
1) Several clean up patches when I reviewed AMD IOMMU code.
2) Detect if it's pre-enabled in kdump kernel.
3) Copy dev tables in kdump kernel. Since dev table is per device we just
need to copy the content in dev table, the io page table pointer and
irq table pointer are contained in each dev table entry.
4) Reserved the domain id which has been allocated in 1st kernel
5) Do not re-enable or re-init the dev table entry bits or control bit
of AMD IOMMU.
Post this to mailing list, hope it can be figured out which need be further
1)Define several PTE/DTE bits MACRO definition according to Zongshun's
2)Learned the implementation of vt-d fix done by Joerg and did the AMD
IOMMU change similiarly.
Baoquan HE (4):
iommu/amd: add early_enable_iommu() helper function
iommu/amd: copy old trans table from old kernel
iommu/amd: Do not initialize dev tables again in kdump
iommu/amd: Check the validation of irq table and domain id
Baoquan He (5):
iommu/amd: clean up the cmpxchg64 invocation
iommu/amd: Use standard bitmap operation to set bitmap
iommu/amd: Detect pre enabled translation
iommu/amd: Define bit fields for DTE particularly
iommu/amd: Add function copy_dev_tables
drivers/iommu/amd_iommu.c | 21 +++----
drivers/iommu/amd_iommu_init.c | 136 +++++++++++++++++++++++++++++++++++-----
drivers/iommu/amd_iommu_types.h | 29 +++++++--
3 files changed, 156 insertions(+), 30 deletions(-)