From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C848C8300F for ; Thu, 29 Aug 2024 08:36:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0F5CC6B00C2; Thu, 29 Aug 2024 04:36:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0A5546B00C4; Thu, 29 Aug 2024 04:36:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EAF376B00C6; Thu, 29 Aug 2024 04:36:26 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id C44AB6B00C2 for ; Thu, 29 Aug 2024 04:36:26 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 76F6180AC4 for ; Thu, 29 Aug 2024 08:36:26 +0000 (UTC) X-FDA: 82504626372.15.F88BB1B Received: from mail-yb1-f176.google.com (mail-yb1-f176.google.com [209.85.219.176]) by imf08.hostedemail.com (Postfix) with ESMTP id DF871160002 for ; Thu, 29 Aug 2024 08:36:24 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SLbTi4wF; spf=pass (imf08.hostedemail.com: domain of jingxiangzeng.cas@gmail.com designates 209.85.219.176 as permitted sender) smtp.mailfrom=jingxiangzeng.cas@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1724920564; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=DrDQ0wA34pBDFFccccUkyMwTsnel+cOfI7PjKq2Yir8=; b=M21n2joASvhf89HW60efg73ZHk6zpgABNGjD7MPcq27Vg72OQ7DVHMMgA+XZ7JPBhuwmOA KcR26GDrwt0s/V786mYfLhC2u+PLnClV3krnOCe653R2C1T8pm6yfXBEwzswujgFOdxmpC lOuxW5sVA/9giQbaddBzmdED3MxYnm4= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=SLbTi4wF; spf=pass (imf08.hostedemail.com: domain of jingxiangzeng.cas@gmail.com designates 209.85.219.176 as permitted sender) smtp.mailfrom=jingxiangzeng.cas@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1724920564; a=rsa-sha256; cv=none; b=MJNjbrQ32Xim/aGBTpNsCByBRGbKptnmrWPH7n+EEwQFny+v2SFGAoSti2PiJXywH0XgZn NPFv08cyMbUJblb/eojj7bJq5xwrKdG18N7wsahvbC2uTngArYCf2mHiVI/rmsiduHVoAs yVM2oSXCuBGtfbGVZG2a9KC3b4Xu/cA= Received: by mail-yb1-f176.google.com with SMTP id 3f1490d57ef6-e02c4983bfaso435387276.2 for ; Thu, 29 Aug 2024 01:36:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1724920584; x=1725525384; darn=kvack.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=DrDQ0wA34pBDFFccccUkyMwTsnel+cOfI7PjKq2Yir8=; b=SLbTi4wFWBqPwqC7x073WHaAQHb6dEOfej4HGWXteDyibZkPgDDx91U1gCb/n84rvR uz7vfIYlXyTsLoBbcMbkbB1BTPqaE7zAUl1Kvi7Sfm4f+JyQFlb4aGts+IGoj52aRZA8 Tq5LZGVwNM3JMdykebW6abKIlmY9Q/xRc/I8u7kEw6lF3E1Xdiz+mU1R563ZtucPBgcz xbXQHgIYqDAayK6lgWDB05BGKg5UXAX5zY89ai1tTiTxejGuqYdM0KKv7ZQLa+KBp5/J 8XKksmZ1KP3D2Ynrd+Xrm0VgcfDqI+pm3oR3M+mjxW+vMfv47MPfhYEbbIDG8A6uE4Yg /Ckg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1724920584; x=1725525384; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=DrDQ0wA34pBDFFccccUkyMwTsnel+cOfI7PjKq2Yir8=; b=n7YVIYZ9QjCoBb9hgmYLpBZLveTFPSsFyA37JCfE7W3bC3pz5vSs60hnYLXs29asJC 2sADK2DiB/cm4duoacW0FxaS47NvkV6AusRRkI/3+5L4aMwhvhTRj4HWL1/oeu2ru1qd bdEJUjwq3pN94GdcEGxeIFHEZ6ye7IktuFByBqKFkCgeQ5MB52LDDe2PxW1es5OnlVUN 7kPqq1Hq0sygB7lG+xmg7aX4f3vArWHdeAYz7nf8SQhwlxY9fGHsK1Wdz3dcHLKBVA2w wuPRYgcCguhk8ijozIyoaqTx5Or21qY62NXbMhJcepfzSkbJEKxmKxQgfQIf36mitSfM 1zhQ== X-Gm-Message-State: AOJu0YzBbV9H/SFBbwWpYQkzY7QNTiesO6bp1XW7PipjAlNx8NDHZHpB XOXj2MK1ucxnjIVumTvOlYLd1LnmEanqLmqUIDMm2booBaetH5TU7WGVEV4mPwmAFYThE7Tev+V yqk044GBSPSOgKZOWFPTJOl9J/gY= X-Google-Smtp-Source: AGHT+IExgH+87KtgAU7Ul9jdINz2l1t1vpl5InAGu5TO2vz1ull6FphidfVEG3nm1omVz0iF98wF8dDkypAd3DwDE0A= X-Received: by 2002:a05:6902:e0f:b0:e16:1ebf:2945 with SMTP id 3f1490d57ef6-e1a5acab457mr2071335276.27.1724920583701; Thu, 29 Aug 2024 01:36:23 -0700 (PDT) MIME-Version: 1.0 From: jingxiang zeng Date: Thu, 29 Aug 2024 16:36:13 +0800 Message-ID: Subject: [PATCH] mm/mglru: wake up flushers when legacy cgroups run out of clean caches To: Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Yu Zhao , Alexander Motin , Kairui Song Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Stat-Signature: pu5zw4dxy4xngswqwqg4spagnoheqte4 X-Rspamd-Queue-Id: DF871160002 X-Rspamd-Server: rspam11 X-HE-Tag: 1724920584-738229 X-HE-Meta: U2FsdGVkX1/ru7zgbtAmHnDyEHBXEznmUthYF4okd1iApLw5tK7VyZrzSc7YAJ5bix2xnphCzAs9AVkTJwjYIN8ERwAgYX/VpNIvylOrvJDlQApdQoFmfylkfkP1O4JBYVohtPDsdeFsgZoG5/C2XJrkW81fXtH2OARD39SeUXPy71OSmQvY8jjv+F1A56laaIAhIBMJVdE6Qlp9wlD8phT/TvrazEn/qkOhBpMsYsZH14nw+c0kCzwvJirjBKRzpRmhJaXCF295YOav9gwAPLbTWS4rV2K4Po3ffYpK5KDqkogR3A/V4bGIV9EscpHV4nbIm0ydvmKN6Xp8oEfsyvturMd0TbIyypNuQSDE3UJY0lXcjc1hwaKmEA4tr5NNI3V82PS5etrTAqehSpukXe6682NmLBAQHH/BepAl5HAnW6Q3O5j5pn92B4YTIrYvPXUkows0BpLn1Y+i0PmKn9KrV/K25q/7A5ggAgXdSHMl6GFAeFToI0FSPjnG4ZE1lvzOuh1ELA14A1Nh950R3i/ZRldddZrT2u4wIDsiiTba7DMEOTxytDSr/raGoKtelZqhzeH2H3QYRRD3hPvXMYq+lfXnMzs+lnR2CpNM+Lkc0GQB8E1i3xel6IZw5jmkuveegoYH4RcgUu4FtocVKSrLqYc3btRPhBYcODr85w11hP5lhCOB/pYZkHh/R5j9cYyiTe0ZTQBmLEwqRXuaPPFscHth9OM2MPb8gv3nISr4XXQvCf71sRONWcvNjccLhM1LY8W3w8Spbs9Oo75tly++CxkkZ+Yzbrs/RaR+22hEgowr95gEKy5+7wrAeS6fKo0A1djje7NhnSh3pbOzmnEYj22TI60t6jf+e+CS4mbGJc3mWAac3fxPuH4Ep5GQY9D4f7dRU9TA4PAhVqN38142lZQ/Qg4eP3PJBIS6OXdAE7aR7lvKkdJv/8eQ7/mTm0v+/63zzLSsLwrgPpo SrgWYAPM sO36L+GolWYLJmdEs8XNImRCv+hxqEI9JkRsIXE6bsjWue7rQm25yLyiYjWDrqxEg0TNFNRau0aFmdsgJ1AbeMJ642MKOdp0BVXGXn1UtCwkdoYSssxYO5Wzrem8Sc0mvvU3Pu6VAJSpFoPt83R+FLaTzta9tcvcIRvHPRbdtpCmQBFAvPmFcVkxvg35x2g7M24kJiJ3GtM0k6qPS6MpUD8AlLgDqx8+VbWRqjTCYU0vLubFhh/YKTmIaqtvuwcKhCY7hYYvWvsUmshWZTjLQp/UEvkpYgj6JxD+AizqIU1Z+FocCyqJpMXoWtw+Y/KxtNuIHMIkPgmZgxXr0h2lODv2ZluO1FE9AN3y+iyrDqq6+az69zJmMrSi6MZX1mNvJ3xLxJifKWmlwIq84icoFR4dyyQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.087115, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Commit 14aa8b2d5c2e ("mm/mglru: don't sync disk for each aging cycle") removed the opportunity to wake up flushers during the MGLRU page reclamation process can lead to an increased likelihood of triggering OOM when encountering many dirty pages during reclamation on MGLRU. This leads to premature OOM if there are too many dirty pages in cgroup: Killed dd invoked oom-killer: gfp_mask=0x101cca(GFP_HIGHUSER_MOVABLE|__GFP_WRITE), order=0, oom_score_adj=0 Call Trace: dump_stack_lvl+0x5f/0x80 dump_stack+0x14/0x20 dump_header+0x46/0x1b0 oom_kill_process+0x104/0x220 out_of_memory+0x112/0x5a0 mem_cgroup_out_of_memory+0x13b/0x150 try_charge_memcg+0x44f/0x5c0 charge_memcg+0x34/0x50 __mem_cgroup_charge+0x31/0x90 filemap_add_folio+0x4b/0xf0 __filemap_get_folio+0x1a4/0x5b0 ? srso_return_thunk+0x5/0x5f ? __block_commit_write+0x82/0xb0 ext4_da_write_begin+0xe5/0x270 generic_perform_write+0x134/0x2b0 ext4_buffered_write_iter+0x57/0xd0 ext4_file_write_iter+0x76/0x7d0 ? selinux_file_permission+0x119/0x150 ? srso_return_thunk+0x5/0x5f ? srso_return_thunk+0x5/0x5f vfs_write+0x30c/0x440 ksys_write+0x65/0xe0 __x64_sys_write+0x1e/0x30 x64_sys_call+0x11c2/0x1d50 do_syscall_64+0x47/0x110 entry_SYSCALL_64_after_hwframe+0x76/0x7e memory: usage 308224kB, limit 308224kB, failcnt 2589 swap: usage 0kB, limit 9007199254740988kB, failcnt 0 ... file_dirty 303247360 file_writeback 0 ... oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null),cpuset=test, mems_allowed=0,oom_memcg=/test,task_memcg=/test,task=dd,pid=4404,uid=0 Memory cgroup out of memory: Killed process 4404 (dd) total-vm:10512kB, anon-rss:1152kB, file-rss:1824kB, shmem-rss:0kB, UID:0 pgtables:76kB oom_score_adj:0 Wake up flushers when legacy cgroups run out of clean caches. Fixes: 14aa8b2d5c2e ("mm/mglru: don't sync disk for each aging cycle") Signed-off-by: Zeng Jingxiang Signed-off-by: kasong