Lines Matching full:thresholds

10  * Memory thresholds
3983 t = rcu_dereference(memcg->thresholds.primary); in __mem_cgroup_threshold()
4000 * Iterate backward over array of thresholds starting from in __mem_cgroup_threshold()
4002 * If none of thresholds below usage is crossed, we read in __mem_cgroup_threshold()
4012 * Iterate forward over array of thresholds starting from in __mem_cgroup_threshold()
4014 * If none of thresholds above usage is crossed, we read in __mem_cgroup_threshold()
4075 struct mem_cgroup_thresholds *thresholds; in __mem_cgroup_usage_register_event() local
4088 thresholds = &memcg->thresholds; in __mem_cgroup_usage_register_event()
4091 thresholds = &memcg->memsw_thresholds; in __mem_cgroup_usage_register_event()
4097 if (thresholds->primary) in __mem_cgroup_usage_register_event()
4100 size = thresholds->primary ? thresholds->primary->size + 1 : 1; in __mem_cgroup_usage_register_event()
4102 /* Allocate memory for new array of thresholds */ in __mem_cgroup_usage_register_event()
4110 /* Copy thresholds (if any) to new array */ in __mem_cgroup_usage_register_event()
4111 if (thresholds->primary) { in __mem_cgroup_usage_register_event()
4112 memcpy(new->entries, thresholds->primary->entries, (size - 1) * in __mem_cgroup_usage_register_event()
4120 /* Sort thresholds. Registering of new threshold isn't time-critical */ in __mem_cgroup_usage_register_event()
4139 kfree(thresholds->spare); in __mem_cgroup_usage_register_event()
4140 thresholds->spare = thresholds->primary; in __mem_cgroup_usage_register_event()
4142 rcu_assign_pointer(thresholds->primary, new); in __mem_cgroup_usage_register_event()
4144 /* To be sure that nobody uses thresholds */ in __mem_cgroup_usage_register_event()
4168 struct mem_cgroup_thresholds *thresholds; in __mem_cgroup_usage_unregister_event() local
4176 thresholds = &memcg->thresholds; in __mem_cgroup_usage_unregister_event()
4179 thresholds = &memcg->memsw_thresholds; in __mem_cgroup_usage_unregister_event()
4184 if (!thresholds->primary) in __mem_cgroup_usage_unregister_event()
4192 for (i = 0; i < thresholds->primary->size; i++) { in __mem_cgroup_usage_unregister_event()
4193 if (thresholds->primary->entries[i].eventfd != eventfd) in __mem_cgroup_usage_unregister_event()
4197 new = thresholds->spare; in __mem_cgroup_usage_unregister_event()
4199 /* Set thresholds array to NULL if we don't have thresholds */ in __mem_cgroup_usage_unregister_event()
4208 /* Copy thresholds and find current threshold */ in __mem_cgroup_usage_unregister_event()
4210 for (i = 0, j = 0; i < thresholds->primary->size; i++) { in __mem_cgroup_usage_unregister_event()
4211 if (thresholds->primary->entries[i].eventfd == eventfd) in __mem_cgroup_usage_unregister_event()
4214 new->entries[j] = thresholds->primary->entries[i]; in __mem_cgroup_usage_unregister_event()
4228 thresholds->spare = thresholds->primary; in __mem_cgroup_usage_unregister_event()
4230 rcu_assign_pointer(thresholds->primary, new); in __mem_cgroup_usage_unregister_event()
4232 /* To be sure that nobody uses thresholds */ in __mem_cgroup_usage_unregister_event()
4237 kfree(thresholds->spare); in __mem_cgroup_usage_unregister_event()
4238 thresholds->spare = NULL; in __mem_cgroup_usage_unregister_event()