From: Nick Piggin <npiggin@suse.de>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Hugh Dickins <hugh@veritas.com>,
Jared Hulbert <jaredeh@gmail.com>,
Carsten Otte <cotte@de.ibm.com>,
Martin Schwidefsky <schwidefsky@de.ibm.com>,
Heiko Carstens <heiko.carstens@de.ibm.com>,
linux-arch@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [patch 2/6] mm: introduce pte_special pte bit
Date: Sat, 19 Jan 2008 06:07:55 +0100 [thread overview]
Message-ID: <20080119050755.GA19722@wotan.suse.de> (raw)
In-Reply-To: <alpine.LFD.1.00.0801181448280.2957@woody.linux-foundation.org>
On Fri, Jan 18, 2008 at 03:03:03PM -0800, Linus Torvalds wrote:
>
>
> On Fri, 18 Jan 2008, Nick Piggin wrote:
> >
> > I thought in your last mail on the subject, that you had conceded the
> > vma-based scheme should stay, so I might have misunderstood that to mean
> > you would, reluctantly, go with the scheme. I guess I need to try a bit
> > harder ;)
>
> Yes, I did concede that apparently we cannot just mandate "let's just use
> a bit in the pte".
>
> So I do agree that we seem to be forced to have two different
> implementations: one for architectures where we can make use of a marker
> on the PTE itself (or perhaps some *other* way to distinguish things
> automatically), and one for the ones where we need to just be able
> to distinguish purely based on our own data structures.
Yep, thanks for the clarification.
> I just then didn't like the lack of abstraction.
>
> > How about taking a different approach. How about also having a pte_normal()
> > function.
>
> Well, one reason I'd prefer not to, is that I can well imagine an
> architecture that doesn't actually put the "normal" bit in the PTE itself,
> but in a separate data structure.
>
> In particular, let's say that you decide that
>
> - the architecture really doesn't have any space in the hw page tables
> - but for various reasons you *really* don't want to use the tricky
> "page->offset" logic etc
> - ..and you realize that PFNMAP and FIXMAP are actually very rare
>
> so..
>
> - you just associate each PFNMAP/FIXMAP vma with a simple bitmap that
> contains the "special" bit.
>
> It's actually not that hard to do. If you have an architecture-specific
> interface like
>
> struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr, pte_t pte);
>
> then it wouldn't be too hard at all to create a hash lookup on the VMA (or
> perhaps on a "vma, 256-page-aligned(addr)" tuple) to look up a bitmap, and
> then use the address to see if it was marked special or not.
>
> But yes, then you'd also need to have that extended
>
> set_special_pte_at(vma, addr, pfn, prot);
>
> interface to set that bit in that bitmap.
>
> See?
>
> Is it better than what we already have for the generic case? Possibly not.
> But I like abstractions that aren't tied to *one* particular
> implementation.
Well that's all true, but I would be a bit worried about architectures
inventing their own ways of doin gthings. I mean, _every_ implementation
needs to be understood by core mm/ developers; and conversely, none of
the architecture maintainers need to care a single bit about any of the
implementations if they provide some basic low level things to us.
So I'd argue that if someone really needed to invent another scheme, then
that should also be somehow folded into mm/ code if possible rather than
let the arch do it...
--
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-01-19 5:07 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20080118045649.334391000@suse.de>
2008-01-18 4:56 ` [patch 1/6] mm: introduce VM_MIXEDMAP npiggin, Jared Hulbert
2008-01-18 4:56 ` [patch 2/6] mm: introduce pte_special pte bit npiggin
2008-01-18 16:41 ` Linus Torvalds
2008-01-18 18:04 ` Sam Ravnborg
2008-01-18 18:28 ` Linus Torvalds
2008-01-18 18:53 ` Sam Ravnborg
2008-01-18 22:46 ` Nick Piggin
2008-01-18 23:03 ` Linus Torvalds
2008-01-19 5:07 ` Nick Piggin [this message]
2008-01-21 9:43 ` Nick Piggin
2008-01-18 4:56 ` [patch 3/6] mm: add vm_insert_mixed npiggin
2008-01-18 4:56 ` [patch 4/6] xip: support non-struct page backed memory npiggin
2008-03-01 8:14 ` Jared Hulbert
2008-03-03 5:29 ` Nick Piggin
2008-03-03 8:30 ` Carsten Otte
2008-03-03 15:59 ` Jared Hulbert
2008-03-03 8:18 ` Carsten Otte
2008-03-03 15:44 ` Jared Hulbert
2008-03-03 18:40 ` Linus Torvalds
2008-03-03 19:38 ` Jared Hulbert
2008-03-03 20:04 ` Linus Torvalds
2008-03-03 20:32 ` Nick Piggin
2008-03-03 22:21 ` Linus Torvalds
2008-03-03 23:25 ` Jared Hulbert
2008-03-04 9:06 ` Carsten Otte
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=20080119050755.GA19722@wotan.suse.de \
--to=npiggin@suse.de \
--cc=akpm@linux-foundation.org \
--cc=cotte@de.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=hugh@veritas.com \
--cc=jaredeh@gmail.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=schwidefsky@de.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