Commit 791cae96 authored by Vlastimil Babka's avatar Vlastimil Babka Committed by Linus Torvalds

mm, compaction: cleanup unused functions

Since kswapd compaction moved to kcompactd, compact_pgdat() is not
called anymore, so we remove it.  The only caller of __compact_pgdat()
is compact_node(), so we merge them and remove code that was only
reachable from kswapd.

Link: http://lkml.kernel.org/r/20160810091226.6709-3-vbabka@suse.czSigned-off-by: default avatarVlastimil Babka <vbabka@suse.cz>
Tested-by: default avatarLorenzo Stoakes <lstoakes@gmail.com>
Acked-by: default avatarMichal Hocko <mhocko@suse.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Rik van Riel <riel@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 06ed2998
...@@ -70,7 +70,6 @@ extern int fragmentation_index(struct zone *zone, unsigned int order); ...@@ -70,7 +70,6 @@ extern int fragmentation_index(struct zone *zone, unsigned int order);
extern enum compact_result try_to_compact_pages(gfp_t gfp_mask, extern enum compact_result try_to_compact_pages(gfp_t gfp_mask,
unsigned int order, unsigned int alloc_flags, unsigned int order, unsigned int alloc_flags,
const struct alloc_context *ac, enum compact_priority prio); const struct alloc_context *ac, enum compact_priority prio);
extern void compact_pgdat(pg_data_t *pgdat, int order);
extern void reset_isolation_suitable(pg_data_t *pgdat); extern void reset_isolation_suitable(pg_data_t *pgdat);
extern enum compact_result compaction_suitable(struct zone *zone, int order, extern enum compact_result compaction_suitable(struct zone *zone, int order,
unsigned int alloc_flags, int classzone_idx); unsigned int alloc_flags, int classzone_idx);
...@@ -154,10 +153,6 @@ extern void kcompactd_stop(int nid); ...@@ -154,10 +153,6 @@ extern void kcompactd_stop(int nid);
extern void wakeup_kcompactd(pg_data_t *pgdat, int order, int classzone_idx); extern void wakeup_kcompactd(pg_data_t *pgdat, int order, int classzone_idx);
#else #else
static inline void compact_pgdat(pg_data_t *pgdat, int order)
{
}
static inline void reset_isolation_suitable(pg_data_t *pgdat) static inline void reset_isolation_suitable(pg_data_t *pgdat)
{ {
} }
......
...@@ -1736,10 +1736,18 @@ enum compact_result try_to_compact_pages(gfp_t gfp_mask, unsigned int order, ...@@ -1736,10 +1736,18 @@ enum compact_result try_to_compact_pages(gfp_t gfp_mask, unsigned int order,
/* Compact all zones within a node */ /* Compact all zones within a node */
static void __compact_pgdat(pg_data_t *pgdat, struct compact_control *cc) static void compact_node(int nid)
{ {
pg_data_t *pgdat = NODE_DATA(nid);
int zoneid; int zoneid;
struct zone *zone; struct zone *zone;
struct compact_control cc = {
.order = -1,
.mode = MIGRATE_SYNC,
.ignore_skip_hint = true,
.whole_zone = true,
};
for (zoneid = 0; zoneid < MAX_NR_ZONES; zoneid++) { for (zoneid = 0; zoneid < MAX_NR_ZONES; zoneid++) {
...@@ -1747,53 +1755,19 @@ static void __compact_pgdat(pg_data_t *pgdat, struct compact_control *cc) ...@@ -1747,53 +1755,19 @@ static void __compact_pgdat(pg_data_t *pgdat, struct compact_control *cc)
if (!populated_zone(zone)) if (!populated_zone(zone))
continue; continue;
cc->nr_freepages = 0; cc.nr_freepages = 0;
cc->nr_migratepages = 0; cc.nr_migratepages = 0;
cc->zone = zone; cc.zone = zone;
INIT_LIST_HEAD(&cc->freepages); INIT_LIST_HEAD(&cc.freepages);
INIT_LIST_HEAD(&cc->migratepages); INIT_LIST_HEAD(&cc.migratepages);
if (is_via_compact_memory(cc->order) ||
!compaction_deferred(zone, cc->order))
compact_zone(zone, cc);
VM_BUG_ON(!list_empty(&cc->freepages));
VM_BUG_ON(!list_empty(&cc->migratepages));
if (is_via_compact_memory(cc->order)) compact_zone(zone, &cc);
continue;
if (zone_watermark_ok(zone, cc->order, VM_BUG_ON(!list_empty(&cc.freepages));
low_wmark_pages(zone), 0, 0)) VM_BUG_ON(!list_empty(&cc.migratepages));
compaction_defer_reset(zone, cc->order, false);
} }
} }
void compact_pgdat(pg_data_t *pgdat, int order)
{
struct compact_control cc = {
.order = order,
.mode = MIGRATE_ASYNC,
};
if (!order)
return;
__compact_pgdat(pgdat, &cc);
}
static void compact_node(int nid)
{
struct compact_control cc = {
.order = -1,
.mode = MIGRATE_SYNC,
.ignore_skip_hint = true,
.whole_zone = true,
};
__compact_pgdat(NODE_DATA(nid), &cc);
}
/* Compact all nodes in the system */ /* Compact all nodes in the system */
static void compact_nodes(void) static void compact_nodes(void)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment