Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Mel Gorman and committed by
Linus Torvalds
c6f92f9f 86679820

+18 -20
+2 -4
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
··· 553 553 * invalidated it. Free it and try again 554 554 */ 555 555 release_pages(e->user_pages, 556 - e->robj->tbo.ttm->num_pages, 557 - false); 556 + e->robj->tbo.ttm->num_pages); 558 557 kvfree(e->user_pages); 559 558 e->user_pages = NULL; 560 559 } ··· 690 691 continue; 691 692 692 693 release_pages(e->user_pages, 693 - e->robj->tbo.ttm->num_pages, 694 - false); 694 + e->robj->tbo.ttm->num_pages); 695 695 kvfree(e->user_pages); 696 696 } 697 697 }
+1 -1
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
··· 347 347 return 0; 348 348 349 349 free_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 352 352 unlock_mmap_sem: 353 353 up_read(&current->mm->mmap_sem);
+1 -1
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
··· 659 659 return 0; 660 660 661 661 release_pages: 662 - release_pages(pages, pinned, 0); 662 + release_pages(pages, pinned); 663 663 return r; 664 664 } 665 665
+3 -3
drivers/gpu/drm/etnaviv/etnaviv_gem.c
··· 779 779 up_read(&mm->mmap_sem); 780 780 781 781 if (ret < 0) { 782 - release_pages(pvec, pinned, 0); 782 + release_pages(pvec, pinned); 783 783 kvfree(pvec); 784 784 return ERR_PTR(ret); 785 785 } ··· 852 852 } 853 853 } 854 854 855 - release_pages(pvec, pinned, 0); 855 + release_pages(pvec, pinned); 856 856 kvfree(pvec); 857 857 858 858 work = kmalloc(sizeof(*work), GFP_KERNEL); ··· 886 886 if (etnaviv_obj->pages) { 887 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 890 kvfree(etnaviv_obj->pages); 891 891 } 892 892 put_task_struct(etnaviv_obj->userptr.task);
+2 -2
drivers/gpu/drm/i915/i915_gem_userptr.c
··· 554 554 } 555 555 mutex_unlock(&obj->mm.lock); 556 556 557 - release_pages(pvec, pinned, 0); 557 + release_pages(pvec, pinned); 558 558 kvfree(pvec); 559 559 560 560 i915_gem_object_put(obj); ··· 668 668 __i915_gem_userptr_set_active(obj, true); 669 669 670 670 if (IS_ERR(pages)) 671 - release_pages(pvec, pinned, 0); 671 + release_pages(pvec, pinned); 672 672 kvfree(pvec); 673 673 674 674 return pages;
+1 -1
drivers/gpu/drm/radeon/radeon_ttm.c
··· 597 597 kfree(ttm->sg); 598 598 599 599 release_pages: 600 - release_pages(ttm->pages, pinned, 0); 600 + release_pages(ttm->pages, pinned); 601 601 return r; 602 602 } 603 603
+1 -1
fs/fuse/dev.c
··· 1636 1636 1637 1637 static 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 1642 1642 static int fuse_retrieve(struct fuse_conn *fc, struct inode *inode,
+1 -1
include/linux/pagemap.h
··· 118 118 m->gfp_mask = mask; 119 119 } 120 120 121 - void release_pages(struct page **pages, int nr, bool cold); 121 + void release_pages(struct page **pages, int nr); 122 122 123 123 /* 124 124 * speculatively take a reference to a page.
+1 -1
include/linux/swap.h
··· 510 510 #define free_page_and_swap_cache(page) \ 511 511 put_page(page) 512 512 #define free_pages_and_swap_cache(pages, nr) \ 513 - release_pages((pages), (nr), false); 513 + release_pages((pages), (nr)); 514 514 515 515 static inline void show_swap_cache_info(void) 516 516 {
+4 -4
mm/swap.c
··· 210 210 } 211 211 if (pgdat) 212 212 spin_unlock_irqrestore(&pgdat->lru_lock, flags); 213 - release_pages(pvec->pages, pvec->nr, 0); 213 + release_pages(pvec->pages, pvec->nr); 214 214 pagevec_reinit(pvec); 215 215 } 216 216 ··· 740 740 * Decrement the reference count on all the pages in @pages. If it 741 741 * fell to zero, remove the page from the LRU and free it. 742 742 */ 743 - void release_pages(struct page **pages, int nr, bool cold) 743 + void release_pages(struct page **pages, int nr) 744 744 { 745 745 int i; 746 746 LIST_HEAD(pages_to_free); ··· 817 817 spin_unlock_irqrestore(&locked_pgdat->lru_lock, flags); 818 818 819 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 } 822 822 EXPORT_SYMBOL(release_pages); 823 823 ··· 837 837 lru_add_drain(); 838 838 pvec->drained = true; 839 839 } 840 - release_pages(pvec->pages, pagevec_count(pvec), 0); 840 + release_pages(pvec->pages, pagevec_count(pvec)); 841 841 pagevec_reinit(pvec); 842 842 } 843 843 EXPORT_SYMBOL(__pagevec_release);
+1 -1
mm/swap_state.c
··· 319 319 lru_add_drain(); 320 320 for (i = 0; i < nr; i++) 321 321 free_swap_cache(pagep[i]); 322 - release_pages(pagep, nr, false); 322 + release_pages(pagep, nr); 323 323 } 324 324 325 325 /*