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 From mboxrd@z Thu Jan 1 00:00:00 1970 From: Baoquan He Subject: Re: [PATCH v7 00/12] Fix kdump faults on system with amd iommu Date: Sat, 24 Dec 2016 11:47:05 +0800 Message-ID: <20161224034705.GE25035@x1> References: <1480050799-1237-1-git-send-email-bhe@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1480050799-1237-1-git-send-email-bhe-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: iommu-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org Cc: dyoung-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org, kexec-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-Id: iommu@lists.linux-foundation.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 > From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758418AbcLXDrK (ORCPT ); Fri, 23 Dec 2016 22:47:10 -0500 Received: from mx1.redhat.com ([209.132.183.28]:45074 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751592AbcLXDrJ (ORCPT ); Fri, 23 Dec 2016 22:47:09 -0500 Date: Sat, 24 Dec 2016 11:47:05 +0800 From: Baoquan He To: joro@8bytes.org Cc: iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org, kexec@lists.infradead.org, dyoung@redhat.com, xlpang@redhat.com 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-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1480050799-1237-1-git-send-email-bhe@redhat.com> User-Agent: Mutt/1.7.0 (2016-08-17) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Sat, 24 Dec 2016 03:47:08 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: 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 >