From: Don Dutile <ddutile@redhat.com>
To: David Woodhouse <dwmw2@infradead.org>
Cc: iommu@lists.linux-foundation.org, mingo@elte.hu,
linux-kernel@vger.kernel.org, chrisw@redhat.com,
suresh.b.siddha@intel.com
Subject: Re: [PATCH 2/2] iommu: dmar -- reserve mmio space used by IOMMU
Date: Mon, 04 Jun 2012 19:09:17 -0400 [thread overview]
Message-ID: <4FCD401D.9000304@redhat.com> (raw)
In-Reply-To: <1338849430.10884.288.camel@shinybook.infradead.org>
On 06/04/2012 06:37 PM, David Woodhouse wrote:
> On Mon, 2012-06-04 at 17:29 -0400, Donald Dutile wrote:
>> Intel-iommu initialization doesn't currently reserve the memory used
>> for the IOMMU registers. This can allow the pci resource allocator
>> to assign a device BAR to the same address as the IOMMU registers.
>> This can cause some not so nice side affects when the driver
>> ioremap's that region.
>
> s/affect/effect/
>
ok.
> And surely this can happen even when IOMMU support is compiled out of
> the kernel. Shouldn't the BIOS be *telling* us that this region is
> unavailable for PCI resource allocation (or anything else, for that
> matter)?
>
good point....
> If the BIOS *doesn't* do that, then I believe this should be
> WARN_TAINT_ONCE(…TAINT_FIRMWARE_WORKAROUND…) like other BIOS problems
> that we have discovered.
>
well, one could argue it may be easier to claim the space reserved in
the OS then making yet another hole in the available IO address space
in the ACPI tables. Although I think the workarounds more systems
implement is to stick the IOMMUs into an existing hole to avoid this problem.
> And we should probably do it based on the actual chipset registers, not
> the DMAR tables (which the BIOS has also been known to lie about).
>
but.... the DMAR tables are the source of all information.... wise and ... er, um... ;-)
yes, I've been on the receiving side of more bz's wrt bad DMAR tables then I can count,
but...
How does the kernel probe for chipsets, then registers with the chipsets
to find the programmed IOMMU BAR values?
-- I missed that class.... I only have Intel Virt Tech Directed I/O
Architecture spec., and the beginning of IOMMU is based on DMAR tables...
If you have more info/guidance, I'd appreciate it.
Seems like the patch would be easier to support, although it doesn't
solve the problem you mentioned above, unless the reservation code isn't
compiled out by INTEL-IOMMU (but something more general like !(x86 && PCI)).
the firmware taint message would be informative as to the quality of
the firmware, but my experience is nothing changes unless it's critical
to a system shipping.
IMO, if we can avoid a BIOS problem, we should.
The empirical data I've gathered so far in this space
(IOMMU, use by SRIOV VF devices), shows the BIOS has numerous
weaknesses, and this is yet another one. The BIOS's are getting better,
but I've seen turtles run faster... ;-) .
next prev parent reply other threads:[~2012-06-04 23:09 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-04 21:29 [PATCH 0/2]intel-iommu: reserve IOMMU register space Donald Dutile
2012-06-04 21:29 ` [PATCH 1/2] iommu: dmar: replace printks with appropriate pr_*() Donald Dutile
2012-06-04 22:15 ` Joe Perches
2012-06-04 22:28 ` Don Dutile
2012-06-08 14:55 ` [tip:core/iommu] iommu/dmar: Replace printks with appropriate pr_* () tip-bot for Donald Dutile
2012-06-04 21:29 ` [PATCH 2/2] iommu: dmar -- reserve mmio space used by IOMMU Donald Dutile
2012-06-04 22:37 ` David Woodhouse
2012-06-04 23:09 ` Don Dutile [this message]
2012-06-04 23:23 ` David Woodhouse
2012-06-04 23:52 ` Don Dutile
2012-06-06 8:16 ` Ingo Molnar
2012-06-06 8:26 ` David Woodhouse
2012-06-06 8:29 ` Ingo Molnar
2012-06-06 8:45 ` David Woodhouse
2012-06-06 23:56 ` Chris Wright
2012-06-06 23:58 ` Chris Wright
2012-06-08 14:56 ` [tip:core/iommu] iommu/dmar: Reserve mmio space used by the IOMMU, if the BIOS forgets to tip-bot for Donald Dutile
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=4FCD401D.9000304@redhat.com \
--to=ddutile@redhat.com \
--cc=chrisw@redhat.com \
--cc=dwmw2@infradead.org \
--cc=iommu@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=suresh.b.siddha@intel.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox