All of lore.kernel.org
 help / color / mirror / Atom feed
From: Adam Litke <agl@us.ibm.com>
To: Nishanth Aravamudan <nacc@us.ibm.com>
Cc: npiggin@suse.de, akpm@linux-foundation.org, linux-mm@kvack.org,
	andi@firstfloor.org, kniht@linux.vnet.ibm.com, abh@cray.com,
	wli@holomorphy.com
Subject: Re: [patch 07/18] hugetlbfs: per mount hstates
Date: Mon, 28 Apr 2008 13:20:49 -0500	[thread overview]
Message-ID: <1209406849.2183.4.camel@localhost.localdomain> (raw)
In-Reply-To: <20080425223909.GF14623@us.ibm.com>

On Fri, 2008-04-25 at 15:39 -0700, Nishanth Aravamudan wrote: 
> On 25.04.2008 [13:36:39 -0700], Nishanth Aravamudan wrote:
> > On 25.04.2008 [11:09:33 -0700], Nishanth Aravamudan wrote:
> > > On 23.04.2008 [11:53:09 +1000], npiggin@suse.de wrote:
> > > > 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
> > > > 
> > > > [np: take hstate out of hugetlbfs inode and vma->vm_private_data]
> > > > 
> > > > Signed-off-by: Andi Kleen <ak@suse.de>
> > > > Signed-off-by: Nick Piggin <npiggin@suse.de>
> > > > ---
> > > >  fs/hugetlbfs/inode.c    |   48 ++++++++++++++++++++++++++++++++++++++----------
> > > >  include/linux/hugetlb.h |   14 +++++++++-----
> > > >  mm/hugetlb.c            |   16 +++-------------
> > > >  mm/memory.c             |   18 ++++++++++++++++--
> > > >  4 files changed, 66 insertions(+), 30 deletions(-)
> > > > 
> > > > Index: linux-2.6/include/linux/hugetlb.h
> > > > ===================================================================
> > > 
> > > <snip>
> > > 
> > > > @@ -226,19 +228,21 @@ extern struct hstate hstates[HUGE_MAX_HS
> > > > 
> > > >  #define global_hstate (hstates[0])
> > > > 
> > > > -static inline struct hstate *hstate_vma(struct vm_area_struct *vma)
> > > > +static inline struct hstate *hstate_inode(struct inode *i)
> > > >  {
> > > > -	return &global_hstate;
> > > > +	struct hugetlbfs_sb_info *hsb;
> > > > +	hsb = HUGETLBFS_SB(i->i_sb);
> > > > +	return hsb->hstate;
> > > >  }
> > > > 
> > > >  static inline struct hstate *hstate_file(struct file *f)
> > > >  {
> > > > -	return &global_hstate;
> > > > +	return hstate_inode(f->f_dentry->d_inode);
> > > >  }
> > > > 
> > > > -static inline struct hstate *hstate_inode(struct inode *i)
> > > > +static inline struct hstate *hstate_vma(struct vm_area_struct *vma)
> > > >  {
> > > > -	return &global_hstate;
> > > > +	return hstate_file(vma->vm_file);
> > > 
> > > Odd, diff seems to think you've moved these two functions around
> > > (hstate_{vma,inode})...
> > 
> > Err, duh, which of course you have to because of the definitions :)
> > 
> > However, doesn't this now make a core hugetlb functionality (which
> > really should only depend on CONFIG_HUGETLB_PAGE) depend on HUGETLBFS
> > being set to have access to HUGETLBFS_SB()? That seems to go in the
> > opposite direction from where we want to... Perhaps some of these
> > functions should be in the CONFIG_HUGETLBFS section of hugetlb.h?
> 
> Even if you don't move anything as I had originally suggested, I think
> you need to express the CONFIG_ dependencies more clearly (that now
> HUGETLB_PAGE depends on HUGETLBFS, afaict).
> 
> Urgh, there's actually other similar issue(s) in this file already...
> 
> if CONFIG_HUGETLBFS, is_file_hugepages() is defined and calls
> is_file_shm_hugepages(), but that is defined in shm.h, which is only
> included if CONFIG_HUGETLB_PAGE... Adam, that seems buggy? Is this just
> further evidence that our current separation of the two options is
> bull-honky?

Yeah.  I'd say there is little reason to separate them anymore.  I am
not an expert on the history here, but I suspect the original reason for
separating CONFIG_HUGETLBFS and CONFIG_HUGETLB_PAGE was a lack of
psychic abilities.  Hugetlbfs is ubiquitous now and there is no other
valid way to use huge pages.  Even SHM_HUGETLB shared memory segments
use hugetlbfs.

