Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1533055

Re: [PATCH] iommu/vt-d: Flush old iotlb for kdump when the device gets context mapped

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

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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