All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mel Gorman <mel@csn.ul.ie>
To: David Rientjes <rientjes@google.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>,
	Christoph Lameter <cl@linux-foundation.org>,
	Adam Litke <agl@us.ibm.com>, Avi Kivity <avi@redhat.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 5/7] Add /proc trigger for memory compaction
Date: Thu, 21 Jan 2010 14:09:48 +0000	[thread overview]
Message-ID: <20100121140948.GJ5154@csn.ul.ie> (raw)
In-Reply-To: <alpine.DEB.2.00.1001201241540.6440@chino.kir.corp.google.com>

On Wed, Jan 20, 2010 at 12:48:05PM -0800, David Rientjes wrote:
> On Wed, 20 Jan 2010, Mel Gorman wrote:
> 
> > > With Lee's work on mempolicy-constrained hugepage allocations, there is a 
> > > use-case for this explicit trigger to be exported via sysfs in the 
> > > longterm:
> > 
> > True, although the per-node structures are only available on NUMA making
> > it necessary to have two interfaces. The per-node one is handy enough
> > because it would be just
> > 
> > /sys/devices/system/node/nodeX/compact_node
> > 	When written to, this node is compacted by the writing process
> > 
> > But there does not appear to be a "good" way of having a non-NUMA
> > interface. /sys/devices/system/node does not exist .... Does anyone
> > remember why !NUMA does not have a /sys/devices/system/node/node0? Is
> > there a good reason or was there just no point?
> > 
> 
> There doesn't seem to be a usecase for a fake node0 sysfs entry since it 
> would be a duplication of procfs.
> 

Indeed.

> I think it would be best to create a global /proc/sys/vm/compact trigger 
> that would walk all "compactable" zones system-wide

Easily done.

> and then a per-node 
> /sys/devices/system/node/nodeX/compact trigger for that particular node, 
> both with permissions 0200.
> 

Will work on this as an additional patch. It should be straight-forward
with the only care needing to be taken around memory hotplug as usual.

> It would be helpful to be able to determine what is "compactable" at the 
> same time by adding both global and per-node "compact_order" tunables that 
> would default to HUGETLB_PAGE_ORDER. 

Well, rather than having a separate tunable, writing a number to
/proc/sys/vm/compact could indicate the order if that trigger is now
working system-wide. Would that be suitable?

> Then, the corresponding "compact" 
> trigger would only do work if fill_contig_page_info() shows 
> !free_blocks_suitable for either all zones (global trigger) or each zone 
> in the node's zonelist (per-node trigger).
> 

Do you see a need for proc to act like this? I'm wondering if
try_to_compact_pages() already does what you're looking for except no
process is required to muck around in /proc or /sys.

I somewhat saw the /proc and /sys tunables being used for either debugging or
by a job scheduler that compacted one or more nodes before a new job started.

-- 
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: David Rientjes <rientjes@google.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>,
	Christoph Lameter <cl@linux-foundation.org>,
	Adam Litke <agl@us.ibm.com>, Avi Kivity <avi@redhat.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH 5/7] Add /proc trigger for memory compaction
Date: Thu, 21 Jan 2010 14:09:48 +0000	[thread overview]
Message-ID: <20100121140948.GJ5154@csn.ul.ie> (raw)
In-Reply-To: <alpine.DEB.2.00.1001201241540.6440@chino.kir.corp.google.com>

On Wed, Jan 20, 2010 at 12:48:05PM -0800, David Rientjes wrote:
> On Wed, 20 Jan 2010, Mel Gorman wrote:
> 
> > > With Lee's work on mempolicy-constrained hugepage allocations, there is a 
> > > use-case for this explicit trigger to be exported via sysfs in the 
> > > longterm:
> > 
> > True, although the per-node structures are only available on NUMA making
> > it necessary to have two interfaces. The per-node one is handy enough
> > because it would be just
> > 
> > /sys/devices/system/node/nodeX/compact_node
> > 	When written to, this node is compacted by the writing process
> > 
> > But there does not appear to be a "good" way of having a non-NUMA
> > interface. /sys/devices/system/node does not exist .... Does anyone
> > remember why !NUMA does not have a /sys/devices/system/node/node0? Is
> > there a good reason or was there just no point?
> > 
> 
> There doesn't seem to be a usecase for a fake node0 sysfs entry since it 
> would be a duplication of procfs.
> 

Indeed.

> I think it would be best to create a global /proc/sys/vm/compact trigger 
> that would walk all "compactable" zones system-wide

Easily done.

> and then a per-node 
> /sys/devices/system/node/nodeX/compact trigger for that particular node, 
> both with permissions 0200.
> 

Will work on this as an additional patch. It should be straight-forward
with the only care needing to be taken around memory hotplug as usual.

> It would be helpful to be able to determine what is "compactable" at the 
> same time by adding both global and per-node "compact_order" tunables that 
> would default to HUGETLB_PAGE_ORDER. 

Well, rather than having a separate tunable, writing a number to
/proc/sys/vm/compact could indicate the order if that trigger is now
working system-wide. Would that be suitable?

> Then, the corresponding "compact" 
> trigger would only do work if fill_contig_page_info() shows 
> !free_blocks_suitable for either all zones (global trigger) or each zone 
> in the node's zonelist (per-node trigger).
> 

Do you see a need for proc to act like this? I'm wondering if
try_to_compact_pages() already does what you're looking for except no
process is required to muck around in /proc or /sys.

I somewhat saw the /proc and /sys tunables being used for either debugging or
by a job scheduler that compacted one or more nodes before a new job started.

-- 
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:[~2010-01-21 14:10 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-06 16:26 [RFC-PATCH 0/7] Memory Compaction v1 Mel Gorman
2010-01-06 16:26 ` Mel Gorman
2010-01-06 16:26 ` [PATCH 1/7] Allow CONFIG_MIGRATION to be set without CONFIG_NUMA Mel Gorman
2010-01-06 16:26   ` Mel Gorman
2010-01-07 21:46   ` David Rientjes
2010-01-07 21:46     ` David Rientjes
2010-01-07 22:04     ` Christoph Lameter
2010-01-07 22:04       ` Christoph Lameter
2010-01-19 13:00     ` Mel Gorman
2010-01-19 13:00       ` Mel Gorman
2010-01-06 16:26 ` [PATCH 2/7] Export unusable free space index via /proc/pagetypeinfo Mel Gorman
2010-01-06 16:26   ` Mel Gorman
2010-01-06 17:10   ` Adam Litke
2010-01-06 17:10     ` Adam Litke
2010-01-06 17:29     ` Mel Gorman
2010-01-06 17:29       ` Mel Gorman
2010-01-06 23:21   ` Tim Pepper
2010-01-06 23:21     ` Tim Pepper
2010-01-28 22:27   ` David Rientjes
2010-01-28 22:27     ` David Rientjes
2010-02-05 10:23     ` Mel Gorman
2010-02-05 10:23       ` Mel Gorman
2010-02-05 21:40       ` David Rientjes
2010-02-05 21:40         ` David Rientjes
2010-02-08 12:10         ` Mel Gorman
2010-02-08 12:10           ` Mel Gorman
2010-01-06 16:26 ` [PATCH 3/7] Export fragmentation " Mel Gorman
2010-01-06 16:26   ` Mel Gorman
2010-01-06 16:26 ` [PATCH 4/7] Memory compaction core Mel Gorman
2010-01-06 16:26   ` Mel Gorman
2010-01-06 17:50   ` Mel Gorman
2010-01-06 17:50     ` Mel Gorman
2010-01-06 18:22     ` Mel Gorman
2010-01-06 18:22       ` Mel Gorman
2010-01-06 21:37   ` Andi Kleen
2010-01-06 21:37     ` Andi Kleen
2010-01-06 22:07     ` Mel Gorman
2010-01-06 22:07       ` Mel Gorman
2010-01-06 16:26 ` [PATCH 5/7] Add /proc trigger for memory compaction Mel Gorman
2010-01-06 16:26   ` Mel Gorman
2010-01-07 22:00   ` David Rientjes
2010-01-07 22:00     ` David Rientjes
2010-01-13 23:23     ` David Rientjes
2010-01-13 23:23       ` David Rientjes
2010-01-20  9:48       ` Mel Gorman
2010-01-20  9:48         ` Mel Gorman
2010-01-20  9:48     ` Mel Gorman
2010-01-20  9:48       ` Mel Gorman
2010-01-20 18:12       ` Christoph Lameter
2010-01-20 18:12         ` Christoph Lameter
2010-01-20 20:53         ` Mel Gorman
2010-01-20 20:53           ` Mel Gorman
2010-01-20 20:48       ` David Rientjes
2010-01-20 20:48         ` David Rientjes
2010-01-21 14:09         ` Mel Gorman [this message]
2010-01-21 14:09           ` Mel Gorman
2010-01-21 23:34           ` David Rientjes
2010-01-21 23:34             ` David Rientjes
2010-01-06 16:26 ` [PATCH 6/7] Direct compact when a high-order allocation fails Mel Gorman
2010-01-06 16:26   ` Mel Gorman
2010-01-06 16:26 ` [PATCH 7/7] Do not compact within a preferred zone after a compaction failure Mel Gorman
2010-01-06 16:26   ` Mel Gorman
2010-01-13 23:28   ` David Rientjes
2010-01-13 23:28     ` David Rientjes
2010-01-20  9:51     ` Mel Gorman
2010-01-20  9:51       ` Mel Gorman
2010-01-21  3:12 ` [RFC-PATCH 0/7] Memory Compaction v1 KOSAKI Motohiro
2010-01-21  3:12   ` KOSAKI Motohiro
2010-01-21 10:11   ` Mel Gorman
2010-01-21 10:11     ` Mel Gorman
2010-01-22  0:16     ` KOSAKI Motohiro
2010-01-22  0:16       ` KOSAKI Motohiro

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=20100121140948.GJ5154@csn.ul.ie \
    --to=mel@csn.ul.ie \
    --cc=aarcange@redhat.com \
    --cc=agl@us.ibm.com \
    --cc=avi@redhat.com \
    --cc=cl@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rientjes@google.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.