Messages in this thread | | | Date | Wed, 20 Aug 2014 17:54:43 +0800 | From | "Li, ZhenHua" <> | Subject | Re: [PATCH 1/1] iommu/vt-d : clear old root entry for dump kernel |
| |
On my system, error message: [ 4.322008] dmar: DRHD: handling fault status reg 2 [ 4.327484] dmar: DMAR:[DMA Read] Request device [21:00.0] fault addr fff66000 [ 4.327484] DMAR:[fault reason 01] Present bit in root entry is clear
fault happens on device : 21:00.0
To describe this problem clearly, we mark two time points: A: Just before dump kernel init the DMAR/IOMMU structures. B: Just after DMAR/IOMMU finished initialization. C: Just before 21:00.0
When the first kernel crashed, then the dump kernel will boot. Then there comes a DMA request on 21:00.0 when durting A to C. And this will cause this error.
If I clear the root entry table when iommu structure is allocted, this error will not happen during A to B, but still can be seen during B and C. I guess the cause is the un-expected DMA request.
I will apply Bill Sumner's patch to see whether it will cause the errors disappear.
-- Zhenhua
On 08/19/2014 07:02 PM, Joerg Roedel wrote: > On Mon, Aug 18, 2014 at 11:27:01PM +0000, Li, Zhen-Hua wrote: >> : [fault reason 01] Present bit in root entry is clear >> It appears when iommu initializing in the kdump kernel. > > Hmm, do you have an explanation how this can happen? From how I read the > code, the kdump kernel disables translation on the IOMMU, then sets a > new root entry, and then re-enabled translation. To me it looks like > there is no point in time where translation is enabled and the > root-entry is clear (present-bit==0). > > But obviously I am missing something if you see the message above. > > Btw, have you looked into this patch-set posted earlier this year: > > https://lkml.org/lkml/2014/4/24/836 > > It approaches the same problem-space, but also cares about in-flight > DMA. > > > Joerg >
| |