aboutsummaryrefslogtreecommitdiffstats
path: root/mm/memcontrol.c
diff options
context:
space:
mode:
authorLi Zefan <lizefan@huawei.com>2013-09-23 04:56:47 -0400
committerTejun Heo <tj@kernel.org>2013-09-23 21:44:15 -0400
commitb862783594847a1087cd18c8aeac5727608c3c67 (patch)
tree925b8f31cff32fe3bcc9422b2e6fddc1bf836641 /mm/memcontrol.c
parent4219b2da206b3787dea4950ec53ccbc203f50e5e (diff)
memcg: stop using css id
Now memcg uses cgroup id instead of css id. Update some comments and set mem_cgroup_subsys->use_id to 0. Signed-off-by: Li Zefan <lizefan@huawei.com> Acked-by: Michal Hocko <mhocko@suse.cz> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'mm/memcontrol.c')
-rw-r--r--mm/memcontrol.c24
1 files changed, 8 insertions, 16 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index c14039575608..65a46eff5c3d 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -582,16 +582,11 @@ static void disarm_sock_keys(struct mem_cgroup *memcg)
582#ifdef CONFIG_MEMCG_KMEM 582#ifdef CONFIG_MEMCG_KMEM
583/* 583/*
584 * This will be the memcg's index in each cache's ->memcg_params->memcg_caches. 584 * This will be the memcg's index in each cache's ->memcg_params->memcg_caches.
585 * There are two main reasons for not using the css_id for this: 585 * The main reason for not using cgroup id for this:
586 * 1) this works better in sparse environments, where we have a lot of memcgs, 586 * this works better in sparse environments, where we have a lot of memcgs,
587 * but only a few kmem-limited. Or also, if we have, for instance, 200 587 * but only a few kmem-limited. Or also, if we have, for instance, 200
588 * memcgs, and none but the 200th is kmem-limited, we'd have to have a 588 * memcgs, and none but the 200th is kmem-limited, we'd have to have a
589 * 200 entry array for that. 589 * 200 entry array for that.
590 *
591 * 2) In order not to violate the cgroup API, we would like to do all memory
592 * allocation in ->create(). At that point, we haven't yet allocated the
593 * css_id. Having a separate index prevents us from messing with the cgroup
594 * core for this
595 * 590 *
596 * The current size of the caches array is stored in 591 * The current size of the caches array is stored in
597 * memcg_limited_groups_array_size. It will double each time we have to 592 * memcg_limited_groups_array_size. It will double each time we have to
@@ -606,14 +601,14 @@ int memcg_limited_groups_array_size;
606 * cgroups is a reasonable guess. In the future, it could be a parameter or 601 * cgroups is a reasonable guess. In the future, it could be a parameter or
607 * tunable, but that is strictly not necessary. 602 * tunable, but that is strictly not necessary.
608 * 603 *
609 * MAX_SIZE should be as large as the number of css_ids. Ideally, we could get 604 * MAX_SIZE should be as large as the number of cgrp_ids. Ideally, we could get
610 * this constant directly from cgroup, but it is understandable that this is 605 * this constant directly from cgroup, but it is understandable that this is
611 * better kept as an internal representation in cgroup.c. In any case, the 606 * better kept as an internal representation in cgroup.c. In any case, the
612 * css_id space is not getting any smaller, and we don't have to necessarily 607 * cgrp_id space is not getting any smaller, and we don't have to necessarily
613 * increase ours as well if it increases. 608 * increase ours as well if it increases.
614 */ 609 */
615#define MEMCG_CACHES_MIN_SIZE 4 610#define MEMCG_CACHES_MIN_SIZE 4
616#define MEMCG_CACHES_MAX_SIZE 65535 611#define MEMCG_CACHES_MAX_SIZE MEM_CGROUP_ID_MAX
617 612
618/* 613/*
619 * A lot of the calls to the cache allocation functions are expected to be 614 * A lot of the calls to the cache allocation functions are expected to be
@@ -5984,8 +5979,6 @@ static void __mem_cgroup_free(struct mem_cgroup *memcg)
5984 int node; 5979 int node;
5985 size_t size = memcg_size(); 5980 size_t size = memcg_size();
5986 5981
5987 free_css_id(&mem_cgroup_subsys, &memcg->css);
5988
5989 for_each_node(node) 5982 for_each_node(node)
5990 free_mem_cgroup_per_zone_info(memcg, node); 5983 free_mem_cgroup_per_zone_info(memcg, node);
5991 5984
@@ -6766,7 +6759,6 @@ struct cgroup_subsys mem_cgroup_subsys = {
6766 .bind = mem_cgroup_bind, 6759 .bind = mem_cgroup_bind,
6767 .base_cftypes = mem_cgroup_files, 6760 .base_cftypes = mem_cgroup_files,
6768 .early_init = 0, 6761 .early_init = 0,
6769 .use_id = 1,
6770}; 6762};
6771 6763
6772#ifdef CONFIG_MEMCG_SWAP 6764#ifdef CONFIG_MEMCG_SWAP