Lines Matching full:thresholds

438 		t = rcu_dereference(memcg->thresholds.primary);  in __mem_cgroup_threshold()
455 * Iterate backward over array of thresholds starting from in __mem_cgroup_threshold()
457 * If none of thresholds below usage is crossed, we read in __mem_cgroup_threshold()
467 * Iterate forward over array of thresholds starting from in __mem_cgroup_threshold()
469 * If none of thresholds above usage is crossed, we read in __mem_cgroup_threshold()
736 struct mem_cgroup_thresholds *thresholds; in __mem_cgroup_usage_register_event() local
749 thresholds = &memcg->thresholds; in __mem_cgroup_usage_register_event()
752 thresholds = &memcg->memsw_thresholds; in __mem_cgroup_usage_register_event()
758 if (thresholds->primary) in __mem_cgroup_usage_register_event()
761 size = thresholds->primary ? thresholds->primary->size + 1 : 1; in __mem_cgroup_usage_register_event()
763 /* Allocate memory for new array of thresholds */ in __mem_cgroup_usage_register_event()
771 /* Copy thresholds (if any) to new array */ in __mem_cgroup_usage_register_event()
772 if (thresholds->primary) in __mem_cgroup_usage_register_event()
773 memcpy(new->entries, thresholds->primary->entries, in __mem_cgroup_usage_register_event()
780 /* Sort thresholds. Registering of new threshold isn't time-critical */ in __mem_cgroup_usage_register_event()
799 kfree(thresholds->spare); in __mem_cgroup_usage_register_event()
800 thresholds->spare = thresholds->primary; in __mem_cgroup_usage_register_event()
802 rcu_assign_pointer(thresholds->primary, new); in __mem_cgroup_usage_register_event()
804 /* To be sure that nobody uses thresholds */ in __mem_cgroup_usage_register_event()
828 struct mem_cgroup_thresholds *thresholds; in __mem_cgroup_usage_unregister_event() local
836 thresholds = &memcg->thresholds; in __mem_cgroup_usage_unregister_event()
839 thresholds = &memcg->memsw_thresholds; in __mem_cgroup_usage_unregister_event()
844 if (!thresholds->primary) in __mem_cgroup_usage_unregister_event()
852 for (i = 0; i < thresholds->primary->size; i++) { in __mem_cgroup_usage_unregister_event()
853 if (thresholds->primary->entries[i].eventfd != eventfd) in __mem_cgroup_usage_unregister_event()
859 new = thresholds->spare; in __mem_cgroup_usage_unregister_event()
865 /* Set thresholds array to NULL if we don't have thresholds */ in __mem_cgroup_usage_unregister_event()
874 /* Copy thresholds and find current threshold */ in __mem_cgroup_usage_unregister_event()
876 for (i = 0, j = 0; i < thresholds->primary->size; i++) { in __mem_cgroup_usage_unregister_event()
877 if (thresholds->primary->entries[i].eventfd == eventfd) in __mem_cgroup_usage_unregister_event()
880 new->entries[j] = thresholds->primary->entries[i]; in __mem_cgroup_usage_unregister_event()
894 thresholds->spare = thresholds->primary; in __mem_cgroup_usage_unregister_event()
896 rcu_assign_pointer(thresholds->primary, new); in __mem_cgroup_usage_unregister_event()
898 /* To be sure that nobody uses thresholds */ in __mem_cgroup_usage_unregister_event()
903 kfree(thresholds->spare); in __mem_cgroup_usage_unregister_event()
904 thresholds->spare = NULL; in __mem_cgroup_usage_unregister_event()