Re: [PATCH 5/7] Add /proc trigger for memory compaction

From: David Rientjes
Date: Wed Jan 20 2010 - 15:48:25 EST

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.

I think it would be best to create a global /proc/sys/vm/compact trigger
that would walk all "compactable" zones system-wide and then a per-node
/sys/devices/system/node/nodeX/compact trigger for that particular node,
both with permissions 0200.

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. 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).
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at