All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mel Gorman <mel@csn.ul.ie>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-mm@kvack.org, libhugetlbfs-devel@lists.sourceforge.net,
	linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org,
	abh@cray.com, ebmunson@us.ibm.com
Subject: Re: [RFC] [PATCH 0/5 V2] Huge page backed user-space stacks
Date: Thu, 31 Jul 2008 11:31:38 +0100	[thread overview]
Message-ID: <20080731103137.GD1704@csn.ul.ie> (raw)
In-Reply-To: <20080730130709.eb541475.akpm@linux-foundation.org>

On (30/07/08 13:07), Andrew Morton didst pronounce:
> On Wed, 30 Jul 2008 20:30:10 +0100
> Mel Gorman <mel@csn.ul.ie> wrote:
> 
> > With Erics patch and libhugetlbfs, we can automatically back text/data[1],
> > malloc[2] and stacks without source modification. Fairly soon, libhugetlbfs
> > will also be able to override shmget() to add SHM_HUGETLB. That should cover
> > a lot of the memory-intensive apps without source modification.
> 
> The weak link in all of this still might be the need to reserve
> hugepages and the unreliability of dynamically allocating them.
> 
> The dynamic allocation should be better nowadays, but I've lost track
> of how reliable it really is.  What's our status there?
> 

We are a lot more reliable than we were although exact quantification is
difficult because it's workload dependent. For a long time, I've been able
to test bits and pieces with hugepages by allocating the pool at the time
I needed it even after days of uptime. Previously this required a reboot.

I've also been able to use the dynamic hugepage pool resizing effectively
and we track how much it is succeeding and failing in /proc/vmstat (see the
htlb fields) to watch for problems. Between that and /proc/pagetypeinfo, I am
expecting to be able to identify availablilty problems. As an administrator
can now set a minimum pool size and the maximum size of the pool (nr_hugepages
and nr_overcommit_hugepages), the configuration difficulties should be relaxed.

If it is found that anti-fragmentation can be broken down and pool
resizing starts failing after X amount of time on Y workloads, there is
still the option of using movablecore=BiggestPoolSizeIWillEverNeed
and writing 1 to /proc/sys/vm/hugepages_treat_as_movable so the hugepage
pool can grow/shrink reliably there.

Overall, it's in pretty good shape.

