Re: [PATCH] memcg: make threshold index in the right position
From: Kirill A. Shutemov <hidden>
Date: 2012-02-02 12:26:54
Also in:
linux-mm
On Thu, Feb 02, 2012 at 07:08:44PM +0800, Sha Zhengju wrote:
On 02/02/2012 06:54 PM, Sha Zhengju wrote:quoted
On 02/02/2012 06:14 PM, Kirill A. Shutemov wrote:quoted
On Thu, Feb 02, 2012 at 05:45:19PM +0800, Sha Zhengju wrote:quoted
From: Sha Zhengju<redacted> Index current_threshold may point to threshold that just equal to usage after __mem_cgroup_threshold is triggerd.I don't see it. Could you describe conditions?It is because of the following code path in __mem_cgroup_threshold: { ... i = t->current_threshold; for (; i >= 0 && unlikely(t->entries[i].threshold > usage); i--) eventfd_signal(t->entries[i].eventfd, 1); i++; for (; i < t->size && unlikely(t->entries[i].threshold <= usage); i++) eventfd_signal(t->entries[i].eventfd, 1); t->current_threshold = i - 1; ... } For example: now: threshold array: 3 5 7 9 (usage = 6) ^ index next turn: threshold array: 3 5 7 9 (usage = 7) ^ index after registering a new event(threshold = 10): threshold array: 3 5 7 9 10 (usage = 7) ^ indexErr.. Sorry for showing inaccurate index position... (may because of the mail format) now: threshold array: 3 [5] 7 9 (usage = 6, index = 5) next turn: threshold array: 3 5 [7] 9 (usage = 7, index = 7) after registering a new event(threshold = 10): threshold array: 3 [5] 7 9 10 (usage = 7, index = 5)
Good catch! Thank you. Reviewed-by: Kirill A. Shutemov <redacted> -- Kirill A. Shutemov