mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-25 14:13:01 -04:00
mm: restore zone->all_unreclaimable to independence word
commit e815af95 ("change all_unreclaimable zone member to flags") changed
all_unreclaimable member to bit flag. But it had an undesireble side
effect. free_one_page() is one of most hot path in linux kernel and
increasing atomic ops in it can reduce kernel performance a bit.
Thus, this patch revert such commit partially. at least
all_unreclaimable shouldn't share memory word with other zone flags.
[akpm@linux-foundation.org: fix patch interaction]
Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Minchan Kim <minchan.kim@gmail.com>
Cc: Huang Shijie <shijie8@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
fc91668eaf
commit
93e4a89a8c
4 changed files with 14 additions and 23 deletions
|
|
@ -306,6 +306,7 @@ struct zone {
|
|||
* free areas of different sizes
|
||||
*/
|
||||
spinlock_t lock;
|
||||
int all_unreclaimable; /* All pages pinned */
|
||||
#ifdef CONFIG_MEMORY_HOTPLUG
|
||||
/* see spanned/present_pages for more description */
|
||||
seqlock_t span_seqlock;
|
||||
|
|
@ -417,7 +418,6 @@ struct zone {
|
|||
} ____cacheline_internodealigned_in_smp;
|
||||
|
||||
typedef enum {
|
||||
ZONE_ALL_UNRECLAIMABLE, /* all pages pinned */
|
||||
ZONE_RECLAIM_LOCKED, /* prevents concurrent reclaim */
|
||||
ZONE_OOM_LOCKED, /* zone is in OOM killer zonelist */
|
||||
} zone_flags_t;
|
||||
|
|
@ -437,11 +437,6 @@ static inline void zone_clear_flag(struct zone *zone, zone_flags_t flag)
|
|||
clear_bit(flag, &zone->flags);
|
||||
}
|
||||
|
||||
static inline int zone_is_all_unreclaimable(const struct zone *zone)
|
||||
{
|
||||
return test_bit(ZONE_ALL_UNRECLAIMABLE, &zone->flags);
|
||||
}
|
||||
|
||||
static inline int zone_is_reclaim_locked(const struct zone *zone)
|
||||
{
|
||||
return test_bit(ZONE_RECLAIM_LOCKED, &zone->flags);
|
||||
|
|
|
|||
Loading…
Reference in a new issue