mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-04 13:21:45 +00:00
Revert "mm: compaction: handle incorrect MIGRATE_UNMOVABLE type pageblocks"
This reverts commit 5ceb9ce6fe
.
That commit seems to be the cause of the mm compation list corruption
issues that Dave Jones reported. The locking (or rather, absense
there-of) is dubious, as is the use of the 'page' variable once it has
been found to be outside the pageblock range.
So revert it for now, we can re-visit this for 3.6. If we even need to:
as Minchan Kim says, "The patch wasn't a bug fix and even test workload
was very theoretical".
Reported-and-tested-by: Dave Jones <davej@redhat.com>
Acked-by: Hugh Dickins <hughd@google.com>
Acked-by: KOSAKI Motohiro <kosaki.motohiro@gmail.com>
Acked-by: Minchan Kim <minchan@kernel.org>
Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Kyungmin Park <kyungmin.park@samsung.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
752dc185da
commit
68e3e92620
4 changed files with 28 additions and 150 deletions
|
@ -1,8 +1,6 @@
|
|||
#ifndef _LINUX_COMPACTION_H
|
||||
#define _LINUX_COMPACTION_H
|
||||
|
||||
#include <linux/node.h>
|
||||
|
||||
/* Return values for compact_zone() and try_to_compact_pages() */
|
||||
/* compaction didn't start as it was not possible or direct reclaim was more suitable */
|
||||
#define COMPACT_SKIPPED 0
|
||||
|
@ -13,23 +11,6 @@
|
|||
/* The full zone was compacted */
|
||||
#define COMPACT_COMPLETE 3
|
||||
|
||||
/*
|
||||
* compaction supports three modes
|
||||
*
|
||||
* COMPACT_ASYNC_MOVABLE uses asynchronous migration and only scans
|
||||
* MIGRATE_MOVABLE pageblocks as migration sources and targets.
|
||||
* COMPACT_ASYNC_UNMOVABLE uses asynchronous migration and only scans
|
||||
* MIGRATE_MOVABLE pageblocks as migration sources.
|
||||
* MIGRATE_UNMOVABLE pageblocks are scanned as potential migration
|
||||
* targets and convers them to MIGRATE_MOVABLE if possible
|
||||
* COMPACT_SYNC uses synchronous migration and scans all pageblocks
|
||||
*/
|
||||
enum compact_mode {
|
||||
COMPACT_ASYNC_MOVABLE,
|
||||
COMPACT_ASYNC_UNMOVABLE,
|
||||
COMPACT_SYNC,
|
||||
};
|
||||
|
||||
#ifdef CONFIG_COMPACTION
|
||||
extern int sysctl_compact_memory;
|
||||
extern int sysctl_compaction_handler(struct ctl_table *table, int write,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue