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 A1681C369DC for ; Tue, 29 Apr 2025 09:29:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4006D6B0008; Tue, 29 Apr 2025 05:29:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 386106B000A; Tue, 29 Apr 2025 05:29:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 227BD6B000C; Tue, 29 Apr 2025 05:29:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 00ECB6B0008 for ; Tue, 29 Apr 2025 05:29:05 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 87F21C17C6 for ; Tue, 29 Apr 2025 09:29:06 +0000 (UTC) X-FDA: 83386557492.02.755A109 Received: from mail-lj1-f182.google.com (mail-lj1-f182.google.com [209.85.208.182]) by imf15.hostedemail.com (Postfix) with ESMTP id 9B2FAA000B for ; Tue, 29 Apr 2025 09:29:04 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Cfhi5YPQ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.182 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=1745918944; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=K4HbJI2TaZ5p5PECT4YgcEuGczzkMoTravmRNHRE5eI=; b=gFJTsBlDQCU6AdjuimjKiYoeb4Q5aI6mh39hW5sVGIjjobWWSTkYeqnYzoDCsgwWRISfHs ErCaXskTDybfbz2JYKGpW/8M7oDVjGFKo41AeCeEdz+DHGkQuEVjpbSy+iT4gyk1bzcTYm D27aausG13IyiCM4ooUG9mJfPpyfVtQ= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745918944; a=rsa-sha256; cv=none; b=E/am9rHuT6DdrbgiM2bjksNpNNS1Pmoifjy47ywARRLFTvLMcWG0ogewTFHIDZCRuyFode 4O52Mlp2mtoWppLOurGjVH9UrB1xRAb9J9xap7ahNV8js2Hg9rIVqheRx+IPi6/LhwUATb 1RdIrbFvvGLc8KmBYMN1TB4R6ImL15M= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Cfhi5YPQ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf15.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.182 as permitted sender) smtp.mailfrom=ryncsn@gmail.com Received: by mail-lj1-f182.google.com with SMTP id 38308e7fff4ca-30bee278c2aso71316801fa.0 for ; Tue, 29 Apr 2025 02:29:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745918943; x=1746523743; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=K4HbJI2TaZ5p5PECT4YgcEuGczzkMoTravmRNHRE5eI=; b=Cfhi5YPQsmzc1pBtPt59fci4NWC72SFHDu/bkkywAvWzNZScSFwf2u/kwW/egALkyi r+76k4v4IHq67kY6oW8PW5JnMr+6CZ6vmZotIwTUztkFy00gka4irJfgjN+8ZgBP1bll VoY+6y/UdTP+dwjtwiF791QVkQMe3kax5EOOuvYNPP/YVpgqjvjgdHi8NDe27v5n5OJf HsnKfzFOSyRmCl24b4AS/H5gf+wasRsIpck54mzr+POqrW6b+W330WPs8M8qJjgGixtG a/cqmiIWlGHzynri7NKAsNn+QXKwYrHZdw6tKVk22M7rz2If8v6seC8RWMKM07X/8YWk Ey8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745918943; x=1746523743; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=K4HbJI2TaZ5p5PECT4YgcEuGczzkMoTravmRNHRE5eI=; b=aSWBsvjoRswN4R+9fzoNB5/63LGTaXMdbN+v3/UvhjeU9BYgFoLSOe2K3WLdAPaT3o OIJtToHrQy9MHk7SIlzxz052fT9BQV1A3k1J+oB3BYmFtF9VgcJVw5HSj9qjXerRIK8R oFcbTskr+K7060LZj62ZkzzzXa7choTBprpSXkbk89t9QAXysK7lqK0rN58y3EQo1Hc6 1BO0zSLdiTnktG7gsgk8wZeYWARob7SlddX8RnvwINxnZZdGMQApY0Nk/z5M1hQk6cwR ab5AbRDaNUzwkyLos/a92QFEBFwdC5RzckgTp4ug3H25xRPYT2NBB8QYI+0Xa0aHrVX1 Yizw== X-Gm-Message-State: AOJu0YxqmXtKn7GRm0KDgpJWfWO0EIhql3smlelZwKNByKCYto0wHtSs T9s9Fj189wDxhubCAW744PH2rkBR82kycLZCezG5ZU9pfbOOmj/CKQIlOxWTTI/m422eeJuGwOH oHRsZDTBPSySuS+nceKrrKKNDme4= X-Gm-Gg: ASbGncvth56351/dV+DrJHDggd1osiZ9GyT0gkYv+TVqNzVvzULEUzRLfqxITrBN//q 45gf3OloLbRAAqYVFKxZncEJUsfB1ZnnyBX+7mfglhBpSDy3FShJHRJnWOANL2hXMnyfEOG/f4i P0uUcoX/4elcYyM4Jn1Nyd X-Google-Smtp-Source: AGHT+IESmF8fnKi74wMNXb/eCavuqV/Np6RfEqYXvn022sBQ1S/XO/vlRm6oW45MXTxrFvmT1XK7Rj5wMDy+FW2d3yw= X-Received: by 2002:a05:651c:239:b0:30c:1aa6:5565 with SMTP id 38308e7fff4ca-31d46cdac61mr6581451fa.20.1745918942346; Tue, 29 Apr 2025 02:29:02 -0700 (PDT) MIME-Version: 1.0 References: <20250313165935.63303-1-ryncsn@gmail.com> <20250313165935.63303-7-ryncsn@gmail.com> <20250428135252.25453B17-hca@linux.ibm.com> <20250429073122.8629Bfd-hca@linux.ibm.com> In-Reply-To: <20250429073122.8629Bfd-hca@linux.ibm.com> From: Kairui Song Date: Tue, 29 Apr 2025 17:28:44 +0800 X-Gm-Features: ATxdqUE8MV67NN4VfPof8UShLSKyGK-kjeH5qnLFyHPxBOwVyDA0D4sjxfEt1Ds Message-ID: Subject: Re: [PATCH v3 6/7] mm, swap: remove swap slot cache To: Heiko Carstens Cc: linux-mm@kvack.org, Andrew Morton , Chris Li , Barry Song , Hugh Dickins , Yosry Ahmed , "Huang, Ying" , Baoquan He , Nhat Pham , Johannes Weiner , Baolin Wang , Kalesh Singh , Matthew Wilcox , linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 9B2FAA000B X-Rspam-User: X-Stat-Signature: oh65gzw5usgoawq96e65ih7g3xkgrhop X-HE-Tag: 1745918944-501957 X-HE-Meta: U2FsdGVkX19S4vphxwkAXc2mtQRtqJJqH/qAfLZA4kBQEQxL8L0BaszUqguYAWNjJ6lXWTTJgE1Er93BUwXGwgp1Bo9tg4MMSWWefSjy1/8vg4Mm7VMDJqb3+EUfXkBY8SkJT5iznZAxiKASMUu6wuK/0dAdjhjZ25fNhGLO3AS+WDXHErcuxPRG6g3LcbCLX37VcNog0cfmz61VBxl0m4tuerOy42nmxM+QTwd7B1bpEjW25LA8tB1gB83gd5+dVY9YPcRG3T7hHH1/6e5GPRgWcKQUknubQl+RVHRDj+TKA8qTyLLNqlyos53omla/O8uXMvf98uoTb0GWxIyjHeuCYr/1NVQ3LpPpbY1/mjigoP3B5NIYJclaVMTCHyd6jrrkR5a2jdVfHSjcuA+f5eQ9FPPexCqtDFIFK0OHjQO4A+nrLdeRTu3TdaGFG5qkJ/Q1x14qT4gvQHBNG2rbRE7J75y+k9HznZO5lf1lkMb2DiLPZnJSuULQiG+3xW9A5EqOW94bpU2YsMqbuZ+uQy7Vr0UCxWo5vIvMshELKTIQg6+7nN9hbAL/iAZmVDuqb0FIj3YJ0I8A2YV9r7QvktLuQRz34rT1L+Jf/wM/fyu5zNzt9i+pD/e0jHVxPd2ZqeHqrO+A9dJwaK6i014c5ugUUN5373zTBmEM5FZ704d+Z8iLKKb0t6AnKDjdewUEesAttRksQuJ2X4IM3Tv2Mo5by6KDnkj/YnzqGdJQ4t+G0k7TsG9OTSfPwFV1uryiXkc3b/OK2FQgs1tOiJdBKeRnPSJTmNTr4+4yx3KIwdaNophqYjhO7otTOfq3xgOCefxd7KLP9Unvrqwr5LtdnEP4Nqyzq5BO/mTs6yvrPjErVDSHT4pG5H7aSwsbPZC9ms5YKj6pFe7tWyf8KYGXem3opj0J8oojGsf2IvJ9uc99XPSqsFOYoj9HDVciSBHY1ji5icL5OkJn4p880Lt poxrl4TD 509at5EJiIR1wZ0Q/59JW+Ws/j+3lhncuF+8FdFJxxqQB4By43t7gQK2DzsuwXX/8WfHRAzfNYY3QU/pwTYxxnhQGjnMbwfMqiXU5gQwFnBr8RwjIQROSqlg/c8/kEJk23O1ZHnWRw9smJtzUMOYCqSpXNlTXuGgVvVhe1crcnQdzkNZwNDVbM5ya1nMIhlpexI3kZ82FDXg4NOUlw3lV7iYGP1RL4NfRkf1RAhLdth+0CeuOiwRRaUUwEj7hOAHkQRzL4ua0YU8ZSGTkberMDh+Z5RaoZ1StHFojBaRhPKZE+qa+2BygxKYstSxNMJyuy0I54fhj5ngYUW/MOL7LzLhA4A== 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: On Tue, Apr 29, 2025 at 3:31=E2=80=AFPM Heiko Carstens = wrote: > > On Mon, Apr 28, 2025 at 11:31:59PM +0800, Kairui Song wrote: > > On Mon, Apr 28, 2025 at 9:53=E2=80=AFPM Heiko Carstens wrote: > > > > + if (order) { > > > > + /* > > > > + * Should not even be attempting large allocations wh= en huge > > > > + * page swap is disabled. Warn and fail the allocatio= n. > > > > + */ > > > > + if (!IS_ENABLED(CONFIG_THP_SWAP) || size > SWAPFILE_C= LUSTER) { > > > > + VM_WARN_ON_ONCE(1); > > > > + return entry; > > > > + } > > > > + } > > > > The !CONFIG_THP_SWAP check existed before because slot cache should > > reject high order allocation. But slot cache is gone, so large > > allocation will directly go to the allocator. > > > > It was not a meaningful WARN in the first place, and now the allocator > > should just fail silently for high order allocation, that's totally > > fine and expected and will just inform the caller to split the folio. > > > > I'll just change the WARN_ON condition to `if (order && size > > > SWAPFILE_CLUSTER)` then, this should silence the WARN. > > If I understand your suggestion correctly then this would be the > resulting code: > > diff --git a/mm/swapfile.c b/mm/swapfile.c > index 2eff8b51a945..5a7797143948 100644 > --- a/mm/swapfile.c > +++ b/mm/swapfile.c > @@ -1276,7 +1276,7 @@ int folio_alloc_swap(struct folio *folio, gfp_t gfp= ) > * 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_CLU= STER)) { > + if (order && size > SWAPFILE_CLUSTER) { > VM_WARN_ON_ONCE(1); > return -EINVAL; > } > > However, with that change I get this splat (and a few more) instead: Sorry my bad, the allocator needs to fail silencely, not ignore and go on. So it should be: 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); --- I've tested locally and it seems to work well, I'll send a patch to fix it.