From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mx1.redhat.com ([209.132.183.28]) by bombadil.infradead.org with esmtps (Exim 4.85_2 #1 (Red Hat Linux)) id 1cKdJ1-0003q7-BD for kexec@lists.infradead.org; Sat, 24 Dec 2016 03:47:36 +0000 Date: Sat, 24 Dec 2016 11:47:05 +0800 From: Baoquan He Subject: Re: [PATCH v7 00/12] Fix kdump faults on system with amd iommu Message-ID: <20161224034705.GE25035@x1> References: <1480050799-1237-1-git-send-email-bhe@redhat.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1480050799-1237-1-git-send-email-bhe@redhat.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "kexec" Errors-To: kexec-bounces+dwmw2=infradead.org@lists.infradead.org To: joro@8bytes.org Cc: xlpang@redhat.com, dyoung@redhat.com, iommu@lists.linux-foundation.org, kexec@lists.infradead.org, linux-kernel@vger.kernel.org Hi Joerg, Ping! Could you help review this version? Not sure this could catch up to v4.10 merging. Thanks Baoqaun 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. > > v5: > 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. > https://lists.linuxfoundation.org/pipermail/iommu/2016-September/018527.html > > v5->v6: > 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). > > v6->v7: > 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 > entry > 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 > pre-enabled > > 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(-) > > -- > 2.5.5 > _______________________________________________ kexec mailing list kexec@lists.infradead.org http://lists.infradead.org/mailman/listinfo/kexec