From: Ray Bryant <raybry@sgi.com>
To: Andrew Morton <akpm@osdl.org>
Cc: ak@suse.de, lse-tech@lists.sourceforge.net,
linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [Lse-tech] Re: Hugetlbpages in very large memory machines.......
Date: Mon, 15 Mar 2004 00:45:10 -0600 [thread overview]
Message-ID: <405550F6.1070203@sgi.com> (raw)
In-Reply-To: <20040314005737.7f57b8ad.akpm@osdl.org>
Andrew Morton wrote:
<unrelated text snipped>
>
> As for holding mmap_sem for too long, well, that can presumably be worked
> around by not mmapping the whole lot in one hit?
>
There are a number of places that one could do this (explicitly in user code,
hidden in library level, or in do_mmap2() where the mm->map_sem is taken).
I'm not happy with requiring the user to make a modification to solve this
kernel problem. Hiding the split has the problem of making sure that if any
of the sub mmap() operations fail then the rest of the mmap() operations have
to be undone, and this all has to happen in a way that makes the mmap() look
like a single system call.
An alternative would be put some info in the mm_struct indicating that a
hugetlb_prefault() is in progress, then drop the mm->mmap_sem while
hugetlb_prefault() is running. Once it is done, regrab the mm->mmap_sem,
clear the "in progress flag" and finish up processing. Any other mmap()
that got the mmap_sem and found the "in progress flag" set would have to
fail, perhaps with -EAGAIN (again, an mmap() extension). One can also
implement more elaborate schemes where there is a list of pending hugetlb
mmaps() with the associated address space ranges being listed; one could
check this list in get_unmapped_area() and return -EAGAIN if there is
a conflict.
I'd still rather see us do the "allocate on fault" approach with prereservation
to maintain the current ENOMEM return code from mmap() for hugepages. Let me
work on that and get back to y'all with a patch and see where we can go from
there. I'll start by taking a look at all of the arch dependent hugetlbpage.c's
and see how common they all are and move the common code up to mm/hugetlbpage.c.
(or did WLI's note imply that this is impossible?)
However, is this set of changes something that would still be accepted in 2.6,
or is this now a 2.7 discussion?
--
Best Regards,
Ray
-----------------------------------------------
Ray Bryant
512-453-9679 (work) 512-507-7807 (cell)
raybry@sgi.com raybry@austin.rr.com
The box said: "Requires Windows 98 or better",
so I installed Linux.
-----------------------------------------------
next prev parent reply other threads:[~2004-03-15 6:41 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-13 3:44 Hugetlbpages in very large memory machines Ray Bryant
2004-03-13 3:48 ` Andi Kleen
2004-03-13 5:49 ` William Lee Irwin III
2004-03-13 16:10 ` [Lse-tech] " Andi Kleen
2004-03-14 0:05 ` William Lee Irwin III
2004-03-14 5:22 ` Peter Chubb
[not found] ` <844231526.20040313030948@adinet.com.uy>
[not found] ` <20040313061232.GB655@holomorphy.com>
2004-03-13 16:32 ` Re[2]: " Luis Mirabal
2004-03-14 2:45 ` Andrew Morton
2004-03-14 4:06 ` [Lse-tech] " Anton Blanchard
2004-03-17 19:05 ` Andy Whitcroft
2004-03-18 20:25 ` Andrew Morton
2004-03-18 21:22 ` Stephen Smalley
2004-03-18 22:21 ` Andy Whitcroft
2004-03-23 17:30 ` Andy Whitcroft
2004-03-24 17:38 ` Andy Whitcroft
2004-03-14 8:38 ` Ray Bryant
2004-03-14 8:48 ` William Lee Irwin III
2004-03-14 8:57 ` Andrew Morton
2004-03-14 9:02 ` Andrew Morton
2004-03-14 9:07 ` William Lee Irwin III
2004-03-15 6:45 ` Ray Bryant [this message]
2004-03-15 23:54 ` William Lee Irwin III
2004-03-13 3:55 ` William Lee Irwin III
2004-03-13 4:56 ` Hirokazu Takahashi
2004-03-16 0:30 ` Nobuhiko Yoshida
2004-03-16 1:54 ` Andi Kleen
2004-03-16 2:32 ` Hirokazu Takahashi
2004-03-16 3:20 ` Hirokazu Takahashi
2004-03-16 3:15 ` Nobuhiko Yoshida
2004-04-01 9:10 ` Nobuhiko Yoshida
2004-03-15 15:28 ` jlnance
-- strict thread matches above, loose matches on Subject: below --
2004-03-15 23:31 [Lse-tech] " Seth, Rohit
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=405550F6.1070203@sgi.com \
--to=raybry@sgi.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lse-tech@lists.sourceforge.net \
/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