From: Nick Piggin <npiggin@suse.de>
To: David Miller <davem@davemloft.net>
Cc: akpm@linux-foundation.org, shaggy@austin.ibm.com,
axboe@oracle.com, linux-mm@kvack.org, linux-arch@vger.kernel.org,
torvalds@linux-foundation.org
Subject: Re: [patch 1/2]: x86: implement pte_special
Date: Fri, 28 Mar 2008 05:04:42 +0100 [thread overview]
Message-ID: <20080328040442.GE8083@wotan.suse.de> (raw)
In-Reply-To: <20080327.204431.201380891.davem@davemloft.net>
On Thu, Mar 27, 2008 at 08:44:31PM -0700, David Miller wrote:
> From: Nick Piggin <npiggin@suse.de>
> Date: Fri, 28 Mar 2008 04:31:50 +0100
>
> > Basically, the pfn-based mapping insertion (vm_insert_pfn, remap_pfn_range)
> > calls pte_mkspecial. And that tells fast_gup "hands off".
>
> I don't think it's wise to allocate a "soft PTE bit" for this on every
> platform, especially for such a limited use case.
Sure, it will be up to the arch to decide whether or not to use it. If
you can't spare a bit, then nothing changes, you just don't get a speedup ;)
But it is not limited to direct IO. If you have a look through
drivers, there are quite a few things using it that might see improvement.
And even if it were limited to direct IO... there will be some platforms
that want it, I suspect.
> Is it feasible to test the page instead? Or are we talking about
> cases where there may not be a backing page?
Yes. Or there may be one but you are not allowed to touch it.
> If the issue is to discern things like I/O mappings and such vs. real
> pages, there are ways a platform can handle that without a special
> bit.
>
> That would leave us with real memory that does not have backing
> page structs, and we have a way to test that too.
>
> The special PTE bit seems superfluous to me.
It has to be quite fast.
There are some platforms that can't really do that easily, so the pte
bit isn't useless on all architectures. s390 for example, which is
why it was introduced in the other patchset.
x86 has 3 bits which are usable by system software, so are not likely
to be ever used by hardware. And in the entire life of Linux, nobody
has ever wanted to use one :) So I think we're safe to use one on x86.
If bits ever run out, and there are as you say other ways to implement
this, then it could be switched over then. Because nothing is going to
be as fast as testing the pte (which we already have loaded in a
register).
For sparc, if you can propose another method, we could look at that.
But if you think it is such a limited use case, then cleanest and eaisest
will just be to not implement it. I doubt many people to serious oltp
on sparc (on Linux), so for that platform you are probably right. If
another compelling use case comes up, then you can always reevaluate.
BTW. if you are still interested, then the powerpc64 patch might be a
better starting point for you. I don't know how the sparc tlb flush
design looks like, but if it doesn't do a synchronous IPI to invalidate
other threads, then you can't use the x86 approach.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2008-03-28 4:04 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-28 2:54 [patch 0/2]: lockless get_user_pages patchset Nick Piggin
2008-03-28 2:55 ` [patch 1/2]: x86: implement pte_special Nick Piggin
2008-03-28 3:23 ` David Miller, Nick Piggin
2008-03-28 3:31 ` Nick Piggin
2008-03-28 3:44 ` David Miller, Nick Piggin
2008-03-28 4:04 ` Nick Piggin [this message]
2008-03-28 4:09 ` David Miller, Nick Piggin
2008-03-28 4:15 ` Nick Piggin
2008-03-28 4:16 ` David Miller, Nick Piggin
2008-03-28 4:19 ` Nick Piggin
2008-03-28 4:17 ` Nick Piggin
2008-03-28 3:00 ` [patch 2/2]: introduce fast_gup Nick Piggin
2008-03-28 10:01 ` Jens Axboe
2008-04-17 15:03 ` Peter Zijlstra
2008-04-17 15:25 ` Linus Torvalds
2008-04-17 16:12 ` Peter Zijlstra
2008-04-17 16:18 ` Linus Torvalds
2008-04-17 16:35 ` Peter Zijlstra
2008-04-17 16:40 ` Linus Torvalds
2008-04-17 17:23 ` Peter Zijlstra
2008-04-17 18:28 ` Linus Torvalds
2008-04-22 3:14 ` Nick Piggin
2008-04-18 6:31 ` Geert Uytterhoeven
2008-04-18 14:40 ` Linus Torvalds
2008-04-18 9:58 ` Jeremy Fitzhardinge
2008-04-21 12:00 ` Avi Kivity
2008-04-21 12:30 ` Peter Zijlstra
2008-04-21 13:26 ` Avi Kivity
2008-04-21 14:35 ` Peter Zijlstra
2008-04-22 3:23 ` Nick Piggin
2008-04-22 7:19 ` Avi Kivity
2008-04-22 8:07 ` Ingo Molnar
2008-04-22 9:42 ` Peter Zijlstra
2008-04-22 9:46 ` Nick Piggin
2008-05-14 18:33 ` Dave Kleikamp
2008-05-15 1:13 ` Nick Piggin
-- strict thread matches above, loose matches on Subject: below --
2008-05-21 11:59 [patch 1/2] x86: implement pte_special Nick Piggin
2008-05-25 14:48 Nick Piggin
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=20080328040442.GE8083@wotan.suse.de \
--to=npiggin@suse.de \
--cc=akpm@linux-foundation.org \
--cc=axboe@oracle.com \
--cc=davem@davemloft.net \
--cc=linux-arch@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=shaggy@austin.ibm.com \
--cc=torvalds@linux-foundation.org \
/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;
as well as URLs for NNTP newsgroup(s).