To be fair, one snag is that that swap is almost required for pool
resizing to work as I never pushed to complete memory compaction
(http://lwn.net/Articles/238837/).  Hence, we depend on the workload to
have lots of filesystem-backed data for lumpy-reclaim to do its job, for
pool resizing to take place between batch jobs or for swap to be configured
even if it's just for the duration of a pool resize.

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mel@csn.ul.ie>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: ebmunson@us.ibm.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org,
	libhugetlbfs-devel@lists.sourceforge.net, abh@cray.com
Subject: Re: [RFC] [PATCH 0/5 V2] Huge page backed user-space stacks
Date: Thu, 31 Jul 2008 11:31:38 +0100	[thread overview]
Message-ID: <20080731103137.GD1704@csn.ul.ie> (raw)
In-Reply-To: <20080730130709.eb541475.akpm@linux-foundation.org>

On (30/07/08 13:07), Andrew Morton didst pronounce:
> On Wed, 30 Jul 2008 20:30:10 +0100
> Mel Gorman <mel@csn.ul.ie> wrote:
> 
> > With Erics patch and libhugetlbfs, we can automatically back text/data[1],
> > malloc[2] and stacks without source modification. Fairly soon, libhugetlbfs
> > will also be able to override shmget() to add SHM_HUGETLB. That should cover
> > a lot of the memory-intensive apps without source modification.
> 
> The weak link in all of this still might be the need to reserve
> hugepages and the unreliability of dynamically allocating them.
> 
> The dynamic allocation should be better nowadays, but I've lost track
> of how reliable it really is.  What's our status there?
> 

We are a lot more reliable than we were although exact quantification is
difficult because it's workload dependent. For a long time, I've been able
to test bits and pieces with hugepages by allocating the pool at the time
I needed it even after days of uptime. Previously this required a reboot.

I've also been able to use the dynamic hugepage pool resizing effectively
and we track how much it is succeeding and failing in /proc/vmstat (see the
htlb fields) to watch for problems. Between that and /proc/pagetypeinfo, I am
expecting to be able to identify availablilty problems. As an administrator
can now set a minimum pool size and the maximum size of the pool (nr_hugepages
and nr_overcommit_hugepages), the configuration difficulties should be relaxed.

If it is found that anti-fragmentation can be broken down and pool
resizing starts failing after X amount of time on Y workloads, there is
still the option of using movablecore=BiggestPoolSizeIWillEverNeed
and writing 1 to /proc/sys/vm/hugepages_treat_as_movable so the hugepage
pool can grow/shrink reliably there.

Overall, it's in pretty good shape.

To be fair, one snag is that that swap is almost required for pool
resizing to work as I never pushed to complete memory compaction
(http://lwn.net/Articles/238837/).  Hence, we depend on the workload to
have lots of filesystem-backed data for lumpy-reclaim to do its job, for
pool resizing to take place between batch jobs or for swap to be configured
even if it's just for the duration of a pool resize.

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mel@csn.ul.ie>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: ebmunson@us.ibm.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, linuxppc-dev@ozlabs.org,
	libhugetlbfs-devel@lists.sourceforge.net, abh@cray.com
Subject: Re: [RFC] [PATCH 0/5 V2] Huge page backed user-space stacks
Date: Thu, 31 Jul 2008 11:31:38 +0100	[thread overview]
Message-ID: <20080731103137.GD1704@csn.ul.ie> (raw)
In-Reply-To: <20080730130709.eb541475.akpm@linux-foundation.org>

On (30/07/08 13:07), Andrew Morton didst pronounce:
> On Wed, 30 Jul 2008 20:30:10 +0100
> Mel Gorman <mel@csn.ul.ie> wrote:
> 
> > With Erics patch and libhugetlbfs, we can automatically back text/data[1],
> > malloc[2] and stacks without source modification. Fairly soon, libhugetlbfs
> > will also be able to override shmget() to add SHM_HUGETLB. That should cover
> > a lot of the memory-intensive apps without source modification.
> 
> The weak link in all of this still might be the need to reserve
> hugepages and the unreliability of dynamically allocating them.
> 
> The dynamic allocation should be better nowadays, but I've lost track
> of how reliable it really is.  What's our status there?
> 

We are a lot more reliable than we were although exact quantification is
difficult because it's workload dependent. For a long time, I've been able
to test bits and pieces with hugepages by allocating the pool at the time
I needed it even after days of uptime. Previously this required a reboot.

I've also been able to use the dynamic hugepage pool resizing effectively
and we track how much it is succeeding and failing in /proc/vmstat (see the
htlb fields) to watch for problems. Between that and /proc/pagetypeinfo, I am
expecting to be able to identify availablilty problems. As an administrator
can now set a minimum pool size and the maximum size of the pool (nr_hugepages
and nr_overcommit_hugepages), the configuration difficulties should be relaxed.

If it is found that anti-fragmentation can be broken down and pool
resizing starts failing after X amount of time on Y workloads, there is
still the option of using movablecore=BiggestPoolSizeIWillEverNeed
and writing 1 to /proc/sys/vm/hugepages_treat_as_movable so the hugepage
pool can grow/shrink reliably there.

Overall, it's in pretty good shape.

To be fair, one snag is that that swap is almost required for pool
resizing to work as I never pushed to complete memory compaction
(http://lwn.net/Articles/238837/).  Hence, we depend on the workload to
have lots of filesystem-backed data for lumpy-reclaim to do its job, for
pool resizing to take place between batch jobs or for swap to be configured
even if it's just for the duration of a pool resize.

-- 
Mel Gorman
Part-time Phd Student                          Linux Technology Center
University of Limerick                         IBM Dublin Software Lab

--
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-07-31 10:31 UTC|newest]

Thread overview: 108+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-07-28 19:17 [RFC] [PATCH 0/5 V2] Huge page backed user-space stacks Eric Munson
2008-07-28 19:17 ` Eric Munson
2008-07-28 19:17 ` Eric Munson
2008-07-28 19:17 ` [PATCH 1/5 V2] Align stack boundaries based on personality Eric Munson
2008-07-28 19:17   ` Eric Munson
2008-07-28 19:17   ` Eric Munson
2008-07-28 20:09   ` Dave Hansen
2008-07-28 20:09     ` Dave Hansen
2008-07-28 20:09     ` Dave Hansen
2008-07-28 19:17 ` [PATCH 2/5 V2] Add shared and reservation control to hugetlb_file_setup Eric Munson
2008-07-28 19:17   ` Eric Munson
2008-07-28 19:17   ` Eric Munson
2008-07-28 19:17 ` [PATCH 3/5] Split boundary checking from body of do_munmap Eric Munson
2008-07-28 19:17   ` Eric Munson
2008-07-28 19:17   ` Eric Munson
2008-07-28 19:17 ` [PATCH 4/5 V2] Build hugetlb backed process stacks Eric Munson
2008-07-28 19:17   ` Eric Munson
2008-07-28 19:17   ` Eric Munson
2008-07-28 20:37   ` Dave Hansen
2008-07-28 20:37     ` Dave Hansen
2008-07-28 20:37     ` Dave Hansen
2008-07-28 19:17 ` [PATCH 5/5 V2] [PPC] Setup stack memory segment for hugetlb pages Eric Munson
2008-07-28 19:17   ` Eric Munson
2008-07-28 19:17   ` Eric Munson
2008-07-28 20:33 ` [RFC] [PATCH 0/5 V2] Huge page backed user-space stacks Dave Hansen
2008-07-28 20:33   ` Dave Hansen
2008-07-28 20:33   ` Dave Hansen
2008-07-28 21:23   ` Eric B Munson
2008-07-28 21:23     ` Eric B Munson
2008-07-30  8:41 ` Andrew Morton
2008-07-30  8:41   ` Andrew Morton
2008-07-30  8:41   ` Andrew Morton
2008-07-30 15:04   ` Eric B Munson
2008-07-30 15:04     ` Eric B Munson
2008-07-30 15:08   ` Eric B Munson
2008-07-30 15:08     ` Eric B Munson
2008-07-30  8:43 ` Andrew Morton
2008-07-30  8:43   ` Andrew Morton
2008-07-30  8:43   ` Andrew Morton
2008-07-30 17:23   ` Mel Gorman
2008-07-30 17:23     ` Mel Gorman
2008-07-30 17:23     ` Mel Gorman
2008-07-30 17:34     ` Andrew Morton
2008-07-30 17:34       ` Andrew Morton
2008-07-30 17:34       ` Andrew Morton
2008-07-30 19:30       ` Mel Gorman
2008-07-30 19:30         ` Mel Gorman
2008-07-30 19:30         ` Mel Gorman
2008-07-30 19:40         ` Christoph Lameter
2008-07-30 19:40           ` Christoph Lameter
2008-07-30 19:40           ` Christoph Lameter
2008-07-30 20:07         ` Andrew Morton
2008-07-30 20:07           ` Andrew Morton
2008-07-30 20:07           ` Andrew Morton
2008-07-31 10:31           ` Mel Gorman [this message]
2008-07-31 10:31             ` Mel Gorman
2008-07-31 10:31             ` Mel Gorman
2008-08-04 21:10             ` Dave Hansen
2008-08-04 21:10               ` Dave Hansen
2008-08-04 21:10               ` Dave Hansen
2008-08-05 11:11               ` Mel Gorman
2008-08-05 11:11                 ` Mel Gorman
2008-08-05 11:11                 ` Mel Gorman
2008-08-05 16:12                 ` Dave Hansen
2008-08-05 16:12                   ` Dave Hansen
2008-08-05 16:12                   ` Dave Hansen
2008-08-05 16:28                   ` Mel Gorman
2008-08-05 16:28                     ` Mel Gorman
2008-08-05 16:28                     ` Mel Gorman
2008-08-05 17:53                     ` Dave Hansen
2008-08-05 17:53                       ` Dave Hansen
2008-08-05 17:53                       ` Dave Hansen
2008-08-06  9:02                       ` Mel Gorman
2008-08-06  9:02                         ` Mel Gorman
2008-08-06  9:02                         ` Mel Gorman
2008-08-06 19:50                         ` Dave Hansen
2008-08-06 19:50                           ` Dave Hansen
2008-08-06 19:50                           ` Dave Hansen
2008-08-07 16:06                           ` Mel Gorman
2008-08-07 16:06                             ` Mel Gorman
2008-08-07 16:06                             ` Mel Gorman
2008-08-07 17:29                             ` Dave Hansen
2008-08-07 17:29                               ` Dave Hansen
2008-08-07 17:29                               ` Dave Hansen
2008-08-11  8:04                               ` Mel Gorman
2008-08-11  8:04                                 ` Mel Gorman
2008-08-11  8:04                                 ` Mel Gorman
2008-07-31  6:04       ` Nick Piggin
2008-07-31  6:04         ` Nick Piggin
2008-07-31  6:04         ` Nick Piggin
2008-07-31  6:14         ` Andrew Morton
2008-07-31  6:14           ` Andrew Morton
2008-07-31  6:14           ` Andrew Morton
2008-07-31  6:26           ` Nick Piggin
2008-07-31  6:26             ` Nick Piggin
2008-07-31  6:26             ` Nick Piggin
2008-07-31 11:27             ` Mel Gorman
2008-07-31 11:27               ` Mel Gorman
2008-07-31 11:27               ` Mel Gorman
2008-07-31 11:51               ` Nick Piggin
2008-07-31 11:51                 ` Nick Piggin
2008-07-31 11:51                 ` Nick Piggin
2008-07-31 13:50                 ` Mel Gorman
2008-07-31 13:50                   ` Mel Gorman
2008-07-31 13:50                   ` Mel Gorman
2008-07-31 14:32                   ` Michael Ellerman
2008-08-06 18:49       ` Andi Kleen
2008-08-06 18:49         ` Andi Kleen

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=20080731103137.GD1704@csn.ul.ie \
    --to=mel@csn.ul.ie \
    --cc=abh@cray.com \
    --cc=akpm@linux-foundation.org \
    --cc=ebmunson@us.ibm.com \
    --cc=libhugetlbfs-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linuxppc-dev@ozlabs.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 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.