Re: [PATCH v4 0/2] mm, memcg: fix memory.peak reset clobbering other fds' watermark

Ridong Chen <[email protected]>
Newsgroups org.kernel.vger.cgroups,org.kernel.vger.linux-kernel,org.kvack.linux-mm
Message-ID <[email protected]>

On 8/14/2026 11:30 AM, Ridong Chen wrote:
> From: Ridong Chen <[email protected]>
> 
> The memory.peak / memory.swap.peak per-fd watermark tracking has two
> issues. Each open fd is a watcher and reads back max(its own value, the
> shared local_watermark); both bugs live in that scheme.
> 
> Worst case for both is the same and is userspace-visible: a reader of
> memory.peak (or memory.swap.peak) gets a value lower than the true peak,
> so a tool that sizes or bills a cgroup by its peak usage under-reports it.
> 
> Patch 1 (read side) fixes the race Sashiko pointed out in the v1 review
> [1]: peak_show() inspects local_watermark and the per-fd values without
> holding peaks_lock, so a reader that races an unrelated peak_write()
> reset briefly observes the lowered value. Transient. It takes peaks_lock
> in the show path.
> 
> Patch 2 (write side) fixes peak_write(): on a reset it stores the
> current usage into the other watchers instead of the old watermark, so
> once usage has dropped from a peak a reset on one fd drags every other
> fd's peak down too, even fds that never reset.
> 
> ---
> Changes since v3:
> - Switch to guard(spinlock) in the peak readers, suggested by Muchun.
> 
> Changes since v2:
> - Spell out the worst-case userspace-visible effect, per Andrew's
>    Go back to v1 [2].
> 
> Changes since v1:
>   - New patch 1: hold peaks_lock in the peak readers (Sashiko).
>   - Patch 2: floor the peers with max(usage, local_watermark), mirroring
>     peak_show(), and skip the writing fd (Johannes Weiner).
> 
> [1] https://sashiko.dev/#/patchset/[email protected]?part=1
> [2] https://lore.kernel.org/all/[email protected]/
> 
> Ridong Chen (2):
>    memcg: acquire peaks_lock when reading memory.peak
>    mm, memcg: fix memory.peak reset clobbering other fds' watermark
> 
>   mm/memcontrol.c | 9 ++++++---
>   1 file changed, 6 insertions(+), 3 deletions(-)
> 

Hi all,

Just a quick reminder on this series, could it be applied?
Sending this note in case it got buried.

-- 
Best regards
Ridong
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.