From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: David Howells <dhowells@redhat.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-arch@vger.kernel.org,
Linux Memory Management <linux-mm@kvack.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 0/14] Pass MAP_FIXED down to get_unmapped_area
Date: Thu, 05 Apr 2007 09:20:33 +1000 [thread overview]
Message-ID: <1175728833.30879.89.camel@localhost.localdomain> (raw)
In-Reply-To: <23370.1175682715@redhat.com>
On Wed, 2007-04-04 at 11:31 +0100, David Howells wrote:
> Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
>
> > This serie of patches moves the logic to handle MAP_FIXED down to the
> > various arch/driver get_unmapped_area() implementations, and then changes
> > the generic code to always call them. The hugetlbfs hacks then disappear
> > from the generic code.
>
> This sounds like get_unmapped_area() is now doing more than it says on the
> tin. As I understand it, it's to be called to locate an unmapped area when
> one wasn't specified by MAP_FIXED, and so shouldn't be called if MAP_FIXED is
> set.
Well... that was the initial implementation. But that doesn't quite deal
well with various issues like page size constraints like the segment
constraints on powerpc or other hugetlbfs realted issues, and the
aliasing problems on architectures with virtually caches...
Just look at how many architectures already have special case for
MAP_FIXED in their arch_get_unmapped_area ! It was never called so far
though, my patch makes it being called.
I agree it's probably not the best interface, but I'm still trying to
figure out something that would be nicer as a "second step", as I don't
want to do too much in one set of patches. This serie allows me to hook
in my SPE 64K page thingy, to cleanup & improve a bit my hugetlb
handling, and possibly fixes some of those aliasing issues on
architectures with virtual caches...
> Admittedly, on NOMMU, it's also used to find the location of quasi-memory
> devices such as framebuffers and ramfs files, but that's not a great deviation
> from the original intent.
>
> Perhaps a change of name is in order for the function?
I'm not sure. "get" can mean "obtain" :-) The way it's currently
implemented for me on powerpc works fine that way, I don't need an
"unget".
> > Since I need to do some special 64K pages mappings for SPEs on cell, I need
> > to work around the first problem at least. I have further patches thus
> > implementing a "slices" layer that handles multiple page sizes through
> > slices of the address space for use by hugetlbfs, the SPE code, and possibly
> > others, but it requires that serie of patches first/
>
> That makes it sound like there should be an "unget" too for when an error
> occurs between ->get_unmapped_area() being called and ->mmap() returning
> successfully.
I don't need it because I can flip the page size of the segment back if
it has no VMA in it on the next get_unmapped_area(). Again, I'd like to
come up with a better interface, and I might post something in that
direction next week, but I beleive those patches (+/- bug fixes) are a
good first step in the right direction. I also need to find a proper way
to solve the mremap problem as it's bogus as it is already with things
like hugetlbfs on powerpc at least.
Ben.
--
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-04-04 23:20 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-04 4:02 Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 1/14] get_unmapped_area handles MAP_FIXED on powerpc Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 2/14] get_unmapped_area handles MAP_FIXED on alpha Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 4/14] get_unmapped_area handles MAP_FIXED on frv Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 3/14] get_unmapped_area handles MAP_FIXED on arm Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 5/14] get_unmapped_area handles MAP_FIXED on i386 Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 6/14] get_unmapped_area handles MAP_FIXED on ia64 Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 7/14] get_unmapped_area handles MAP_FIXED on parisc Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 8/14] get_unmapped_area handles MAP_FIXED on sparc64 Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 9/14] get_unmapped_area handles MAP_FIXED on x86_64 Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 11/14] get_unmapped_area handles MAP_FIXED on ramfs (nommu) Benjamin Herrenschmidt
2007-04-04 10:16 ` David Howells
2007-04-04 23:13 ` Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 10/14] get_unmapped_area handles MAP_FIXED in hugetlbfs Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 13/14] get_unmapped_area handles MAP_FIXED in generic code Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 12/14] get_unmapped_area handles MAP_FIXED in /dev/mem (nommu) Benjamin Herrenschmidt
2007-04-04 10:31 ` David Howells
2007-04-04 23:14 ` Benjamin Herrenschmidt
2007-04-04 4:02 ` [PATCH 14/14] get_unmapped_area doesn't need hugetlbfs hacks anymore Benjamin Herrenschmidt
2007-04-04 10:31 ` [PATCH 0/14] Pass MAP_FIXED down to get_unmapped_area David Howells
2007-04-04 23:20 ` Benjamin Herrenschmidt [this message]
-- strict thread matches above, loose matches on Subject: below --
2007-04-04 4:01 Benjamin Herrenschmidt
2007-04-04 4:03 ` 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=1175728833.30879.89.camel@localhost.localdomain \
--to=benh@kernel.crashing.org \
--cc=akpm@linux-foundation.org \
--cc=dhowells@redhat.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.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