diff options
-rw-r--r-- | include/linux/swap.h | 1 | ||||
-rw-r--r-- | mm/page_alloc.c | 1 | ||||
-rw-r--r-- | mm/swap.c | 4 |
3 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/swap.h b/include/linux/swap.h index 64a7dba67840..b86b5c20617d 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h | |||
@@ -223,6 +223,7 @@ extern void lru_add_page_tail(struct zone* zone, | |||
223 | extern void activate_page(struct page *); | 223 | extern void activate_page(struct page *); |
224 | extern void mark_page_accessed(struct page *); | 224 | extern void mark_page_accessed(struct page *); |
225 | extern void lru_add_drain(void); | 225 | extern void lru_add_drain(void); |
226 | extern void lru_add_drain_cpu(int cpu); | ||
226 | extern int lru_add_drain_all(void); | 227 | extern int lru_add_drain_all(void); |
227 | extern void rotate_reclaimable_page(struct page *page); | 228 | extern void rotate_reclaimable_page(struct page *page); |
228 | extern void deactivate_page(struct page *page); | 229 | extern void deactivate_page(struct page *page); |
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 98552cf1da8b..673596ad9c80 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -4825,6 +4825,7 @@ static int page_alloc_cpu_notify(struct notifier_block *self, | |||
4825 | int cpu = (unsigned long)hcpu; | 4825 | int cpu = (unsigned long)hcpu; |
4826 | 4826 | ||
4827 | if (action == CPU_DEAD || action == CPU_DEAD_FROZEN) { | 4827 | if (action == CPU_DEAD || action == CPU_DEAD_FROZEN) { |
4828 | lru_add_drain_cpu(cpu); | ||
4828 | drain_pages(cpu); | 4829 | drain_pages(cpu); |
4829 | 4830 | ||
4830 | /* | 4831 | /* |
@@ -496,7 +496,7 @@ static void lru_deactivate_fn(struct page *page, void *arg) | |||
496 | * Either "cpu" is the current CPU, and preemption has already been | 496 | * Either "cpu" is the current CPU, and preemption has already been |
497 | * disabled; or "cpu" is being hot-unplugged, and is already dead. | 497 | * disabled; or "cpu" is being hot-unplugged, and is already dead. |
498 | */ | 498 | */ |
499 | static void drain_cpu_pagevecs(int cpu) | 499 | void lru_add_drain_cpu(int cpu) |
500 | { | 500 | { |
501 | struct pagevec *pvecs = per_cpu(lru_add_pvecs, cpu); | 501 | struct pagevec *pvecs = per_cpu(lru_add_pvecs, cpu); |
502 | struct pagevec *pvec; | 502 | struct pagevec *pvec; |
@@ -553,7 +553,7 @@ void deactivate_page(struct page *page) | |||
553 | 553 | ||
554 | void lru_add_drain(void) | 554 | void lru_add_drain(void) |
555 | { | 555 | { |
556 | drain_cpu_pagevecs(get_cpu()); | 556 | lru_add_drain_cpu(get_cpu()); |
557 | put_cpu(); | 557 | put_cpu(); |
558 | } | 558 | } |
559 | 559 | ||