aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMel Gorman <mgorman@techsingularity.net>2017-11-15 20:37:55 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2017-11-15 21:21:06 -0500
commitc6f92f9fbe7dbcc8903a67229aa88b4077ae4422 (patch)
tree9462a6283a2e62aff9701ad10c92461eac9fdaf1
parent8667982014d6048e0b5e286b6247ff24f48d4cc6 (diff)
mm: remove cold parameter for release_pages
All callers of release_pages claim the pages being released are cache hot. As no one cares about the hotness of pages being released to the allocator, just ditch the parameter. No performance impact is expected as the overhead is marginal. The parameter is removed simply because it is a bit stupid to have a useless parameter copied everywhere. Link: http://lkml.kernel.org/r/20171018075952.10627-7-mgorman@techsingularity.net Signed-off-by: Mel Gorman <mgorman@techsingularity.net> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Andi Kleen <ak@linux.intel.com> Cc: Dave Chinner <david@fromorbit.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Jan Kara <jack@suse.cz> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c6
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c2
-rw-r--r--drivers/gpu/drm/etnaviv/etnaviv_gem.c6
-rw-r--r--drivers/gpu/drm/i915/i915_gem_userptr.c4
-rw-r--r--drivers/gpu/drm/radeon/radeon_ttm.c2
-rw-r--r--fs/fuse/dev.c2
-rw-r--r--include/linux/pagemap.h2
-rw-r--r--include/linux/swap.h2
-rw-r--r--mm/swap.c8
-rw-r--r--mm/swap_state.c2
11 files changed, 18 insertions, 20 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
index 60d8bedb694d..cd664832f9e8 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
@@ -553,8 +553,7 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p,
553 * invalidated it. Free it and try again 553 * invalidated it. Free it and try again
554 */ 554 */
555 release_pages(e->user_pages, 555 release_pages(e->user_pages,
556 e->robj->tbo.ttm->num_pages, 556 e->robj->tbo.ttm->num_pages);
557 false);
558 kvfree(e->user_pages); 557 kvfree(e->user_pages);
559 e->user_pages = NULL; 558 e->user_pages = NULL;
560 } 559 }
@@ -691,8 +690,7 @@ error_free_pages:
691 continue; 690 continue;
692 691
693 release_pages(e->user_pages, 692 release_pages(e->user_pages,
694 e->robj->tbo.ttm->num_pages, 693 e->robj->tbo.ttm->num_pages);
695 false);
696 kvfree(e->user_pages); 694 kvfree(e->user_pages);
697 } 695 }
698 } 696 }
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
index 6149a47fe63d..0bda8f2a188a 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
@@ -347,7 +347,7 @@ int amdgpu_gem_userptr_ioctl(struct drm_device *dev, void *data,
347 return 0; 347 return 0;
348 348
349free_pages: 349free_pages:
350 release_pages(bo->tbo.ttm->pages, bo->tbo.ttm->num_pages, false); 350 release_pages(bo->tbo.ttm->pages, bo->tbo.ttm->num_pages);
351 351
352unlock_mmap_sem: 352unlock_mmap_sem:
353 up_read(&current->mm->mmap_sem); 353 up_read(&current->mm->mmap_sem);
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
index bc746131987f..d792959fac43 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
@@ -659,7 +659,7 @@ int amdgpu_ttm_tt_get_user_pages(struct ttm_tt *ttm, struct page **pages)
659 return 0; 659 return 0;
660 660
661release_pages: 661release_pages:
662 release_pages(pages, pinned, 0); 662 release_pages(pages, pinned);
663 return r; 663 return r;
664} 664}
665 665
diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
index 57881167ccd2..bcc8c2d7c7c9 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c
@@ -779,7 +779,7 @@ static struct page **etnaviv_gem_userptr_do_get_pages(
779 up_read(&mm->mmap_sem); 779 up_read(&mm->mmap_sem);
780 780
781 if (ret < 0) { 781 if (ret < 0) {
782 release_pages(pvec, pinned, 0); 782 release_pages(pvec, pinned);
783 kvfree(pvec); 783 kvfree(pvec);
784 return ERR_PTR(ret); 784 return ERR_PTR(ret);
785 } 785 }
@@ -852,7 +852,7 @@ static int etnaviv_gem_userptr_get_pages(struct etnaviv_gem_object *etnaviv_obj)
852 } 852 }
853 } 853 }
854 854
855 release_pages(pvec, pinned, 0); 855 release_pages(pvec, pinned);
856 kvfree(pvec); 856 kvfree(pvec);
857 857
858 work = kmalloc(sizeof(*work), GFP_KERNEL); 858 work = kmalloc(sizeof(*work), GFP_KERNEL);
@@ -886,7 +886,7 @@ static void etnaviv_gem_userptr_release(struct etnaviv_gem_object *etnaviv_obj)
886 if (etnaviv_obj->pages) { 886 if (etnaviv_obj->pages) {
887 int npages = etnaviv_obj->base.size >> PAGE_SHIFT; 887 int npages = etnaviv_obj->base.size >> PAGE_SHIFT;
888 888
889 release_pages(etnaviv_obj->pages, npages, 0); 889 release_pages(etnaviv_obj->pages, npages);
890 kvfree(etnaviv_obj->pages); 890 kvfree(etnaviv_obj->pages);
891 } 891 }
892 put_task_struct(etnaviv_obj->userptr.task); 892 put_task_struct(etnaviv_obj->userptr.task);
diff --git a/drivers/gpu/drm/i915/i915_gem_userptr.c b/drivers/gpu/drm/i915/i915_gem_userptr.c
index 709efe2357ea..aa22361bd5a1 100644
--- a/drivers/gpu/drm/i915/i915_gem_userptr.c
+++ b/drivers/gpu/drm/i915/i915_gem_userptr.c
@@ -554,7 +554,7 @@ __i915_gem_userptr_get_pages_worker(struct work_struct *_work)
554 } 554 }
555 mutex_unlock(&obj->mm.lock); 555 mutex_unlock(&obj->mm.lock);
556 556
557 release_pages(pvec, pinned, 0); 557 release_pages(pvec, pinned);
558 kvfree(pvec); 558 kvfree(pvec);
559 559
560 i915_gem_object_put(obj); 560 i915_gem_object_put(obj);
@@ -668,7 +668,7 @@ i915_gem_userptr_get_pages(struct drm_i915_gem_object *obj)
668 __i915_gem_userptr_set_active(obj, true); 668 __i915_gem_userptr_set_active(obj, true);
669 669
670 if (IS_ERR(pages)) 670 if (IS_ERR(pages))
671 release_pages(pvec, pinned, 0); 671 release_pages(pvec, pinned);
672 kvfree(pvec); 672 kvfree(pvec);
673 673
674 return pages; 674 return pages;
diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
index bf69bf9086bf..1fdfc7a46072 100644
--- a/drivers/gpu/drm/radeon/radeon_ttm.c
+++ b/drivers/gpu/drm/radeon/radeon_ttm.c
@@ -597,7 +597,7 @@ release_sg:
597 kfree(ttm->sg); 597 kfree(ttm->sg);
598 598
599release_pages: 599release_pages:
600 release_pages(ttm->pages, pinned, 0); 600 release_pages(ttm->pages, pinned);
601 return r; 601 return r;
602} 602}
603 603
diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
index a42d89371748..17f0d05bfd4c 100644
--- a/fs/fuse/dev.c
+++ b/fs/fuse/dev.c
@@ -1636,7 +1636,7 @@ out_finish:
1636 1636
1637static void fuse_retrieve_end(struct fuse_conn *fc, struct fuse_req *req) 1637static void fuse_retrieve_end(struct fuse_conn *fc, struct fuse_req *req)
1638{ 1638{
1639 release_pages(req->pages, req->num_pages, false); 1639 release_pages(req->pages, req->num_pages);
1640} 1640}
1641 1641
1642static int fuse_retrieve(struct fuse_conn *fc, struct inode *inode, 1642static int fuse_retrieve(struct fuse_conn *fc, struct inode *inode,
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index e0f7181118fe..4c6790bb7afb 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -118,7 +118,7 @@ static inline void mapping_set_gfp_mask(struct address_space *m, gfp_t mask)
118 m->gfp_mask = mask; 118 m->gfp_mask = mask;
119} 119}
120 120
121void release_pages(struct page **pages, int nr, bool cold); 121void release_pages(struct page **pages, int nr);
122 122
123/* 123/*
124 * speculatively take a reference to a page. 124 * speculatively take a reference to a page.
diff --git a/include/linux/swap.h b/include/linux/swap.h
index 454f042bcdd5..c2b8128799c1 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -510,7 +510,7 @@ static inline struct swap_info_struct *swp_swap_info(swp_entry_t entry)
510#define free_page_and_swap_cache(page) \ 510#define free_page_and_swap_cache(page) \
511 put_page(page) 511 put_page(page)
512#define free_pages_and_swap_cache(pages, nr) \ 512#define free_pages_and_swap_cache(pages, nr) \
513 release_pages((pages), (nr), false); 513 release_pages((pages), (nr));
514 514
515static inline void show_swap_cache_info(void) 515static inline void show_swap_cache_info(void)
516{ 516{
diff --git a/mm/swap.c b/mm/swap.c
index 88a19b6cdf7c..29cf75f1a860 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -210,7 +210,7 @@ static void pagevec_lru_move_fn(struct pagevec *pvec,
210 } 210 }
211 if (pgdat) 211 if (pgdat)
212 spin_unlock_irqrestore(&pgdat->lru_lock, flags); 212 spin_unlock_irqrestore(&pgdat->lru_lock, flags);
213 release_pages(pvec->pages, pvec->nr, 0); 213 release_pages(pvec->pages, pvec->nr);
214 pagevec_reinit(pvec); 214 pagevec_reinit(pvec);
215} 215}
216 216
@@ -740,7 +740,7 @@ void lru_add_drain_all(void)
740 * Decrement the reference count on all the pages in @pages. If it 740 * Decrement the reference count on all the pages in @pages. If it
741 * fell to zero, remove the page from the LRU and free it. 741 * fell to zero, remove the page from the LRU and free it.
742 */ 742 */
743void release_pages(struct page **pages, int nr, bool cold) 743void release_pages(struct page **pages, int nr)
744{ 744{
745 int i; 745 int i;
746 LIST_HEAD(pages_to_free); 746 LIST_HEAD(pages_to_free);
@@ -817,7 +817,7 @@ void release_pages(struct page **pages, int nr, bool cold)
817 spin_unlock_irqrestore(&locked_pgdat->lru_lock, flags); 817 spin_unlock_irqrestore(&locked_pgdat->lru_lock, flags);
818 818
819 mem_cgroup_uncharge_list(&pages_to_free); 819 mem_cgroup_uncharge_list(&pages_to_free);
820 free_hot_cold_page_list(&pages_to_free, cold); 820 free_hot_cold_page_list(&pages_to_free, 0);
821} 821}
822EXPORT_SYMBOL(release_pages); 822EXPORT_SYMBOL(release_pages);
823 823
@@ -837,7 +837,7 @@ void __pagevec_release(struct pagevec *pvec)
837 lru_add_drain(); 837 lru_add_drain();
838 pvec->drained = true; 838 pvec->drained = true;
839 } 839 }
840 release_pages(pvec->pages, pagevec_count(pvec), 0); 840 release_pages(pvec->pages, pagevec_count(pvec));
841 pagevec_reinit(pvec); 841 pagevec_reinit(pvec);
842} 842}
843EXPORT_SYMBOL(__pagevec_release); 843EXPORT_SYMBOL(__pagevec_release);
diff --git a/mm/swap_state.c b/mm/swap_state.c
index 374d446f7a0a..39ae7cfad90f 100644
--- a/mm/swap_state.c
+++ b/mm/swap_state.c
@@ -319,7 +319,7 @@ void free_pages_and_swap_cache(struct page **pages, int nr)
319 lru_add_drain(); 319 lru_add_drain();
320 for (i = 0; i < nr; i++) 320 for (i = 0; i < nr; i++)
321 free_swap_cache(pagep[i]); 321 free_swap_cache(pagep[i]);
322 release_pages(pagep, nr, false); 322 release_pages(pagep, nr);
323} 323}
324 324
325/* 325/*