From: Andi Kleen <ak@suse.de>
To: Matthew Wilcox <matthew@wil.cx>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ioremap_cached()
Date: Thu, 30 Mar 2006 21:50:05 +0200 [thread overview]
Message-ID: <200603302150.05357.ak@suse.de> (raw)
In-Reply-To: <20060330193457.GL13590@parisc-linux.org>
On Thursday 30 March 2006 21:34, Matthew Wilcox wrote:
> On Thu, Mar 30, 2006 at 08:27:53PM +0200, Andi Kleen wrote:
> > Matthew Wilcox <matthew@wil.cx> writes:
> >
> > > We currently have three ways for getting access to device memory --
> > > ioremap(), ioremap_nocache() and pci_iomap(). 99% of the callers of
> > > ioremap() are doing it to access device registers, and really, really
> > > want to use ioremap_nocache() instead. I presume nobody notices on PCs
> > > because they have write-through caches, but it ought to trip up people
> > > trying to flush writes.
> >
> > Actually MTRRs take care of that on x86.
> > So essentially on x86 ioremap() for devices is already ioremap_uncached()
> > And ioremap on memory is cached.
> >
> > That's nice and simple semantics that other platforms can emulate too.
> > Doing things differently will just cause pain for the other platforms
> > when they have to fix up drivers all the time.
>
> That doesn't make any sense. What's the point of ioremap_nocache() if
> ioremap() does magic things that make things uncached?
In theory ioremap_nocache would force uncached even if there is no MTRR
and is better/clearer.
But on x86 there normally is, so lots of code gets it wrong.
My point is just that forcing a semantics that's not enforced
on x86 would be a uphill battle for everybody else. Probably not
a good idea. Better fake x86.
> And who says
> you're allowed to ioremap() memory anyway?
Why not? There are cases when it's needed.
> > It all works fine until someone wants WC too. I would rather add a
> > ioremap_wc(), that would be more useful.
>
> ioremap_wc() sounds like a good idea.
It's unfortunately tricky to get it fully right on x86. The issue
is to have a good way avoid illegal cache aliases. There were some
attempts, but so far they never were polished up from the initial
prototypes.
-Andi
next prev parent reply other threads:[~2006-03-30 19:50 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-30 16:41 [PATCH] ioremap_cached() Matthew Wilcox
2006-03-30 18:27 ` Andi Kleen
2006-03-30 19:34 ` Matthew Wilcox
2006-03-30 19:50 ` Andi Kleen [this message]
2006-03-30 20:14 ` Matthew Wilcox
2006-03-30 20:17 ` Andi Kleen
2006-03-30 20:21 ` Kumar Gala
2006-03-30 20:27 ` Andi Kleen
2006-03-31 11:20 ` Arjan van de Ven
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=200603302150.05357.ak@suse.de \
--to=ak@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=matthew@wil.cx \
/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