Skip to content

Commit

Permalink
mm: kmem: cleanup (__)memcg_kmem_charge_memcg() arguments
Browse files Browse the repository at this point in the history
Patch series "mm: memcg: kmem API cleanup", v2.

This patchset aims to clean up the kernel memory charging API.  It doesn't
bring any functional changes, just removes unused arguments, renames some
functions and fixes some comments.

Currently it's not obvious which functions are most basic
(memcg_kmem_(un)charge_memcg()) and which are based on them
(memcg_kmem_(un)charge()).  The patchset renames these functions and
removes unused arguments:

TL;DR:
was:
  memcg_kmem_charge_memcg(page, gfp, order, memcg)
  memcg_kmem_uncharge_memcg(memcg, nr_pages)
  memcg_kmem_charge(page, gfp, order)
  memcg_kmem_uncharge(page, order)

now:
  memcg_kmem_charge(memcg, gfp, nr_pages)
  memcg_kmem_uncharge(memcg, nr_pages)
  memcg_kmem_charge_page(page, gfp, order)
  memcg_kmem_uncharge_page(page, order)

This patch (of 6):

The first argument of memcg_kmem_charge_memcg() and
__memcg_kmem_charge_memcg() is the page pointer and it's not used.  Let's
drop it.

Memcg pointer is passed as the last argument.  Move it to the first place
for consistency with other memcg functions, e.g.
__memcg_kmem_uncharge_memcg() or try_charge().

Signed-off-by: Roman Gushchin <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Reviewed-by: Shakeel Butt <[email protected]>
Acked-by: Johannes Weiner <[email protected]>
Cc: Michal Hocko <[email protected]>
Cc: Vladimir Davydov <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
rgushchin authored and torvalds committed Apr 2, 2020
1 parent 4f103c6 commit 10eaec2
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 11 deletions.
9 changes: 4 additions & 5 deletions include/linux/memcontrol.h
Original file line number Diff line number Diff line change
Expand Up @@ -1369,8 +1369,7 @@ void memcg_kmem_put_cache(struct kmem_cache *cachep);
#ifdef CONFIG_MEMCG_KMEM
int __memcg_kmem_charge(struct page *page, gfp_t gfp, int order);
void __memcg_kmem_uncharge(struct page *page, int order);
int __memcg_kmem_charge_memcg(struct page *page, gfp_t gfp, int order,
struct mem_cgroup *memcg);
int __memcg_kmem_charge_memcg(struct mem_cgroup *memcg, gfp_t gfp, int order);
void __memcg_kmem_uncharge_memcg(struct mem_cgroup *memcg,
unsigned int nr_pages);

Expand Down Expand Up @@ -1407,11 +1406,11 @@ static inline void memcg_kmem_uncharge(struct page *page, int order)
__memcg_kmem_uncharge(page, order);
}

static inline int memcg_kmem_charge_memcg(struct page *page, gfp_t gfp,
int order, struct mem_cgroup *memcg)
static inline int memcg_kmem_charge_memcg(struct mem_cgroup *memcg, gfp_t gfp,
int order)
{
if (memcg_kmem_enabled())
return __memcg_kmem_charge_memcg(page, gfp, order, memcg);
return __memcg_kmem_charge_memcg(memcg, gfp, order);
return 0;
}

Expand Down
8 changes: 3 additions & 5 deletions mm/memcontrol.c
Original file line number Diff line number Diff line change
Expand Up @@ -2882,15 +2882,13 @@ void memcg_kmem_put_cache(struct kmem_cache *cachep)

/**
* __memcg_kmem_charge_memcg: charge a kmem page
* @page: page to charge
* @memcg: memory cgroup to charge
* @gfp: reclaim mode
* @order: allocation order
* @memcg: memory cgroup to charge
*
* Returns 0 on success, an error code on failure.
*/
int __memcg_kmem_charge_memcg(struct page *page, gfp_t gfp, int order,
struct mem_cgroup *memcg)
int __memcg_kmem_charge_memcg(struct mem_cgroup *memcg, gfp_t gfp, int order)
{
unsigned int nr_pages = 1 << order;
struct page_counter *counter;
Expand Down Expand Up @@ -2936,7 +2934,7 @@ int __memcg_kmem_charge(struct page *page, gfp_t gfp, int order)

memcg = get_mem_cgroup_from_current();
if (!mem_cgroup_is_root(memcg)) {
ret = __memcg_kmem_charge_memcg(page, gfp, order, memcg);
ret = __memcg_kmem_charge_memcg(memcg, gfp, order);
if (!ret) {
page->mem_cgroup = memcg;
__SetPageKmemcg(page);
Expand Down
2 changes: 1 addition & 1 deletion mm/slab.h
Original file line number Diff line number Diff line change
Expand Up @@ -365,7 +365,7 @@ static __always_inline int memcg_charge_slab(struct page *page,
return 0;
}

ret = memcg_kmem_charge_memcg(page, gfp, order, memcg);
ret = memcg_kmem_charge_memcg(memcg, gfp, order);
if (ret)
goto out;

Expand Down

0 comments on commit 10eaec2

Please sign in to comment.