linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Li, ZhenHua" <zhen-hual@hp.com>
To: Joerg Roedel <joro@8bytes.org>
Cc: dwmw2@infradead.org, indou.takao@jp.fujitsu.com, bhe@redhat.com,
	vgoyal@redhat.com, dyoung@redhat.com,
	iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org,
	linux-pci@vger.kernel.org, kexec@lists.infradead.org,
	alex.williamson@redhat.com, ddutile@redhat.com,
	ishii.hironobu@jp.fujitsu.com, bhelgaas@google.com,
	doug.hatch@hp.com, jerry.hoemann@hp.com, tom.vaden@hp.com,
	li.zhang6@hp.com, lisa.mitchell@hp.com,
	billsumnerlinux@gmail.com, rwright@hp.com, "Li,
	ZhenHua" <zhen-hual@hp.com>
Subject: Re: [PATCH v8 02/10] iommu/vt-d: Items required for kdump
Date: Tue, 13 Jan 2015 16:12:29 +0800	[thread overview]
Message-ID: <54B4D36D.8030204@hp.com> (raw)
In-Reply-To: <20150112152207.GC6343@8bytes.org>

On 01/12/2015 11:22 PM, Joerg Roedel wrote:
> On Mon, Jan 12, 2015 at 03:06:20PM +0800, Li, Zhen-Hua wrote:
>> +
>> +#ifdef CONFIG_CRASH_DUMP
>> +
>> +/*
>> + * Fix Crashdump failure caused by leftover DMA through a hardware IOMMU
>> + *
>> + * Fixes the crashdump kernel to deal with an active iommu and legacy
>> + * DMA from the (old) panicked kernel in a manner similar to how legacy
>> + * DMA is handled when no hardware iommu was in use by the old kernel --
>> + * allow the legacy DMA to continue into its current buffers.
>> + *
>> + * In the crashdump kernel, this code:
>> + * 1. skips disabling the IOMMU's translating of IO Virtual Addresses (IOVA).
>> + * 2. Do not re-enable IOMMU's translating.
>> + * 3. In kdump kernel, use the old root entry table.
>> + * 4. Leaves the current translations in-place so that legacy DMA will
>> + *    continue to use its current buffers.
>> + * 5. Allocates to the device drivers in the crashdump kernel
>> + *    portions of the iova address ranges that are different
>> + *    from the iova address ranges that were being used by the old kernel
>> + *    at the time of the panic.
>> + *
>> + */
>
> It looks like you are still copying the io-page-tables from the old
> kernel into the kdump kernel, is that right? With the approach that was
> proposed you only need to copy over the context entries 1-1. They are
> still pointing to the page-tables in the old kernels memory (which is
> just fine).
>
> The root-entry of the old kernel is also re-used, and when the kdump
> kernel starts to use a device, its context entry is updated to point to
> a newly allocated page-table.
>

Current status:
1. Use old root entry table,
2. Copy old context entry tables.
3. Copy old page tables.
4. Allocate new page table when device driver is loading.

I remember the progress we discussed was this. Checking the old mails,
founding we did not clearly discuss about the old page tables, only
agrred with allocating new page tables when device driver is loading.

To me, both of these two options are fine, copying old page tables, or
re-use the old ones. My debugging shows both of them works fine.

If we use the old page tables, the patchset will use less code.
Functions copy_page_addr, copy_page_table are no longer needed, and
functions copy_context_entry and copy_context_entry_table will be
reduced to several lines. The patchset will be much simpler.

Zhenhua



  parent reply	other threads:[~2015-01-13  8:13 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-12  7:06 [PATCH v8 0/10] iommu/vt-d: Fix intel vt-d faults in kdump kernel Li, Zhen-Hua
2015-01-12  7:06 ` [PATCH v8 01/10] iommu/vt-d: Update iommu_attach_domain() and its callers Li, Zhen-Hua
2015-01-12 15:18   ` Joerg Roedel
2015-01-13  1:28     ` Li, ZhenHua
2015-01-12  7:06 ` [PATCH v8 02/10] iommu/vt-d: Items required for kdump Li, Zhen-Hua
2015-01-12 15:22   ` Joerg Roedel
2015-01-12 15:29     ` Vivek Goyal
2015-01-12 16:06       ` Joerg Roedel
2015-01-12 16:15         ` Vivek Goyal
2015-01-12 16:48           ` Joerg Roedel
2015-01-13 11:41       ` Baoquan He
2015-01-13  8:12     ` Li, ZhenHua [this message]
2015-01-13 11:52       ` Joerg Roedel
2015-01-12  7:06 ` [PATCH v8 03/10] iommu/vt-d: Add domain-id functions Li, Zhen-Hua
2015-01-12  7:06 ` [PATCH v8 04/10] iommu/vt-d: functions to copy data from old mem Li, Zhen-Hua
2015-01-12  7:06 ` [PATCH v8 05/10] iommu/vt-d: Add functions to load and save old re Li, Zhen-Hua
2015-01-12  7:06 ` [PATCH v8 06/10] iommu/vt-d: datatypes and functions used for kdump Li, Zhen-Hua
2015-01-15  3:28   ` Baoquan He
2015-01-15  5:45     ` Li, ZhenHua
2015-01-15  7:01       ` Baoquan He
2015-01-12  7:06 ` [PATCH v8 07/10] iommu/vt-d: enable kdump support in iommu module Li, Zhen-Hua
2015-01-12  7:06 ` [PATCH v8 08/10] iommu/vt-d: assign new page table for dma_map Li, Zhen-Hua
2015-01-12  7:06 ` [PATCH v8 09/10] iommu/vt-d: Copy functions for irte Li, Zhen-Hua
2015-01-12  7:06 ` [PATCH v8 10/10] iommu/vt-d: Use old irte in kdump kernel Li, Zhen-Hua
2015-01-12  8:00 ` [PATCH v8 0/10] iommu/vt-d: Fix intel vt-d faults " Li, ZhenHua
2015-01-12  9:07   ` Baoquan He
2015-01-12  9:28     ` Li, ZhenHua

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=54B4D36D.8030204@hp.com \
    --to=zhen-hual@hp.com \
    --cc=alex.williamson@redhat.com \
    --cc=bhe@redhat.com \
    --cc=bhelgaas@google.com \
    --cc=billsumnerlinux@gmail.com \
    --cc=ddutile@redhat.com \
    --cc=doug.hatch@hp.com \
    --cc=dwmw2@infradead.org \
    --cc=dyoung@redhat.com \
    --cc=indou.takao@jp.fujitsu.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=ishii.hironobu@jp.fujitsu.com \
    --cc=jerry.hoemann@hp.com \
    --cc=joro@8bytes.org \
    --cc=kexec@lists.infradead.org \
    --cc=li.zhang6@hp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lisa.mitchell@hp.com \
    --cc=rwright@hp.com \
    --cc=tom.vaden@hp.com \
    --cc=vgoyal@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).