From nobody Mon Jun 8 09:48:37 2026 Received: from mail-pj1-f65.google.com (mail-pj1-f65.google.com [209.85.216.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 39A1A2701BB for ; Thu, 4 Jun 2026 02:38:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.65 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780540721; cv=none; b=oKUI6cLU+YlJ6X9MPMMWy+/KIa7xZUYTKQVnBqqZim5+vFDSJxGG8bh4Tw6FbDwvgNUr+D3SMyyld8CQPTwFVLb45CGZD0HjRmUDcNRabkXBUMcbYvkHDLnWPGccez6vk5zqagwn/iIYhzkUDEHciVcHJcJpSo1pvM7oES+pnI4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780540721; c=relaxed/simple; bh=IgUc5Qe80z/jUGLWABaGxvs/O/OI5c8g7nLD+Ltw+/U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=VgM/rI7Jlj9U7Iz1B5vkFxFOz/kzw/8xEQ0IbWoKBB3n0q9k0i7BWRzt1/gFo4dhX/+zfszCkXZQCCdBP7YRuw+vSMcCC/lbTrHx9p+XfJUA6PJnq59/z3kg9fvN7jpBrn27YAOOSvLMyOI/spZ7hBxr72QclEiBmc0d96Z6cP4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=OV5ez7xZ; arc=none smtp.client-ip=209.85.216.65 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="OV5ez7xZ" Received: by mail-pj1-f65.google.com with SMTP id 98e67ed59e1d1-36d9794d82aso93645a91.0 for ; Wed, 03 Jun 2026 19:38:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780540718; x=1781145518; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2Jg2muu/RqGJ6FJ6mWO/tENjNo0VfGXgaATf3xERkFo=; b=OV5ez7xZ4+pLtfbIY+9Sh4ZZrvgdl6KMl/hoiGyTgODYeshxlm5um63dAu8W8k++Hq ZKQjGNITXWaYVZ6V/svj88VYIO8xeSr4peH+YJUYVfss4Xksvy2ZdLaIcsoQvsgSf+tL q1pGx99x2RbWhRAmb1PBOGfAwMhfLTDs4n5NwLwG7vqIHC7+tTKoPjltAHkegByffj3L MwPU6HUkeS7fcUg+pneFcbCSr+xIR/NVttl6nSGH0nyTqgUsyf1VYMfXXk4GVecLMhOa iFPHN0ISO0EcwV07V5LJSUodQDRWHrIuBytNeS+goyYX6FAlj9PbVCSwVUYrRiOYTbEE K7Eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780540718; x=1781145518; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=2Jg2muu/RqGJ6FJ6mWO/tENjNo0VfGXgaATf3xERkFo=; b=j3nZzfAzsKklliMtANgQiqYi5JLbqrMogQSWYJDMMRSn3Ex22vLDtPDcYhy/YD3wzN LQnbDelAiNsmjbIUPvmHGii5eUUWkQEcikTQYoVq5bDgmw+Q5r1PkYE62YEwlMYTZZ26 Ip4VbREadcZh4euV40cdfyqlyS70Dgd7LJhO3CRos3+HqY0JjlJB+X4bq3tw9jYNpAp1 HxsjojtRE5zFRBeSMGxljc1y4SYfcXdmhTU2+LutXhRj5imS1GbEjEn7Vp02mMTF0ZP9 vLKLzelEJ/TW+KV9GdJ6q6o6kxBTXIgDu7IIqcgmZf3es69fPaznd6vKdNyPtVbzqmdg pGrQ== X-Forwarded-Encrypted: i=1; AFNElJ/HBerfFx3gZZfn5oRLYB3se85D2KlxJ8O0Ib4HJdOgtuPrrXr9ngD0iOGXKFFPB1chHU1sabYHZ5xGRok=@vger.kernel.org X-Gm-Message-State: AOJu0YxT5PElf34og4AqORsdwv1tXAeehSLrUTsfBWG+MXywm5C62plO ccyTkQPzarJl3DxP3woRQlpNhK38y0VtH1+UmWH5tiv753bxaMwGIrP3 X-Gm-Gg: Acq92OFcEJi5KWqONLLId76Ju7c+7WeNOiraJJ3tBX6ieH4A/2YoWZ9mah0KxQporMf 9XzpE6/n5vfsK/ec9h8aVzO+c8E4p5OgMWU2KO8Tgzb49mLFN17JuS36JmumShrWSSP32pVHKFz 10cw5VagS5p83SAcNqk8gSqma9svVFYe+5j0EYl1J+K6E2qo8+nUPzacLWQShQrJzhLRGpvDe8a boLy4fxFJXP4w6qmQ54iuWKWYT+jPG24rNvBS/wl4GVu+LlndsssbCa+E1S0b0B4mXjzXGevAQx 5FePOVpMs/fFbm3m38quRZiZ5tbN8VOLs3x4H0iH2BWXWAQhLSP/um9ELAzFkXpXO0LERPyV8OF V5kZUVgH7VxWxJHSK5o9fK/eC5sjyWU1kUbQNWs97C/dEeedqnnFC2K+m0lcpL+8MA1uhDfkigv G6udtuXV4pZyG1VTSXyroQgId/krZETmaTvVL9OzJzT0fvRODnDaAB9uya+Q== X-Received: by 2002:a17:90a:c2c5:b0:368:9da3:c496 with SMTP id 98e67ed59e1d1-36e335db4fbmr6149440a91.24.1780540718488; Wed, 03 Jun 2026 19:38:38 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36f6dba8573sm1253072a91.14.2026.06.03.19.38.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jun 2026 19:38:38 -0700 (PDT) From: Wandun Chen To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-rt-devel@lists.linux.dev Cc: akpm@linux-foundation.org, vbabka@kernel.org, surenb@google.com, mhocko@suse.com, jackmanb@google.com, hannes@cmpxchg.org, ziy@nvidia.com, rostedt@goodmis.org, mhiramat@kernel.org, mathieu.desnoyers@efficios.com, david@kernel.org, ljs@kernel.org, liam@infradead.org, rppt@kernel.org, bigeasy@linutronix.de, clrkwllms@kernel.org, Alexander.Krabler@kuka.com Subject: [RFC PATCH 1/3] mm/compaction: skip isolate mlocked folios when compact_unevictable_allowed=0 Date: Thu, 4 Jun 2026 10:38:10 +0800 Message-ID: <20260604023812.3700316-2-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260604023812.3700316-1-chenwandun1@gmail.com> References: <20260604023812.3700316-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wandun Chen compact_unevictable_allowed is default 0 under PREEMPT_RT, isolate_migratepages_block() skips folios with PG_unevictable set. However, mlock_folio() sets PG_mlocked immediately but defers PG_unevictable to mlock_folio_batch(), result in a folio with PG_mlocked=3D1 but PG_unevictable=3D0. Compaction will isolate such a folio. Fix by checking folio_test_mlocked() together with the existing folio_test_unevictable() check. A similar issue has been reported by Alexander Krabler on a 6.12-rt aarch64 system. Vlastimil suggested to check the mlocked flag [1]. Reported-by: Alexander Krabler Closes: https://lore.kernel.org/all/DU0PR01MB10385345F7153F334100981888259A= @DU0PR01MB10385.eurprd01.prod.exchangelabs.com/ Suggested-by: Vlastimil Babka Signed-off-by: Wandun Chen Link: https://lore.kernel.org/all/33275585-f2db-4779-89f0-3ae24b455a67@suse= .cz/ [1] --- mm/compaction.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/compaction.c b/mm/compaction.c index b776f35ad020..7e07b792bcb5 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -1116,7 +1116,8 @@ isolate_migratepages_block(struct compact_control *cc= , unsigned long low_pfn, is_unevictable =3D folio_test_unevictable(folio); =20 /* Compaction might skip unevictable pages but CMA takes them */ - if (!(mode & ISOLATE_UNEVICTABLE) && is_unevictable) + if (!(mode & ISOLATE_UNEVICTABLE) && + (is_unevictable || folio_test_mlocked(folio))) goto isolate_fail_put; =20 /* --=20 2.43.0 From nobody Mon Jun 8 09:48:37 2026 Received: from mail-pj1-f66.google.com (mail-pj1-f66.google.com [209.85.216.66]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EF1592EB87F for ; Thu, 4 Jun 2026 02:38:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.66 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780540730; cv=none; b=WjpBdTkwuJdQ2axrrbO5K3fbZCvffZLe+9xKb/+53vwiOToxvcWwWrzm2TCWwrE/LauB09nL6+rqGGDE/3hQGIYiXIi4wPAzVIRxLELrMojLN1F+218/CJOalk8rFrzI0b5X/red/bkzWlw2U9N74XzO7ZRkxwVw/+g6k/GxtxI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780540730; c=relaxed/simple; bh=IYmoyLg/EeJdFRiogqb1Pp9mqFRQfPgEPlVgRs+mRvA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=obrGdGzLKuguBMpyeKvhDr21CeQ2EQuwlNqWfQbl+MWWxklNn/1jTATp4rK9rdg0srEfa09rwMzH1it0+Km/ZjtJ4XRSjBUePfoch3tkHPUIPHLW+pDJcrr3JKcvZ6gcyitOYZYZVDsruzl1mzEm5s0nGLFZzBGTnSd0UnI8KpM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=An5fzT8b; arc=none smtp.client-ip=209.85.216.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="An5fzT8b" Received: by mail-pj1-f66.google.com with SMTP id 98e67ed59e1d1-36bba9a1089so97859a91.3 for ; Wed, 03 Jun 2026 19:38:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780540728; x=1781145528; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=903p+XYNW6RRuBbLdT64GGYbi0Y3SIaWw22qBNVgp0Y=; b=An5fzT8bDvQsj+HXZpLrF1Wlp+N5ka0dUJWP4Nx+KgNQwKiEHgRhSFmiDm0VdTU7Fw JDLBX0nV2t7rGdIA7wG52JnwuGl1LK53ciD8bBWq4aY/Puec2gdcvsCjjhkQpwhYa8dx 57I8W7ZczBA5pKwf1PzcUmZsPs+2lFnxrrw8IAC+INWzgYPTDmKoQgxpSqZMJCj9270T 37z2LwjCJUSnqBo6PI3jgwD+FNQUKap2X2l63IjeJJsVPcjfPNvVNUuasMWWZY9iZtxe lnKQUCXfXkYODjgS4aA/1oD6fXajZOdIsIQbCXTf14wkcdrJCny2F1SV65sH2w3KwrY6 ArGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780540728; x=1781145528; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=903p+XYNW6RRuBbLdT64GGYbi0Y3SIaWw22qBNVgp0Y=; b=l0s1PergnKgRPhHmoiC/d+dFYql/YViTB79owxh5G3u6mQM5VSCG2AzWXNu+GdshVj BAP6L/BfAI5j52Xzdj7aElcynQPcl5Iwhl/7jp/XfUdJWI82Q9iVtEhAffc2/h1YquiO WfY3SQ3r194UatymrPA5Sk3gQuWaZM6a2J5epE1CWeMeU/BjNAtuoShuirsxKIdTHxDm tDaixdR5zO4VnU8Q5WF69lbS+BjIj5iBL+ZhCW7kib6T7W6HSzqExdckXqGdu5BqzxnF TdsC0pipzZ4/MEZZhkR4Wfdg5vrhE/oiK50F4jSQALiU0kR4Zc+94GS3fxAJHpAd1Aka GrPA== X-Forwarded-Encrypted: i=1; AFNElJ/d0k4rr0wdW9cyd1zfG0KA2I/SM0hSO1zDW+fLhCwSFERJdgLNZRz0VvYasTDAtAufjKe9IHJNWuaXFpM=@vger.kernel.org X-Gm-Message-State: AOJu0Yw/85AngLyNKe9tofsXICvOmcKFGFj5VJXfMfXFU3Y1fMvjF7f8 xXp18/pgP2X0bbV+MQ9u+97OqYmmWBF05qdLUWJ/hArFY/AzC3LzCa3h X-Gm-Gg: Acq92OGtSaQPlt33Zse71mQQde9G6KZlvvWseSKDwJvb0cmoq9axHxVp5mrSVVD4/By YdVUdUduRxnY3SFHHfWrysZoUAzA917Yn7Q7liBlhDA10PCOmwGtcd6hXcEZXErJiji+1m3/44D aS/AYjBg7uXPOGZqoLZFRt2RvF2OULXDRF2JhOo+lcS3zT0KSeAZms7zGeWpiyF5qz3jBmXT5AZ DkmPsNe8eLK7/Ux3Qnp++G72Qak9NB0T9sT3TiodVkJRJ675/Jx5285YrLGGZ8MSiApmUFqD8wc a0z/kmTjwQXGmfSpfRkbZr0Nk5JLHadx4eXnUfaETI0Fz5TmdW/G56XDfCdg+vhHyg9jeEr7MFO GUJkHd7PzqCCjTMmJBrGqWb0zQD6FtGgNJM8S37WvtiSqpdlisX7g7qmDm0UfUM740VkwzBgBO8 gg+nHdzZfT3NPYfNu6VwaoPln+Cgw37JZLj5wl4cKdgtnnz/M= X-Received: by 2002:a17:90b:2b86:b0:36b:aed6:235a with SMTP id 98e67ed59e1d1-36e33106b26mr5951841a91.22.1780540728330; Wed, 03 Jun 2026 19:38:48 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36f6dba8573sm1253072a91.14.2026.06.03.19.38.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jun 2026 19:38:47 -0700 (PDT) From: Wandun Chen To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-rt-devel@lists.linux.dev Cc: akpm@linux-foundation.org, vbabka@kernel.org, surenb@google.com, mhocko@suse.com, jackmanb@google.com, hannes@cmpxchg.org, ziy@nvidia.com, rostedt@goodmis.org, mhiramat@kernel.org, mathieu.desnoyers@efficios.com, david@kernel.org, ljs@kernel.org, liam@infradead.org, rppt@kernel.org, bigeasy@linutronix.de, clrkwllms@kernel.org, Alexander.Krabler@kuka.com Subject: [RFC PATCH 2/3] mm/compaction: add per-folio isolation tracepoint Date: Thu, 4 Jun 2026 10:38:11 +0800 Message-ID: <20260604023812.3700316-3-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260604023812.3700316-1-chenwandun1@gmail.com> References: <20260604023812.3700316-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wandun Chen Add a tracepoint that fires once per folio successfully isolated by isolate_migratepages_block(), recording the pfn, isolation mode and the folio flags. Knowing these makes it easier to debug unexpected isolation, such as mlocked or unevictable folios showing up on PREEMPT_RT kernels [1]. Inspired-by: Sebastian Andrzej Siewior Signed-off-by: Wandun Chen Link: https://lore.kernel.org/all/20250820142919.HTybedrl@linutronix.de/ [1] --- include/trace/events/compaction.h | 26 ++++++++++++++++++++++++++ mm/compaction.c | 2 ++ 2 files changed, 28 insertions(+) diff --git a/include/trace/events/compaction.h b/include/trace/events/compa= ction.h index d05759d18538..8b8b3ec0f324 100644 --- a/include/trace/events/compaction.h +++ b/include/trace/events/compaction.h @@ -76,6 +76,32 @@ DEFINE_EVENT(mm_compaction_isolate_template, mm_compacti= on_fast_isolate_freepage ); =20 #ifdef CONFIG_COMPACTION +TRACE_EVENT(mm_compaction_isolate_folio, + + TP_PROTO(unsigned long pfn, + isolate_mode_t mode, + unsigned long flags), + + TP_ARGS(pfn, mode, flags), + + TP_STRUCT__entry( + __field(unsigned long, pfn) + __field(isolate_mode_t, mode) + __field(unsigned long, flags) + ), + + TP_fast_assign( + __entry->pfn =3D pfn; + __entry->mode =3D mode; + __entry->flags =3D flags; + ), + + TP_printk("pfn=3D0x%lx mode=3D0x%x flags=3D%s", + __entry->pfn, + __entry->mode, + show_page_flags(__entry->flags & PAGEFLAGS_MASK)) +); + TRACE_EVENT(mm_compaction_migratepages, =20 TP_PROTO(unsigned int nr_migratepages, diff --git a/mm/compaction.c b/mm/compaction.c index 7e07b792bcb5..007d5e00a8ae 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -1223,6 +1223,8 @@ isolate_migratepages_block(struct compact_control *cc= , unsigned long low_pfn, isolate_success: list_add(&folio->lru, &cc->migratepages); isolate_success_no_list: + trace_mm_compaction_isolate_folio(folio_pfn(folio), mode, + folio->flags.f); cc->nr_migratepages +=3D folio_nr_pages(folio); nr_isolated +=3D folio_nr_pages(folio); nr_scanned +=3D folio_nr_pages(folio) - 1; --=20 2.43.0 From nobody Mon Jun 8 09:48:37 2026 Received: from mail-pj1-f67.google.com (mail-pj1-f67.google.com [209.85.216.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B2E423A7F46 for ; Thu, 4 Jun 2026 02:39:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.67 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780540746; cv=none; b=Jq8pOPeSvvG5U9vIWnUvycvzeu1QCb2vvueKu+NLGgkbxFPHsFEbmarK65jRU2mL56Of5oeY7k9wWuIy8DMoBtkL2/wHWEecUJiqtRJrXq6kVpxvvbIiekNpUoTceFPIhaA8ebX+JCoJtRRGggTPM6kXag3dhwVV10M6fBkX76A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780540746; c=relaxed/simple; bh=Z/Eh9Ow9GWrkfmkO+fjqV3ynDGOPRF2+Js97K1B7ZoQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=j+AxLsgxY/lTjQVtxG+jGadpaOE3hcAI5Xg9cfG6ORE0bqDYIOUYUMCQz5uu5WtecyZ1LppiK+eRqSRebLFzp7J63fGMzQTJWCuyMIxTq0oQXWwH4XkWotyIYZGBYR2tWoEA0yje25f9sVIuaGAsgjP9kuKFvGWf1dkOWR4m1Js= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=iQRvYIVf; arc=none smtp.client-ip=209.85.216.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="iQRvYIVf" Received: by mail-pj1-f67.google.com with SMTP id 98e67ed59e1d1-36ad15213fbso133920a91.0 for ; Wed, 03 Jun 2026 19:39:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780540741; x=1781145541; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fY6gm/PYAmXfMCLc0nBMu9O2mOg48yeIOplSmvWr19Y=; b=iQRvYIVfjsGG3arVLfNoG7woel5fUonNz0AoNjaktoYVBau1BS1gAbI+Zpn9hB8dch u9yso3iEvSEbQRnwb68lRrUPoB8i8Zo26TfjkwBIsfyQgTUjoAr+w4FM6srDHT9lruqM ejHRufQ7OMRecOO2+goIkbhzIWJlVqGEgURBhuNftENrVhlGrTWMHpB2YIFqIZlwyfKW GOY+/4T2vq8RF6HTCVw2+U78E0eL2jSyrW/5PXMv8flPnWYe6YOztE7S0SyT7VzzV2TL CqgOGN/gnBAd6NqRWVw7k8rj3locHIbE4YfNpcrB+tKpuzuiziCACRcsV+2OvsMFiq7l VkNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780540741; x=1781145541; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=fY6gm/PYAmXfMCLc0nBMu9O2mOg48yeIOplSmvWr19Y=; b=XROsj2InPBdjj8QPx19UZw+tXKninFhdKqx48STzuy3aLUt05FsDPWQUixJCv4hX6y Sr2hxBJ+BWKf2j9MBLc2LDp9S/qh8peu8qfonOdcjmagq681Q/SYs0SusEiEnR3sfcWh 7SLmr6YhmIdrcYK6Pt4cyqoJBFcue0B6cN3zQNRdW+CdpDDIc8DO2T65RBz/hTqs8/0x TEfR1K5ioPxyjsbhu6+85aHdIt8s0KL942maLEvziSiYzTnyFYy+XxOth/0cMWenq1Wc FSmf/hI6DRc/f5CxYcHH3Fk2sDli9O0OzmzOh2F7oLUEPafvlKRwWUvtXry/EDXmZ5PI Qyrg== X-Forwarded-Encrypted: i=1; AFNElJ/SFC0Lt557pC51PAfvTlgWdaAGtMkpvUojio3HRRoVbyXRUNpWg1S3KjTFvhqHMZqL+McBHmBBwO7MN54=@vger.kernel.org X-Gm-Message-State: AOJu0YwLIEDpic3l9RWedU0yYvxyqjxxSMwPBs75Q6pShKsGrY3Fd9v6 D5xE5O3Lpx533gXvG8JD8/Ulh78W/A/b2GtdOqQtXSPzn01V4hNwFLMJ X-Gm-Gg: Acq92OExrju9zj2ApnC/6/7tLOycwpXQRTUadD8qJL+9a/1bT1Ryl7seipC6+/BZprZ hcBlKgX4VeJrEEm7U6X2g0RjByQM3PXu9F1IhEWeh9QwiDL4rJjSXw0zowMJ0z+s+NiaSyTMtey qoRKPDd94l6AKMghlitS6dO6uGpSKIgeQ24A1/He6Mmi0Co5J4yb9UeSdJnoczu2zZsCACfsaZy UqHjizSzBX0Z7JiF3piEpg4ohrOZxAYyqRX8wETK142J3jtMXJRanS3Sy0hlPK42yIKfHnFR9mb 1PcooBW5pKN9Blh3CYGotXioVYnck+R+UGYrXdWp1bgWKoIhCgApnsa5k1TQhSNceBUIq9zQtX5 wWzNderOlPm1MdgySkgLOfj53MugpKzJGo6Aprv+z4MNOVAAns/sQFDqDGa1xbdotoNz8PjmYsY siOnu6kfUrbX0TNXehE1M1I4eLiOSHxggClCzcp7uKF0EstnE= X-Received: by 2002:a17:90b:4ac7:b0:365:a5f6:4a5c with SMTP id 98e67ed59e1d1-36e3064896cmr5407549a91.1.1780540740997; Wed, 03 Jun 2026 19:39:00 -0700 (PDT) Received: from intel.company.local ([210.184.73.204]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36f6dba8573sm1253072a91.14.2026.06.03.19.38.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jun 2026 19:39:00 -0700 (PDT) From: Wandun Chen To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-rt-devel@lists.linux.dev Cc: akpm@linux-foundation.org, vbabka@kernel.org, surenb@google.com, mhocko@suse.com, jackmanb@google.com, hannes@cmpxchg.org, ziy@nvidia.com, rostedt@goodmis.org, mhiramat@kernel.org, mathieu.desnoyers@efficios.com, david@kernel.org, ljs@kernel.org, liam@infradead.org, rppt@kernel.org, bigeasy@linutronix.de, clrkwllms@kernel.org, Alexander.Krabler@kuka.com Subject: [RFC PATCH 3/3] mm/compaction: respect compact_unevictable_allowed in alloc_contig path Date: Thu, 4 Jun 2026 10:38:12 +0800 Message-ID: <20260604023812.3700316-4-chenwandun1@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260604023812.3700316-1-chenwandun1@gmail.com> References: <20260604023812.3700316-1-chenwandun1@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Wandun Chen vm.compact_unevictable_allowed=3D0 is used to prevent compacting unevictable pages. However, isolate_migratepages_range() passes ISOLATE_UNEVICTABLE regardless of this sysctl, so the setting has no effect in the alloc_contig path. Fix it by: - Keep ISOLATE_UNEVICTABLE for CMA allocation, discussed in [1]. - Honour sysctl_compact_unevictable_allowed for non-CMA allocation. Suggested-by: Vlastimil Babka Signed-off-by: Wandun Chen Link: https://lore.kernel.org/all/25ba0d77-eb61-4efc-b2fc-73878cbd85c1@suse= .cz/ [1] --- include/linux/compaction.h | 6 ++++++ mm/compaction.c | 9 +++++++-- mm/internal.h | 1 + mm/page_alloc.c | 2 ++ 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/include/linux/compaction.h b/include/linux/compaction.h index f29ef0653546..04e60f65b976 100644 --- a/include/linux/compaction.h +++ b/include/linux/compaction.h @@ -106,6 +106,7 @@ bool compaction_zonelist_suitable(struct alloc_context = *ac, int order, extern void __meminit kcompactd_run(int nid); extern void __meminit kcompactd_stop(int nid); extern void wakeup_kcompactd(pg_data_t *pgdat, int order, int highest_zone= idx); +extern bool compaction_allow_unevictable(void); =20 #else static inline void reset_isolation_suitable(pg_data_t *pgdat) @@ -131,6 +132,11 @@ static inline void wakeup_kcompactd(pg_data_t *pgdat, { } =20 +static inline bool compaction_allow_unevictable(void) +{ + return true; +} + #endif /* CONFIG_COMPACTION */ =20 struct node; diff --git a/mm/compaction.c b/mm/compaction.c index 007d5e00a8ae..a10acb273454 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -1341,6 +1341,7 @@ isolate_migratepages_range(struct compact_control *cc= , unsigned long start_pfn, unsigned long end_pfn) { unsigned long pfn, block_start_pfn, block_end_pfn; + isolate_mode_t mode =3D cc->allow_unevictable ? ISOLATE_UNEVICTABLE : 0; int ret =3D 0; =20 /* Scan block by block. First and last block may be incomplete */ @@ -1360,8 +1361,7 @@ isolate_migratepages_range(struct compact_control *cc= , unsigned long start_pfn, block_end_pfn, cc->zone)) continue; =20 - ret =3D isolate_migratepages_block(cc, pfn, block_end_pfn, - ISOLATE_UNEVICTABLE); + ret =3D isolate_migratepages_block(cc, pfn, block_end_pfn, mode); =20 if (ret) break; @@ -1902,6 +1902,11 @@ typedef enum { * compactable pages. */ static int sysctl_compact_unevictable_allowed __read_mostly =3D CONFIG_COM= PACT_UNEVICTABLE_DEFAULT; + +bool compaction_allow_unevictable(void) +{ + return sysctl_compact_unevictable_allowed; +} /* * Tunable for proactive compaction. It determines how * aggressively the kernel should compact memory in the diff --git a/mm/internal.h b/mm/internal.h index 181e79f1d6a2..163f9d6b37f3 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1052,6 +1052,7 @@ struct compact_control { * ensure forward progress. */ bool alloc_contig; /* alloc_contig_range allocation */ + bool allow_unevictable; /* Allow isolation of unevictable folios */ }; =20 /* diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 81a9d4d1e6c0..1cf9d4a3b14c 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -7118,6 +7118,8 @@ int alloc_contig_frozen_range_noprof(unsigned long st= art, unsigned long end, .ignore_skip_hint =3D true, .no_set_skip_hint =3D true, .alloc_contig =3D true, + .allow_unevictable =3D !!(alloc_flags & ACR_FLAGS_CMA) || + compaction_allow_unevictable(), }; INIT_LIST_HEAD(&cc.migratepages); enum pb_isolate_mode mode =3D (alloc_flags & ACR_FLAGS_CMA) ? --=20 2.43.0