Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1533055
| From | Xunlei Pang <xpang@redhat.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped |
| Date | 2016-11-30 09:20 +0100 |
| Message-ID | <sJ8hr-3E8-1@gated-at.bofh.it> (permalink) |
| References | <sE4o9-SU-7@gated-at.bofh.it> <sE4xQ-We-27@gated-at.bofh.it> <sE9QR-4fj-1@gated-at.bofh.it> <sEkVX-30x-7@gated-at.bofh.it> <sIRJD-1es-15@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On 11/29/2016 at 10:35 PM, Joerg Roedel wrote:
> On Thu, Nov 17, 2016 at 10:47:28AM +0800, Xunlei Pang wrote:
>> As per the comment, the code here only needs to flush context caches
>> for the special domain 0 which is used to tag the
>> non-present/erroneous caches, seems we should flush the old domain id
>> of present entries for kdump according to the analysis, other than the
>> new-allocated domain id. Let me ponder more on this.
> Flushing the context entry only is fine. The old domain-id will not be
> re-used anyway, so there is no point in reading it out of the context
> table and flush it.
Do you mean to flush the context entry using the new-allocated domain id?
Yes, old domain-id will not be re-used as they were reserved when copy, but
may still be cached by in-flight DMA access.
Here is what the things seem to be from my understanding, and why I want to
flush using the old domain id:
1) In kdump mode, old tables are copied, and all the iommu caches are flushed.
2) There comes some in-flight DMA before the device's new context is mapped,
so translation caches(context, iotlb, etc) are created tagging old domain-id
in the iommu hardware.
3) At the driver probe stage, the device is reset , and no in-flight DMA will exist.
Here I assumed that the device reset won't flush the old caches in the iommu
hardware related to this device. I haven't found any relevant specification, please
correct me if I am wrong.
4) Then new context is setup, and new DMA is initiated, hit old cache that was
created in 2) as currently there's no such flush action, so DMAR fault happens.
I already posted v2 to flush context/iotlb using the old domain-id:
https://lkml.org/lkml/2016/11/18/514
Regards,
Xunlei
>
> Also, please add a Fixes-tag when you re-post this patch.
>
>
> Joerg
>
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped Joerg Roedel <joro@8bytes.org> - 2016-11-29 15:40 +0100
Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped Xunlei Pang <xpang@redhat.com> - 2016-11-30 09:20 +0100
Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped Baoquan He <bhe@redhat.com> - 2016-11-30 10:10 +0100
Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped Baoquan He <bhe@redhat.com> - 2016-11-30 11:00 +0100
Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped Baoquan He <bhe@redhat.com> - 2016-11-30 11:30 +0100
Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped Joerg Roedel <joro@8bytes.org> - 2016-11-30 15:30 +0100
Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped Xunlei Pang <xpang@redhat.com> - 2016-12-01 03:20 +0100
Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped Joerg Roedel <joro@8bytes.org> - 2016-12-01 11:40 +0100
Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped Xunlei Pang <xpang@redhat.com> - 2016-12-01 13:00 +0100
csiph-web