From: "Li, ZhenHua" <zhen-hual-VXdhtT5mjnY@public.gmane.org>
To: Feng Wu <feng.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org,
"Li, ZhenHua" <zhen-hual-VXdhtT5mjnY@public.gmane.org>,
dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org
Subject: Re: [v4 0/8] Add VT-d Posted-Interrupts support - IOMMU part
Date: Fri, 03 Apr 2015 16:12:45 +0800 [thread overview]
Message-ID: <551E4B7D.6020108@hp.com> (raw)
In-Reply-To: <20150402112833.GN4441-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
Hi Feng Wu,
In my patchset, I created a new member ir_table->base_old_phys; In the
normal kernel, everything is the same. In kdump kernel, ir_table->base
is used for a buffer, and ir_table->base_old_phys is the physical
address of the tables used by the old kernel, also being used by the
current kernel.
I did this in modify_irte():
set_64bit(&irte->high, irte_modified->high);
+
+#ifdef CONFIG_CRASH_DUMP
+ if (is_kdump_kernel())
+ __iommu_update_old_irte(iommu, index);
+#endif
__iommu_flush_cache(iommu, irte, sizeof(*irte));
Here the irte tables are stored in two places:
iommu->ir_table->base : It is a buffer in kdump kernel, which is the
running kernel;
iommu->ir_table->base_old_phys : It is the irte used by the old kernel;
And function __iommu_update_old_irte is used to save the content of
iommu->ir_table->base to iommu->ir_table->base_old_phys. Because in
kdump kernel, the vt-d is using ir_table->base_old_phys, not
ir_table->base, so we need to copy the updated ir_table->base to
ir_table->base_old_phys .
Thanks
Zhenhua
On 04/02/2015 07:28 PM, Joerg Roedel wrote:
> On Mon, Feb 02, 2015 at 04:06:56PM +0800, Feng Wu wrote:
>> VT-d Posted-Interrupts is an enhancement to CPU side Posted-Interrupt.
>> With VT-d Posted-Interrupts enabled, external interrupts from
>> direct-assigned devices can be delivered to guests without VMM
>> intervention when guest is running in non-root mode.
>>
>> You can find the VT-d Posted-Interrtups Spec. in the following URL:
>> http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/vt-directed-io-spec.html
>>
>> This series was part of http://thread.gmane.org/gmane.linux.kernel.iommu/7708. To make things clear, send out IOMMU part here.
>
> Besides the modify_irte() changes I asked for the patch-set looks good.
> I just have some concerns what these changes mean for the VT-d kdump
> improvements Zhen-Hua Li is working on. Can you please discuss the
> implications of having both patch-sets applied with him and make sure
> they work together? I think in its current form your patch-set breaks
> the kdump support patches. I added Zhen-Hua to Cc.
>
> Thanks,
>
> Joerg
>
WARNING: multiple messages have this Message-ID (diff)
From: "Li, ZhenHua" <zhen-hual@hp.com>
To: Feng Wu <feng.wu@intel.com>
Cc: Joerg Roedel <joro@8bytes.org>,
dwmw2@infradead.org, jiang.liu@linux.intel.com,
iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org,
"Li, ZhenHua" <zhen-hual@hp.com>
Subject: Re: [v4 0/8] Add VT-d Posted-Interrupts support - IOMMU part
Date: Fri, 03 Apr 2015 16:12:45 +0800 [thread overview]
Message-ID: <551E4B7D.6020108@hp.com> (raw)
In-Reply-To: <20150402112833.GN4441@8bytes.org>
Hi Feng Wu,
In my patchset, I created a new member ir_table->base_old_phys; In the
normal kernel, everything is the same. In kdump kernel, ir_table->base
is used for a buffer, and ir_table->base_old_phys is the physical
address of the tables used by the old kernel, also being used by the
current kernel.
I did this in modify_irte():
set_64bit(&irte->high, irte_modified->high);
+
+#ifdef CONFIG_CRASH_DUMP
+ if (is_kdump_kernel())
+ __iommu_update_old_irte(iommu, index);
+#endif
__iommu_flush_cache(iommu, irte, sizeof(*irte));
Here the irte tables are stored in two places:
iommu->ir_table->base : It is a buffer in kdump kernel, which is the
running kernel;
iommu->ir_table->base_old_phys : It is the irte used by the old kernel;
And function __iommu_update_old_irte is used to save the content of
iommu->ir_table->base to iommu->ir_table->base_old_phys. Because in
kdump kernel, the vt-d is using ir_table->base_old_phys, not
ir_table->base, so we need to copy the updated ir_table->base to
ir_table->base_old_phys .
Thanks
Zhenhua
On 04/02/2015 07:28 PM, Joerg Roedel wrote:
> On Mon, Feb 02, 2015 at 04:06:56PM +0800, Feng Wu wrote:
>> VT-d Posted-Interrupts is an enhancement to CPU side Posted-Interrupt.
>> With VT-d Posted-Interrupts enabled, external interrupts from
>> direct-assigned devices can be delivered to guests without VMM
>> intervention when guest is running in non-root mode.
>>
>> You can find the VT-d Posted-Interrtups Spec. in the following URL:
>> http://www.intel.com/content/www/us/en/intelligent-systems/intel-technology/vt-directed-io-spec.html
>>
>> This series was part of http://thread.gmane.org/gmane.linux.kernel.iommu/7708. To make things clear, send out IOMMU part here.
>
> Besides the modify_irte() changes I asked for the patch-set looks good.
> I just have some concerns what these changes mean for the VT-d kdump
> improvements Zhen-Hua Li is working on. Can you please discuss the
> implications of having both patch-sets applied with him and make sure
> they work together? I think in its current form your patch-set breaks
> the kdump support patches. I added Zhen-Hua to Cc.
>
> Thanks,
>
> Joerg
>
next prev parent reply other threads:[~2015-04-03 8:12 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-02 8:06 [v4 0/8] Add VT-d Posted-Interrupts support - IOMMU part Feng Wu
2015-02-02 8:06 ` Feng Wu
[not found] ` <1422864424-19411-1-git-send-email-feng.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-02 8:06 ` [v4 1/8] iommu: Add new member capability to struct irq_remap_ops Feng Wu
2015-02-02 8:06 ` Feng Wu
2015-02-02 8:06 ` [v4 2/8] iommu, x86: Define new irte structure for VT-d Posted-Interrupts Feng Wu
2015-02-02 8:06 ` Feng Wu
[not found] ` <1422864424-19411-3-git-send-email-feng.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-03-23 11:57 ` Joerg Roedel
2015-03-23 11:57 ` Joerg Roedel
2015-03-24 2:32 ` Wu, Feng
2015-03-31 15:16 ` Joerg Roedel
[not found] ` <20150331151643.GF22683-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-04-01 8:51 ` Wu, Feng
2015-04-01 8:51 ` Wu, Feng
2015-02-02 8:06 ` [v4 3/8] iommu, x86: Implement irq_set_vcpu_affinity for intel_ir_chip Feng Wu
2015-02-02 8:06 ` Feng Wu
2015-02-02 8:07 ` [v4 4/8] iommu, x86: No need to migrating irq for VT-d Posted-Interrupts Feng Wu
2015-02-02 8:07 ` Feng Wu
2015-02-02 8:07 ` [v4 5/8] iommu, x86: Add cap_pi_support() to detect VT-d PI capability Feng Wu
2015-02-02 8:07 ` Feng Wu
2015-02-02 8:07 ` [v4 6/8] iommu, x86: Setup Posted-Interrupts capability for Intel iommu Feng Wu
2015-02-02 8:07 ` Feng Wu
2015-02-02 8:07 ` [v4 7/8] iommu, x86: define irq_remapping_cap() Feng Wu
2015-02-02 8:07 ` Feng Wu
2015-02-02 8:07 ` [v4 8/8] iommu, x86: Properly handler PI for IOMMU hotplug Feng Wu
2015-02-02 8:07 ` Feng Wu
2015-04-02 11:28 ` [v4 0/8] Add VT-d Posted-Interrupts support - IOMMU part Joerg Roedel
[not found] ` <20150402112833.GN4441-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-04-03 8:12 ` Li, ZhenHua [this message]
2015-04-03 8:12 ` Li, ZhenHua
[not found] ` <551E4B7D.6020108-VXdhtT5mjnY@public.gmane.org>
2015-04-07 5:02 ` Wu, Feng
2015-04-07 5:02 ` Wu, Feng
-- strict thread matches above, loose matches on Subject: below --
2015-02-02 8:01 Feng Wu
2015-02-02 8:01 ` Feng Wu
[not found] ` <1422864114-19324-1-git-send-email-feng.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
2015-02-02 8:17 ` Wu, Feng
2015-02-02 8:17 ` Wu, Feng
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=551E4B7D.6020108@hp.com \
--to=zhen-hual-vxdhtt5mjny@public.gmane.org \
--cc=dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=feng.wu-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org \
--cc=jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.