One thing you should check is which config options are required for the
hugetlb kernel mappings.  Otherwise, I think we are in the clear to
merge them.

-- 
Adam Litke - (agl at us.ibm.com)
IBM Linux Technology Center

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

  reply	other threads:[~2008-04-28 18:22 UTC|newest]

Thread overview: 123+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-04-23  1:53 [patch 00/18] multi size, and giant hugetlb page support, 1GB hugetlb for x86 npiggin
2008-04-23  1:53 ` [patch 01/18] hugetlb: fix lockdep spew npiggin
2008-04-23 13:06   ` KOSAKI Motohiro
2008-04-23  1:53 ` [patch 02/18] hugetlb: factor out huge_new_page npiggin
2008-04-24 23:49   ` Nishanth Aravamudan
2008-04-24 23:54   ` Nishanth Aravamudan
2008-04-24 23:58     ` Nishanth Aravamudan
2008-04-25  7:10       ` Andi Kleen
2008-04-25 16:54         ` Nishanth Aravamudan
2008-04-25 19:13           ` Christoph Lameter
2008-04-25 19:29             ` Nishanth Aravamudan
2008-04-30 19:16               ` Christoph Lameter
2008-04-30 20:44                 ` Nishanth Aravamudan
2008-05-01 19:23                   ` Christoph Lameter
2008-05-01 20:25                     ` Nishanth Aravamudan
2008-05-01 20:34                       ` Christoph Lameter
2008-05-01 21:01                         ` Nishanth Aravamudan
2008-05-23  5:03                           ` Nick Piggin
2008-04-23  1:53 ` [patch 03/18] mm: offset align in alloc_bootmem npiggin, Yinghai Lu
2008-04-23  1:53 ` [patch 04/18] hugetlb: modular state npiggin
2008-04-23 15:21   ` Jon Tollefson
2008-04-23 15:38     ` Nick Piggin
2008-04-25 17:13   ` Nishanth Aravamudan
2008-05-23  5:02     ` Nick Piggin
2008-05-23 20:48       ` Nishanth Aravamudan
2008-04-23  1:53 ` [patch 05/18] hugetlb: multiple hstates npiggin
2008-04-25 17:38   ` Nishanth Aravamudan
2008-04-25 17:48     ` Nishanth Aravamudan
2008-04-25 17:55     ` Andi Kleen
2008-04-25 17:52       ` Nishanth Aravamudan
2008-04-25 18:10         ` Andi Kleen
2008-04-28 10:13           ` Andy Whitcroft
2008-05-23  5:18     ` Nick Piggin
2008-04-29 17:27   ` Nishanth Aravamudan
2008-05-23  5:19     ` Nick Piggin
2008-04-23  1:53 ` [patch 06/18] hugetlb: multi hstate proc files npiggin
2008-05-02 19:53   ` Nishanth Aravamudan
2008-05-23  5:22     ` Nick Piggin
2008-05-23 20:30       ` Nishanth Aravamudan
2008-04-23  1:53 ` [patch 07/18] hugetlbfs: per mount hstates npiggin
2008-04-25 18:09   ` Nishanth Aravamudan
2008-04-25 20:36     ` Nishanth Aravamudan
2008-04-25 22:39       ` Nishanth Aravamudan
2008-04-28 18:20         ` Adam Litke [this message]
2008-04-28 18:46           ` Nishanth Aravamudan
2008-05-23  5:24     ` Nick Piggin
2008-05-23 20:34       ` Nishanth Aravamudan
2008-05-23 22:49         ` Nick Piggin
2008-05-23 23:24           ` Nishanth Aravamudan
2008-04-23  1:53 ` [patch 08/18] hugetlb: multi hstate sysctls npiggin
2008-04-25 18:14   ` Nishanth Aravamudan
2008-05-23  5:25     ` Nick Piggin
2008-05-23 20:27       ` Nishanth Aravamudan
2008-04-25 23:35   ` Nishanth Aravamudan
2008-05-23  5:28     ` Nick Piggin
2008-05-23 10:40       ` Andi Kleen
2008-04-23  1:53 ` [patch 09/18] hugetlb: abstract numa round robin selection npiggin
2008-04-23  1:53 ` [patch 10/18] mm: introduce non panic alloc_bootmem npiggin
2008-04-23  1:53 ` [patch 11/18] mm: export prep_compound_page to mm npiggin
2008-04-23 16:12   ` Andrew Hastings
2008-05-23  5:29     ` Nick Piggin
2008-04-23  1:53 ` [patch 12/18] hugetlbfs: support larger than MAX_ORDER npiggin
2008-04-23 16:15   ` Andrew Hastings
2008-04-23 16:25     ` Andi Kleen
2008-04-25 18:55   ` Nishanth Aravamudan
2008-05-23  5:29     ` Nick Piggin
2008-04-30 21:01   ` Dave Hansen
2008-05-23  5:30     ` Nick Piggin
2008-04-23  1:53 ` [patch 13/18] hugetlb: support boot allocate different sizes npiggin
2008-04-23 16:15   ` Andrew Hastings
2008-04-25 18:40   ` Nishanth Aravamudan
2008-04-25 18:50     ` Andi Kleen
2008-04-25 20:05       ` Nishanth Aravamudan
2008-05-23  5:36     ` Nick Piggin
2008-05-23  6:04       ` Nick Piggin
2008-05-23 20:32         ` Nishanth Aravamudan
2008-05-23 22:45           ` Nick Piggin
2008-05-23 22:53             ` Nishanth Aravamudan
2008-04-23  1:53 ` [patch 14/18] hugetlb: printk cleanup npiggin
2008-04-27  3:32   ` Nishanth Aravamudan
2008-05-23  5:37     ` Nick Piggin
2008-04-23  1:53 ` [patch 15/18] hugetlb: introduce huge_pud npiggin
2008-04-23  1:53 ` [patch 16/18] x86: support GB hugepages on 64-bit npiggin
2008-04-23  1:53 ` [patch 17/18] x86: add hugepagesz option " npiggin
2008-04-30 19:34   ` Nishanth Aravamudan
2008-04-30 19:52     ` Andi Kleen
2008-04-30 20:02       ` Nishanth Aravamudan
2008-04-30 20:19         ` Andi Kleen
2008-04-30 20:23           ` Nishanth Aravamudan
2008-04-30 20:45             ` Andi Kleen
2008-04-30 20:51               ` Nishanth Aravamudan
2008-04-30 20:40     ` Jon Tollefson
2008-04-30 20:48   ` Nishanth Aravamudan
2008-05-23  5:41     ` Nick Piggin
2008-05-23 10:43       ` Andi Kleen
2008-05-23 12:34         ` Nick Piggin
2008-05-23 14:29           ` Andi Kleen
2008-05-23 20:43             ` Nishanth Aravamudan
2008-05-23 20:39       ` Nishanth Aravamudan
2008-05-23 22:52         ` Nick Piggin
2008-04-23  1:53 ` [patch 18/18] hugetlb: my fixes 2 npiggin
2008-04-23 10:48   ` Andi Kleen
2008-04-23 15:36     ` Nick Piggin
2008-04-23 18:49     ` Nishanth Aravamudan
2008-04-23 19:37       ` Andi Kleen
2008-04-23 21:11         ` Nishanth Aravamudan
2008-04-23 21:38           ` Nishanth Aravamudan
2008-04-23 22:06           ` Dave Hansen
2008-04-23 15:20   ` Jon Tollefson
2008-04-23 15:44     ` Nick Piggin
2008-04-23  8:05 ` [patch 00/18] multi size, and giant hugetlb page support, 1GB hugetlb for x86 Andi Kleen
2008-04-23 15:34   ` Nick Piggin
2008-04-23 15:46     ` Andi Kleen
2008-04-23 15:53       ` Nick Piggin
2008-04-23 16:02         ` Andi Kleen
2008-04-23 16:02           ` Nick Piggin
2008-04-23 18:54           ` Nishanth Aravamudan
2008-04-23 18:52         ` Nishanth Aravamudan
2008-04-24  2:08           ` Nick Piggin
2008-04-24  6:43             ` Nishanth Aravamudan
2008-04-24  7:06               ` Nick Piggin
2008-04-24 17:08                 ` Nishanth Aravamudan
2008-04-23 18:43   ` Nishanth Aravamudan

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=1209406849.2183.4.camel@localhost.localdomain \
    --to=agl@us.ibm.com \
    --cc=abh@cray.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=kniht@linux.vnet.ibm.com \
    --cc=linux-mm@kvack.org \
    --cc=nacc@us.ibm.com \
    --cc=npiggin@suse.de \
    --cc=wli@holomorphy.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.