mm: memcontrol: remove the kmem states
Now the kmem states is only used to indicate whether the kmem is offline. However, we can set ->kmemcg_id to -1 to indicate whether the kmem is offline. Finally, we can remove the kmem states to simplify the code. Link: https://lkml.kernel.org/r/20211025125259.56624-1-songmuchun@bytedance.com Signed-off-by: Muchun Song <songmuchun@bytedance.com> Acked-by: Roman Gushchin <guro@fb.com> Cc: Michal Hocko <mhocko@kernel.org> Cc: Shakeel Butt <shakeelb@google.com> Cc: Matthew Wilcox (Oracle) <willy@infradead.org> Cc: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
6426886811
Коммит
e80216d9f1
|
@ -180,12 +180,6 @@ struct mem_cgroup_thresholds {
|
|||
struct mem_cgroup_threshold_ary *spare;
|
||||
};
|
||||
|
||||
enum memcg_kmem_state {
|
||||
KMEM_NONE,
|
||||
KMEM_ALLOCATED,
|
||||
KMEM_ONLINE,
|
||||
};
|
||||
|
||||
#if defined(CONFIG_SMP)
|
||||
struct memcg_padding {
|
||||
char x[0];
|
||||
|
@ -318,7 +312,6 @@ struct mem_cgroup {
|
|||
|
||||
#ifdef CONFIG_MEMCG_KMEM
|
||||
int kmemcg_id;
|
||||
enum memcg_kmem_state kmem_state;
|
||||
struct obj_cgroup __rcu *objcg;
|
||||
struct list_head objcg_list; /* list of inherited objcgs */
|
||||
#endif
|
||||
|
|
|
@ -3626,7 +3626,6 @@ static int memcg_online_kmem(struct mem_cgroup *memcg)
|
|||
return 0;
|
||||
|
||||
BUG_ON(memcg->kmemcg_id >= 0);
|
||||
BUG_ON(memcg->kmem_state);
|
||||
|
||||
memcg_id = memcg_alloc_cache_id();
|
||||
if (memcg_id < 0)
|
||||
|
@ -3643,7 +3642,6 @@ static int memcg_online_kmem(struct mem_cgroup *memcg)
|
|||
static_branch_enable(&memcg_kmem_enabled_key);
|
||||
|
||||
memcg->kmemcg_id = memcg_id;
|
||||
memcg->kmem_state = KMEM_ONLINE;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -3653,11 +3651,9 @@ static void memcg_offline_kmem(struct mem_cgroup *memcg)
|
|||
struct mem_cgroup *parent;
|
||||
int kmemcg_id;
|
||||
|
||||
if (memcg->kmem_state != KMEM_ONLINE)
|
||||
if (memcg->kmemcg_id == -1)
|
||||
return;
|
||||
|
||||
memcg->kmem_state = KMEM_ALLOCATED;
|
||||
|
||||
parent = parent_mem_cgroup(memcg);
|
||||
if (!parent)
|
||||
parent = root_mem_cgroup;
|
||||
|
@ -3676,6 +3672,7 @@ static void memcg_offline_kmem(struct mem_cgroup *memcg)
|
|||
memcg_drain_all_list_lrus(kmemcg_id, parent);
|
||||
|
||||
memcg_free_cache_id(kmemcg_id);
|
||||
memcg->kmemcg_id = -1;
|
||||
}
|
||||
#else
|
||||
static int memcg_online_kmem(struct mem_cgroup *memcg)
|
||||
|
|
Загрузка…
Ссылка в новой задаче