From: Christoph Hellwig <hch@infradead.org>
To: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Christoph Hellwig <hch@infradead.org>,
Nick Piggin <npiggin@suse.de>,
akpm@linux-foundation.org, hugh@veritas.com,
Linux Memory Management <linux-mm@kvack.org>
Subject: Re: [RFC/PATCH] prepare_unmapped_area
Date: Tue, 6 Feb 2007 10:23:12 +0000 [thread overview]
Message-ID: <20070206102312.GA11783@infradead.org> (raw)
In-Reply-To: <1170756442.2620.234.camel@localhost.localdomain>
On Tue, Feb 06, 2007 at 09:07:22PM +1100, Benjamin Herrenschmidt wrote:
>
> > Eeek, this is more than fugly. Dave Hansen suggested to move these
> > checks into a file operation in response to Adam Litke's hugetlb cleanups,
> > and this patch shows he was right :)
>
> No, you don't understand... There is a fops for get_unmapped_area for
> the "special" file. It's currently not called for MAP_FIXED but that can
> be fixed easily enough (in fact, I have a few ideas to clean up some of
> that code, it's already horrible today).
>
> The problem is to prevent something -else- from being mapped into one of
> those 256MB area once it's been switched to a different page size.
>
> Right now, this is done via this hugetlbfs specific hack. I want to
> have instead some way to have the arch "validate" the address after
> get_unmapped_area(), in addition, hugetlbfs wants to "prepare" but that
> could indeed be done in hugetlbfs provided fops->get_unmapped_area() if
> we call it for MAP_FIXED as well.
Can we extent mm->get_unmapped_area for that if it's called for !MAP_FIXED
aswell instead of adding yet another arch hook?
This area is getting a little bit too messy with all the pseudo-generic code
and lots of arch hooks. Personally I'd prefer to let get_unmapped_area
look like the following:
unsigned long
get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
unsigned long pgoff, unsigned long flags)
{
get_area = current->mm->get_unmapped_area;
if (file && file->f_op && file->f_op->get_unmapped_area)
get_area = file->f_op->get_unmapped_area;
addr = get_area(file, addr, len, pgoff, flags);
if (IS_ERR_VALUE(addr))
return addr;
}
aka mm->get_unmapped_area is mandatory, and all arch specific code
is move into it. We'd provide a default mm->get_unmapped_area that
doesn't even deal with hugetlb for all the trivial architectures,
and any arch that wants to do their own work can do all this through
a signle hook.
--
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:[~2007-02-06 10:23 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200702060405.l1645R7G009668@shell0.pdx.osdl.net>
[not found] ` <1170736938.2620.213.camel@localhost.localdomain>
[not found] ` <20070206044516.GA16647@wotan.suse.de>
2007-02-06 5:04 ` [RFC/PATCH] prepare_unmapped_area Benjamin Herrenschmidt
2007-02-06 5:31 ` Andrew Morton
2007-02-06 5:46 ` Benjamin Herrenschmidt
2007-02-06 5:58 ` Andrew Morton
2007-02-06 6:02 ` Benjamin Herrenschmidt
2007-02-06 6:08 ` Andrew Morton
2007-02-06 6:12 ` Nick Piggin
2007-02-06 6:37 ` Andrew Morton
2007-02-06 6:40 ` Nick Piggin
2007-02-06 6:54 ` Andrew Morton
2007-02-06 9:55 ` Christoph Hellwig
2007-02-06 10:07 ` Benjamin Herrenschmidt
2007-02-06 10:23 ` Christoph Hellwig [this message]
2007-02-06 15:56 ` Adam Litke
2007-02-06 20:12 ` Benjamin Herrenschmidt
2007-02-06 20:52 ` Adam Litke
2007-02-06 21:02 ` Benjamin Herrenschmidt
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=20070206102312.GA11783@infradead.org \
--to=hch@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=hugh@veritas.com \
--cc=linux-mm@kvack.org \
--cc=npiggin@suse.de \
/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).