My debugging result is this: 1. Clear the old root entry table, dump kernel will choose another memory region for root entry. 2. Do NOT clear the old root entry, when dump kernel initializing the iommu data structure, it will allocate memory for root entry, this is different from the old address.
If not clear old entry , the error message appears before dump kernel finishes the iommu init works, and also appears in other places(before device inits). If I clear the old root entry, the error message disappears before iommu init work finish, but still appears in other places. -----Original Message----- From: Li, Zhen-Hua Sent: Tuesday, August 19, 2014 7:48 AM To: Li, Zhen-Hua; Joerg Roedel Cc: David Woodhouse; iommu@lists.linux-foundation.org; linux-ker...@vger.kernel.org Subject: RE: [PATCH 1/1] iommu/vt-d : clear old root entry for dump kernel When the dump kernel boots, it will initialize iommu again, and the root entry will be allocted in another memory region. That means, no matter kernel clears the old root entry table or not, the dump kernel will use another memory region when iommu initializing. -----Original Message----- From: Li, Zhen-Hua Sent: Tuesday, August 19, 2014 7:27 AM To: 'Joerg Roedel' Cc: David Woodhouse; iommu@lists.linux-foundation.org; linux-ker...@vger.kernel.org Subject: RE: [PATCH 1/1] iommu/vt-d : clear old root entry for dump kernel : [fault reason 01] Present bit in root entry is clear It appears when iommu initializing in the kdump kernel. -----Original Message----- From: Joerg Roedel [mailto:j...@8bytes.org] Sent: Tuesday, August 19, 2014 7:23 AM To: Li, Zhen-Hua Cc: David Woodhouse; iommu@lists.linux-foundation.org; linux-ker...@vger.kernel.org Subject: Re: [PATCH 1/1] iommu/vt-d : clear old root entry for dump kernel On Mon, Aug 18, 2014 at 11:01:56PM +0000, Li, Zhen-Hua wrote: > There is a bug when Linux running on an HP large system: > when kdump kernel runs, the hardware is still using the old > root entry. This causes error message when iommu not finished initialization. What error message are you seeing? When the kdump kernel boots the iommu should be still enabled from the old kernel with the old root-entry. So any in-flight DMA initiated from the old kernel can still pass and there should be no error messages. When you clear the root-entry that in-flight DMA might go to another random location in system memory or just fail, no? Joerg _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu