[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b7ae0bf1-2a37-4848-80b3-7affa25cbde0@linux.dev>
Date: Wed, 21 Jan 2026 19:21:49 +0800
From: Qi Zheng <qi.zheng@...ux.dev>
To: Harry Yoo <harry.yoo@...cle.com>
Cc: hannes@...xchg.org, hughd@...gle.com, mhocko@...e.com,
roman.gushchin@...ux.dev, shakeel.butt@...ux.dev, muchun.song@...ux.dev,
david@...nel.org, lorenzo.stoakes@...cle.com, ziy@...dia.com,
yosry.ahmed@...ux.dev, imran.f.khan@...cle.com, kamalesh.babulal@...cle.com,
axelrasmussen@...gle.com, yuanchu@...gle.com, weixugc@...gle.com,
chenridong@...weicloud.com, mkoutny@...e.com, akpm@...ux-foundation.org,
hamzamahfooz@...ux.microsoft.com, apais@...ux.microsoft.com,
lance.yang@...ux.dev, linux-mm@...ck.org, linux-kernel@...r.kernel.org,
cgroups@...r.kernel.org, Qi Zheng <zhengqi.arch@...edance.com>
Subject: Re: [PATCH v3 26/30 fix] mm: mglru: do not call update_lru_size()
during reparenting
On 1/21/26 12:19 PM, Harry Yoo wrote:
> On Wed, Jan 21, 2026 at 12:53:28PM +0900, Harry Yoo wrote:
>> On Thu, Jan 15, 2026 at 06:44:44PM +0800, Qi Zheng wrote:
>>> From: Qi Zheng <zhengqi.arch@...edance.com>
>>>
>>> Only non-hierarchical lruvec_stats->state_local needs to be reparented,
>>> so handle it in reparent_state_local(), and remove the unreasonable
>>> update_lru_size() call in __lru_gen_reparent_memcg().
>>
>> Hmm well, how are the hierarchical statistics consistent when pages are
>> reparented from an "active" gen to an "inactive" gen, or the other way around?
Oh, I completely forgot about that. If update_lru_size() is not called
during the rreparenting, this issue should be considered separately.
>>
>> They'll become inconsistent when those pages are reclaimed or
>> moved between generations?
>
> FYI we've observed this while testing downstream implementation
> as it led to MemAvailable being unreasonably high due to inconsistent
> statistics.
>
> The solution was, if lru_gen_is_active(child, gen) and
> lru_gen_is_active(parent, gen) do not match, # of pages being
> reparented must be subtracted from the child's statistics
> (and up to the root, as it's hierarchical), and added to the parent's
> statistics for the generation.
Make sense, will fix it in v4.
Thanks!
>
Powered by blists - more mailing lists