Skip to content

Commit

Permalink
mm: remove cold parameter for release_pages
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
gormanm authored and torvalds committed Nov 16, 2017
1 parent 8667982 commit c6f92f9
Show file tree
Hide file tree
Showing 11 changed files with 18 additions and 20 deletions.
6 changes: 2 additions & 4 deletions drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
Original file line number Diff line number Diff line change
Expand Up @@ -553,8 +553,7 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p,
* invalidated it. Free it and try again
*/
release_pages(e->user_pages,
e->robj->tbo.ttm->num_pages,
false);
e->robj->tbo.ttm->num_pages);
kvfree(e->user_pages);
e->user_pages = NULL;
}
Expand Down Expand Up @@ -691,8 +690,7 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser *p,
continue;

release_pages(e->user_pages,
e->robj->tbo.ttm->num_pages,
false);
e->robj->tbo.ttm->num_pages);
kvfree(e->user_pages);
}
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ int amdgpu_gem_userptr_ioctl(struct drm_device *dev, void *data,
return 0;

free_pages:
release_pages(bo->tbo.ttm->pages, bo->tbo.ttm->num_pages, false);
release_pages(bo->tbo.ttm->pages, bo->tbo.ttm->num_pages);

unlock_mmap_sem:
up_read(&current->mm->mmap_sem);
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c
Original file line number Diff line number Diff line change
Expand Up @@ -659,7 +659,7 @@ int amdgpu_ttm_tt_get_user_pages(struct ttm_tt *ttm, struct page **pages)
return 0;

release_pages:
release_pages(pages, pinned, 0);
release_pages(pages, pinned);
return r;
}

Expand Down
6 changes: 3 additions & 3 deletions drivers/gpu/drm/etnaviv/etnaviv_gem.c
Original file line number Diff line number Diff line change
Expand Up @@ -779,7 +779,7 @@ static struct page **etnaviv_gem_userptr_do_get_pages(
up_read(&mm->mmap_sem);

if (ret < 0) {
release_pages(pvec, pinned, 0);
release_pages(pvec, pinned);
kvfree(pvec);
return ERR_PTR(ret);
}
Expand Down Expand Up @@ -852,7 +852,7 @@ static int etnaviv_gem_userptr_get_pages(struct etnaviv_gem_object *etnaviv_obj)
}
}

release_pages(pvec, pinned, 0);
release_pages(pvec, pinned);
kvfree(pvec);

work = kmalloc(sizeof(*work), GFP_KERNEL);
Expand Down Expand Up @@ -886,7 +886,7 @@ static void etnaviv_gem_userptr_release(struct etnaviv_gem_object *etnaviv_obj)
if (etnaviv_obj->pages) {
int npages = etnaviv_obj->base.size >> PAGE_SHIFT;

release_pages(etnaviv_obj->pages, npages, 0);
release_pages(etnaviv_obj->pages, npages);
kvfree(etnaviv_obj->pages);
}
put_task_struct(etnaviv_obj->userptr.task);
Expand Down
4 changes: 2 additions & 2 deletions drivers/gpu/drm/i915/i915_gem_userptr.c
Original file line number Diff line number Diff line change
Expand Up @@ -554,7 +554,7 @@ __i915_gem_userptr_get_pages_worker(struct work_struct *_work)
}
mutex_unlock(&obj->mm.lock);

release_pages(pvec, pinned, 0);
release_pages(pvec, pinned);
kvfree(pvec);

i915_gem_object_put(obj);
Expand Down Expand Up @@ -668,7 +668,7 @@ i915_gem_userptr_get_pages(struct drm_i915_gem_object *obj)
__i915_gem_userptr_set_active(obj, true);

if (IS_ERR(pages))
release_pages(pvec, pinned, 0);
release_pages(pvec, pinned);
kvfree(pvec);

return pages;
Expand Down
2 changes: 1 addition & 1 deletion drivers/gpu/drm/radeon/radeon_ttm.c
Original file line number Diff line number Diff line change
Expand Up @@ -597,7 +597,7 @@ static int radeon_ttm_tt_pin_userptr(struct ttm_tt *ttm)
kfree(ttm->sg);

release_pages:
release_pages(ttm->pages, pinned, 0);
release_pages(ttm->pages, pinned);
return r;
}

Expand Down
2 changes: 1 addition & 1 deletion fs/fuse/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -1636,7 +1636,7 @@ static int fuse_notify_store(struct fuse_conn *fc, unsigned int size,

static void fuse_retrieve_end(struct fuse_conn *fc, struct fuse_req *req)
{
release_pages(req->pages, req->num_pages, false);
release_pages(req->pages, req->num_pages);
}

static int fuse_retrieve(struct fuse_conn *fc, struct inode *inode,
Expand Down
2 changes: 1 addition & 1 deletion include/linux/pagemap.h
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ static inline void mapping_set_gfp_mask(struct address_space *m, gfp_t mask)
m->gfp_mask = mask;
}

void release_pages(struct page **pages, int nr, bool cold);
void release_pages(struct page **pages, int nr);

/*
* speculatively take a reference to a page.
Expand Down
2 changes: 1 addition & 1 deletion include/linux/swap.h
Original file line number Diff line number Diff line change
Expand Up @@ -510,7 +510,7 @@ static inline struct swap_info_struct *swp_swap_info(swp_entry_t entry)
#define free_page_and_swap_cache(page) \
put_page(page)
#define free_pages_and_swap_cache(pages, nr) \
release_pages((pages), (nr), false);
release_pages((pages), (nr));

static inline void show_swap_cache_info(void)
{
Expand Down
8 changes: 4 additions & 4 deletions mm/swap.c
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ static void pagevec_lru_move_fn(struct pagevec *pvec,
}
if (pgdat)
spin_unlock_irqrestore(&pgdat->lru_lock, flags);
release_pages(pvec->pages, pvec->nr, 0);
release_pages(pvec->pages, pvec->nr);
pagevec_reinit(pvec);
}

Expand Down Expand Up @@ -740,7 +740,7 @@ void lru_add_drain_all(void)
* Decrement the reference count on all the pages in @pages. If it
* fell to zero, remove the page from the LRU and free it.
*/
void release_pages(struct page **pages, int nr, bool cold)
void release_pages(struct page **pages, int nr)
{
int i;
LIST_HEAD(pages_to_free);
Expand Down Expand Up @@ -817,7 +817,7 @@ void release_pages(struct page **pages, int nr, bool cold)
spin_unlock_irqrestore(&locked_pgdat->lru_lock, flags);

mem_cgroup_uncharge_list(&pages_to_free);
free_hot_cold_page_list(&pages_to_free, cold);
free_hot_cold_page_list(&pages_to_free, 0);
}
EXPORT_SYMBOL(release_pages);

Expand All @@ -837,7 +837,7 @@ void __pagevec_release(struct pagevec *pvec)
lru_add_drain();
pvec->drained = true;
}
release_pages(pvec->pages, pagevec_count(pvec), 0);
release_pages(pvec->pages, pagevec_count(pvec));
pagevec_reinit(pvec);
}
EXPORT_SYMBOL(__pagevec_release);
Expand Down
2 changes: 1 addition & 1 deletion mm/swap_state.c
Original file line number Diff line number Diff line change
Expand Up @@ -319,7 +319,7 @@ void free_pages_and_swap_cache(struct page **pages, int nr)
lru_add_drain();
for (i = 0; i < nr; i++)
free_swap_cache(pagep[i]);
release_pages(pagep, nr, false);
release_pages(pagep, nr);
}

/*
Expand Down

0 comments on commit c6f92f9

Please sign in to comment.