[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20130201130035.GE25591@8bytes.org>
Date: Fri, 1 Feb 2013 14:00:35 +0100
From: Joerg Roedel <joro@...tes.org>
To: Shuah Khan <shuah.khan@...com>
Cc: LKML <linux-kernel@...r.kernel.org>,
stable <stable@...r.kernel.org>,
iommu@...ts.linux-foundation.org, shuahkhan@...il.com
Subject: Re: IO_PAGE_FAULTs on unity mapped regions during amd_iommu_init()
in Linux 3.4
Hi Shuah,
On Thu, Jan 31, 2013 at 11:33:30AM -0700, Shuah Khan wrote:
> Access to these ranges continues to work with no errors until AMD IOMMU
> driver disables and re-enables IOMMU in enable_iommus(). These faults
> don't persist and appear between the enable_iommus() call and before
> amd_iommu_init() gets done printing "AMD-Vi: Lazy IO/TLB flushing
> enabled" message.
Hmm, okay. I had a look into the v3.4 sources. This looks like a race
condition. The IOMMUs are enabled in amd_iommu_init_hardware() but the
unity-mapped regions are created later in amd_iommu_init_dma_ops(). This
leaves a small window where the page-faults happen that you see.
But I am not sure why this doesn't hit on 3.7 and above. The race is
still there. Anyway, definitly something that needs to be fixed.
Joerg
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists