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 1F653C369DC for ; Tue, 29 Apr 2025 09:48:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 517636B000A; Tue, 29 Apr 2025 05:48:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 47A606B000E; Tue, 29 Apr 2025 05:48:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 33F916B0011; Tue, 29 Apr 2025 05:48:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 139FD6B000A for ; Tue, 29 Apr 2025 05:48:33 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id BCE341418A1 for ; Tue, 29 Apr 2025 09:48:33 +0000 (UTC) X-FDA: 83386606506.28.72E29E6 Received: from mail-pl1-f178.google.com (mail-pl1-f178.google.com [209.85.214.178]) by imf05.hostedemail.com (Postfix) with ESMTP id 2B979100002 for ; Tue, 29 Apr 2025 09:48:31 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nimqJHjx; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745920112; a=rsa-sha256; cv=none; b=gjvNBPBshwM80G+mhtTt0XAea6jbeB3h0TYOm4Jox6ISDEvBITcJe7lpkOuqUdpQKYVhD4 2v8jcuCUNCu1hxS8vqhLAtbARyliI1DuAzj60tVAlr1qyTbEi9V2OlObvr0huomOWnaOFP xA4lbKawhGZyztcZiSJTv6TDcG0Mqaw= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nimqJHjx; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.214.178 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745920112; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=al7UooysWSzGBv7ZANvZoPIfufPL8+o+HcZmV8bme8A=; b=WpNFbHdIUoDIL0TA7h1SdfcSQYch2wVjmtBxAqhqedKNCQYaANSjhVnAdN7bjN7ya7/QrH lH8ZjLC+zuHpe1Uj4/4YnQyTeQEx9g+t4udTHcwibEo1cERoC5HKwa2yRULLXXGn3JQo+s rqBiknDr6sC569Y0vC2fzqtFoABl4ZE= Received: by mail-pl1-f178.google.com with SMTP id d9443c01a7336-2243803b776so95913345ad.0 for ; Tue, 29 Apr 2025 02:48:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745920110; x=1746524910; darn=kvack.org; h=content-transfer-encoding:mime-version:reply-to:message-id:date :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=al7UooysWSzGBv7ZANvZoPIfufPL8+o+HcZmV8bme8A=; b=nimqJHjxC5Fly/U9DHEMt8WsKCQ7riZpSPAyIoHMz9RGexIn8vMcQH+luIfVPQGCJ5 xT1hGY3Mjq4FkhVm8HARGvYWfc/pKF3ZgbTt1Z0vIB3AXSc2I1HVt3V1WquyoPZi+36r JTMFwJJ5x5QiyMe/VZXjJ0cFa7zvW0QCYEJaM/0iPCpK9ZuNRtGUJfhSMJhTUjSW2Nc8 MQRA7GROYD77Fi6Ol3saJhxIVN9dkETrthXlpptGdZFGgIiZ7ex4VjDgNh8kNTqaqBzV BdhhgQhFIkjmsb4+5s2K8tRhgmP3g+bguICszC9UmwORhXNXws6pJ9H9Ndk3UwFlm2r+ srNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745920110; x=1746524910; h=content-transfer-encoding:mime-version:reply-to:message-id:date :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=al7UooysWSzGBv7ZANvZoPIfufPL8+o+HcZmV8bme8A=; b=uK3tnF2kimkbXHk/CfOlqe8KsD7am20gkE56b3dHbrLrUT3Olq0zLCsEmTtOQrAk74 Nz6a4MGON1CJpmhkX1ObrLxOIO9eHshFo4FU2jilQO3EA8LgYEQamU3Xf9qI50IbvFq4 SUer7/cU+0iUjpkSWib/imztDoLFj2GKrGSbj8syuLTeuOQXxNhSz3d7aYi0KsytK0w8 zEeV/eplaTXR1dXJSSX9apk3uziioCdlm6HJfRT8Xf+q7xVRiPtyMJPxOk0ueyffitLO NrdutHoH6y2ecAREAEFi2awHb4L5KbaYNk55PVYsQeBz02hV9cqTwirWKdctVRiolQD/ HLpg== X-Gm-Message-State: AOJu0YwitmEL1W4wk1JcszbxdP7oEMflD2rhRX4F1xy/ZOhYDyF3535B xT5WI8EwJJrNXGzAnFHPB8VFAQa8xNSCHcrBlmlpjJ1LeJEtiSgtIUDGA+at X-Gm-Gg: ASbGncvB1sSFTIt4rcWLk/ZF1NrH5xVMrUiU/Ne031wzgmnb6756y3WRwiG1hYk1RV8 GyKIhHbtDJ6sXmS28GIzoJK7BHneWC8fNFddMh1BqNJtFn+pU62lCiECc9fnH4dF4CBPhCTqHUd pMcB4oUrqXly0EzpSdOuCUF3EVCn+swapLTSdEpdSb8cZojn/HGAVoP5Sps0NiAdBTUxVZPCIsk 35NRhKT2JfSNxq3ZM3yyzCuZRQFK/rQkbeIkz/bfgDMi/dx4E2ko6nf+liy+TJPTiqXPIlbDwlj S+rLjgauQMRsMa5qy7Hib/qjvXkn0gfsFeuBeT0nvm/R2jNzpSj9FD8tgPRu+8XoWnkTjUsAT8L 95blXHg== X-Google-Smtp-Source: AGHT+IHNdNB/EDtjtxtUe1la7yZrLwwve4cD0Q9+Zl3JTKWsOTEczdm3s3j9hd4Zz101WX6u+TpMMA== X-Received: by 2002:a17:902:e5ce:b0:220:c164:6ee1 with SMTP id d9443c01a7336-22de7012487mr31503435ad.32.1745920110368; Tue, 29 Apr 2025 02:48:30 -0700 (PDT) Received: from KASONG-MC4.tencent.com ([43.132.141.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-22db4e0cb15sm98432255ad.106.2025.04.29.02.48.28 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 29 Apr 2025 02:48:29 -0700 (PDT) From: Kairui Song To: linux-mm@kvack.org Cc: Andrew Morton , Heiko Carstens , linux-kernel@vger.kernel.org, Kairui Song Subject: [PATCH] mm, swap: fix false warning for large allocation with !THP_SWAP Date: Tue, 29 Apr 2025 17:48:03 +0800 Message-ID: <20250429094803.85518-1-ryncsn@gmail.com> X-Mailer: git-send-email 2.49.0 Reply-To: Kairui Song MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 2B979100002 X-Stat-Signature: tuxptbxk7yn48ry7zsernp83tz1yb5xp X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1745920111-604361 X-HE-Meta: U2FsdGVkX1/HuU25QMjHnVpMW1PKa/83Z29utc9l3dbp5w2LLNn1cVZBf9g7kYT9f+iH+20Fma9/O2GMU+Bfzuok8PKH+7sC4T8kdDheIgGCbtLKgh/0qlLFSMzcHAsjrFThASvuPV2K5pPn/bWmDqoeSju0/d+U4WMr2+ps9UBdl1Cx3TplWCuszab4bL3I1fMZ7IBSgQ1/EetPEtBGC9wTjpZDVV2dOu3kyp2vuCbzFLdTStudL/q6boxnOj54SSPWW0mjxdmHOvHSWSTXjoYFJgIgXd8ITeM48NUu3vmfri/5UTTX7tX4aM6366/2IqA0rIlct4l3SbwZhzY/7ErGMKVBDHJjOVJUVV2bkYHXb0onxc9Ye35dGNOBRBLZzYimmYCZSPzfWdREsZvmK3BsDnqwNBYMdb2VQ0gGZSzdTSGvoMnpoiVeW5uoxoMpLlOKOXVRCwFOmEgFMbnWdjjd0CrT679raLVysjOa/hdyXFKN1TS39AHE5WwfvuWJpd+Ez25fhQnLol2FqJm38oe10/5b94JotKEqYEPYJe8ohiD2GeNuS6XBGK71ohdWH7G+ju3Sv/gghm/EM++CQxOx2rfaGt92c/63agxTCgPYMFK3awOvd0pmrW1A7UAYYdiiTQM+No/xXiraykr+f8R2jYRp24LRRUly4PGHI0gSUYZHrCqqd5KWs9sE/dDRdoooH8oYAOEvtbZmtS8sitvWuey6/OZsJxciHOUZVX0Aia7KvPLRUfM5V7qpJ6z8tVD30kF5xeYlTrUmjXRYoExyn2y2yNCmRKrD+PywlvkSiERJ1wuoUfloUuKfHLEnIAMZZ4b1T3mHteruCxaJmMec5+MGaemsEupuetKjNqflFs9W0QoWVl/QXHFid0cavAx1E4Q6GeNM8n+em9ZhkA0DW20u4FG6wIzCD7S1gIPralyMwbgi5ZtRgDCP9mwr1Ah8CA2MVfevHXBTn83 Q0MqvfdP 0z92ybozJA6ULnO5Pda6ygnjNZB+bsL7PC/hyXpafLCVYjSk4z3NqHFtLdBpPrChyiKkRrRSmRZBXA5HQzE7GZWRoXK9NbAscC5qXOM/nqtDCgWuXy9c4nEp823Sp3zdqK61+EeXb4vcqBgTfP57d+kZPryAlds8rh9lIzQSSeTgWikN+k6HhxxmlVC6YvaXnPZHAUwTVljkHCyEtoB/T7pNocKBuR6w4SLQVJk5LJTqgpagp7lFpd1nNIZXWqRxrR08yDcyaEQkwOh+BvgY9L0tVg1VR0AgAwHniiHJA2SWMqP4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: From: Kairui Song The !CONFIG_THP_SWAP check existed before just fine because slot cache would reject high order allocation and let the caller split all folios and try again. But slot cache is gone, so large allocation will directly go to the allocator, and the allocator should just fail silently to inform caller to do the folio split, this is totally fine and expected. Remove this meaning less warning. Fixes: 0ff67f990bd4 ("mm, swap: remove swap slot cache") Reported-by: Heiko Carstens Closes: https://lore.kernel.org/linux-mm/20250428135252.25453B17-hca@linux.ibm.com/ Signed-off-by: Kairui Song --- mm/swapfile.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/mm/swapfile.c b/mm/swapfile.c index e727021b8e2c..b86637cfb17a 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -1272,13 +1272,22 @@ int folio_alloc_swap(struct folio *folio, gfp_t gfp) VM_BUG_ON_FOLIO(!folio_test_locked(folio), folio); VM_BUG_ON_FOLIO(!folio_test_uptodate(folio), folio); - /* - * Should not even be attempting large allocations when huge - * page swap is disabled. Warn and fail the allocation. - */ - if (order && (!IS_ENABLED(CONFIG_THP_SWAP) || size > SWAPFILE_CLUSTER)) { - VM_WARN_ON_ONCE(1); - return -EINVAL; + if (order) { + /* + * Reject large allocation when THP_SWAP is disabled, + * the caller should split the folio and try again. + */ + if (!IS_ENABLED(CONFIG_THP_SWAP)) + return -EAGAIN; + + /* + * Allocation size should never exceed cluster size + * (HPAGE_PMD_SIZE). + */ + if (size > SWAPFILE_CLUSTER) { + VM_WARN_ON_ONCE(1); + return -EINVAL; + } } local_lock(&percpu_swap_cluster.lock); -- 2.49.0