linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: npiggin@suse.de
Cc: Nishanth Aravamudan <nacc@us.ibm.com>,
	linux-mm@kvack.org, kniht@us.ibm.com, andi@firstfloor.org,
	abh@cray.com, joachim.deguara@amd.com
Subject: Re: [patch 00/21] hugetlb multi size, giant hugetlb support, etc
Date: Wed, 4 Jun 2008 01:29:38 -0700	[thread overview]
Message-ID: <20080604012938.53b1003c.akpm@linux-foundation.org> (raw)
In-Reply-To: <20080603095956.781009952@amd.local0.net>

On Tue, 03 Jun 2008 19:59:56 +1000 npiggin@suse.de wrote:

> Hi,
> 
> Here is my submission to be merged in -mm. Given the amount of hunks this
> patchset has, and the recent flurry of hugetlb development work, I'd hope to
> get this merged up provided there aren't major issues (I would prefer to fix
> minor ones with incremental patches). It's just a lot of error prone work to
> track -mm when multiple concurrent development is happening.
> 
> Patch against latest mmotm.
> 
> 
> What I have done for the user API issues with this release is to take the
> safe way out and just maintain the existing hugepages user interfaces
> unchanged. I've integrated Nish's sysfs API to control the other huge
> page sizes.
> 
> I had initially opted to drop the /proc/sys/vm/* parts of the changes, but
> I found that the libhugetlbfs suite continued to have failures, so I
> decided to revert the multi column /proc/meminfo changes too, for now.
> 
> I say for now, because it is very easy to subsequently agree on some
> extention to the API, but it is much harder to revert such an extention once
> it has been made. I also think the main thing at this point is to get the
> existing patchset merged. User API changes I really don't want to worry
> with at the moment... point is: the infrastructure changes are a lot of
> work to code, but not so hard to get right; the user API changes are
> easy to code but harder to get right.
> 
> New to this patchset: I have implemented a default_hugepagesz= boot option
> (defaulting to the arch's HPAGE_SIZE if unspecified), which can be used to
> specify the default hugepage size for all /proc/* files, SHM, and default
> hugetlbfs mount size. This is the best compromise I could find to keep back
> compatibility while allowing the possibility to try different sizes with
> legacy code.
> 
> One thing I worry about is whether the sysfs API is going to be foward
> compatible with NUMA allocation changes that might be in the pipe.
> This need not hold up a merge into -mm, but I'd like some reassurances
> that thought is put in before it goes upstream.
> 
> Lastly, embarassingly, I'm not the best source of information for the
> sysfs tunables, so incremental patches against Documentation/ABI would
> be welcome :P
> 

I think I'll duck this iteration.  Partly because I was unable to work
out how nacky the feedback for 14/21 was, but mainly because I don't
know what it all does, because none of the above explains this.

Can't review it if I don't know what it's all trying to do.

Things like this:

: Large, but rather mechanical patch that converts most of the hugetlb.c
: globals into structure members and passes them around.
: 
: Right now there is only a single global hstate structure, but 
: most of the infrastructure to extend it is there.

OK, but it didn't tell us why we want multiple hstate structures.

: Add basic support for more than one hstate in hugetlbfs
: 
: - Convert hstates to an array
: - Add a first default entry covering the standard huge page size
: - Add functions for architectures to register new hstates
: - Add basic iterators over hstates

And neither did that.

One for each hugepage size, I'd guess.

: Add support to have individual hstates for each hugetlbfs mount
: 
: - Add a new pagesize= option to the hugetlbfs mount that allows setting
: the page size
: - Set up pointers to a suitable hstate for the set page size option
: to the super block and the inode and the vma.
: - Change the hstate accessors to use this information
: - Add code to the hstate init function to set parsed_hstate for command
: line processing
: - Handle duplicated hstate registrations to the make command line user proof

Nope, wrong guess.  It's one per mountpoint.

So now I'm seeing (I think) that the patchset does indeed implement
multiple page-size hugepages, and that it it does this by making an
entire hugetlb mountpoint have a single-but-settable pagesize.

All pretty straightforward stuff, unless I'm missing something.  But
please do spell it out because surely there's stuff in here which I
will miss from the implementation and the skimpy changelog.

Please don't think I'm being anal here - changelogging matters.  It
makes review more effective and it allows reviewers to find problems
which they would otherwise have overlooked.  btdt, lots of times.

--
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>

  parent reply	other threads:[~2008-06-04  8:29 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-03  9:59 npiggin
2008-06-03  9:59 ` [patch 01/21] hugetlb: factor out prep_new_huge_page npiggin
2008-06-03  9:59 ` [patch 02/21] hugetlb: modular state npiggin
2008-06-03 10:58   ` [patch 02/21] hugetlb: modular state (take 2) Nick Piggin
2008-06-03  9:59 ` [patch 03/21] hugetlb: multiple hstates npiggin
2008-06-03 10:00 ` [patch 04/21] hugetlbfs: per mount hstates npiggin
2008-06-03 10:00 ` [patch 05/21] hugetlb: new sysfs interface npiggin
2008-06-03 10:00 ` [patch 06/21] hugetlb: abstract numa round robin selection npiggin
2008-06-03 10:00 ` [patch 07/21] mm: introduce non panic alloc_bootmem npiggin
2008-06-03 10:00 ` [patch 08/21] mm: export prep_compound_page to mm npiggin
2008-06-03 10:00 ` [patch 09/21] hugetlb: support larger than MAX_ORDER npiggin
2008-06-03 10:00 ` [patch 10/21] hugetlb: support boot allocate different sizes npiggin
2008-06-03 10:00 ` [patch 11/21] hugetlb: printk cleanup npiggin
2008-06-03 10:00 ` [patch 12/21] hugetlb: introduce pud_huge npiggin
2008-06-03 10:00 ` [patch 13/21] x86: support GB hugepages on 64-bit npiggin
2008-06-03 10:00 ` [patch 14/21] x86: add hugepagesz option " npiggin
2008-06-03 17:48   ` Dave Hansen
2008-06-03 18:24     ` Andi Kleen
2008-06-03 18:59       ` Dave Hansen
2008-06-03 20:57         ` Andi Kleen
2008-06-03 21:27           ` Dave Hansen
2008-06-04  0:06             ` Andi Kleen
2008-06-04  1:04               ` Nick Piggin
2008-06-04 16:01                 ` Dave Hansen
2008-06-06 16:09                   ` Dave Hansen
2008-06-05 23:15               ` Nishanth Aravamudan
2008-06-06  0:29                 ` Andi Kleen
2008-06-04  1:10           ` Nick Piggin
2008-06-05 23:12             ` Nishanth Aravamudan
2008-06-05 23:23               ` Nishanth Aravamudan
2008-06-03 19:00       ` Dave Hansen
2008-06-03 10:00 ` [patch 15/21] hugetlb: override default huge page size npiggin
2008-06-03 10:00 ` [patch 16/21] hugetlb: allow arch overried hugepage allocation npiggin
2008-06-03 10:00 ` [patch 17/21] powerpc: function to allocate gigantic hugepages npiggin
2008-06-03 10:00 ` [patch 18/21] powerpc: scan device tree for gigantic pages npiggin
2008-06-03 10:00 ` [patch 19/21] powerpc: define support for 16G hugepages npiggin
2008-06-03 10:00 ` [patch 20/21] fs: check for statfs overflow npiggin
2008-06-03 10:00 ` [patch 21/21] powerpc: support multiple hugepage sizes npiggin
2008-06-03 10:29 ` [patch 1/1] x86: get_user_pages_lockless support 1GB hugepages Nick Piggin
2008-06-03 10:57 ` [patch 00/21] hugetlb multi size, giant hugetlb support, etc Nick Piggin
2008-06-06 17:12   ` Andy Whitcroft
2008-06-04  8:29 ` Andrew Morton [this message]
2008-06-04  9:35   ` Nick Piggin
2008-06-04  9:46     ` Andrew Morton
2008-06-04 11:04       ` Nick Piggin
2008-06-04 11:33       ` Nick Piggin
2008-06-04 11:57   ` Andi Kleen
2008-06-04 18:39     ` Andrew Morton

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=20080604012938.53b1003c.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=abh@cray.com \
    --cc=andi@firstfloor.org \
    --cc=joachim.deguara@amd.com \
    --cc=kniht@us.ibm.com \
    --cc=linux-mm@kvack.org \
    --cc=nacc@us.ibm.com \
    --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