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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.