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 66993C369D5 for ; Mon, 28 Apr 2025 15:32:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 189796B00AF; Mon, 28 Apr 2025 11:32:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 139E36B00B0; Mon, 28 Apr 2025 11:32:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F1BCC6B00B1; Mon, 28 Apr 2025 11:32:20 -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 CED036B00AF for ; Mon, 28 Apr 2025 11:32:20 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 47C711A0A42 for ; Mon, 28 Apr 2025 15:32:21 +0000 (UTC) X-FDA: 83383844082.18.20AD04F Received: from mail-lj1-f172.google.com (mail-lj1-f172.google.com [209.85.208.172]) by imf10.hostedemail.com (Postfix) with ESMTP id 623EEC001C for ; Mon, 28 Apr 2025 15:32:19 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=CMwuWlFZ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.172 as permitted sender) smtp.mailfrom=ryncsn@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745854339; a=rsa-sha256; cv=none; b=TmLNz3a0AL4BSSkDmagg3QYq3quZuoGoN8V9ofG5uULfcluLC1LePWzadZIKOCK8LiTpEp Aapsd1Giv9kevk7AF0VQt8m+2stjfMNWRXjCdBw7OlI8+h93eRLL1nzy1cWZc1wxVRLVLc qpNjRtjSSmCcl+QCD18hLwAzmMTqj/Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745854339; 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=GAzpf+jZsNURvJKJ7gEoyysj3QFQZSEE9MfXOrJ2U9U=; b=OoqgKzJ+xzm9iwkqD5QatvaVvJ8kqz2XGFOW8Z90nowwRXGJ4xme+MfKP0tq+4AkM74VeO 4+Ab7rAHXMpU30ZCpXwrsG1WVlD8/4ym+jeKTBighhoLQL/lBzov/m9q109NM66m0N5mnx fo8JFeFGOGBnjmv74v/F577MPrOyU+o= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=CMwuWlFZ; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf10.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.172 as permitted sender) smtp.mailfrom=ryncsn@gmail.com Received: by mail-lj1-f172.google.com with SMTP id 38308e7fff4ca-30bfed67e08so52202921fa.2 for ; Mon, 28 Apr 2025 08:32:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745854337; x=1746459137; 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=GAzpf+jZsNURvJKJ7gEoyysj3QFQZSEE9MfXOrJ2U9U=; b=CMwuWlFZ+W0+63GHfhpFuWATfjCEUg5Lhip62camtSVY/PNd2O8fzSbkkxKtBWXgDO SEd/tUXMJd5NCHKGtlJMSTcDhfareZUmpfOHeYvShQv9yoyVlQLR7wDlGPpN19DEuD1x wazyb6UO2wxae/zNCBBF+gQa/JTVU39QG8u6lUKTQgHB/atx9nLqCD/nV+EDMHwnqkY+ mz1dSPV3OhPGKB8qSIgcfDKLr4QEVa+b0qcXQY8tcCjimKKCvffOJmSdZwzsC/1Kxiou dTkRtr1JajlzGnoP45ZcVtvOh8jJGAZG8aX06cNOzbtwKK/vvK6cNc+D65D7HNUtTth9 hDHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745854337; x=1746459137; 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=GAzpf+jZsNURvJKJ7gEoyysj3QFQZSEE9MfXOrJ2U9U=; b=WYMrDq76fhdBSTrlbU3ZX3hJqP6JXvl2il+btf8lOlISwmEDmGFnLNoO6G5VUvy803 QHoNoRa9qCazF3iXiCV3g6X9rzWbwVQHZVq9qlwHOS3sPOUS/gAATfIkgCY/YDmksBvK x7WoFn8g2+dWjZ2L/3OV0pWsmUVdi/9O3fpbREmhscJI5VaenSJ28CwcjYhmUK1Vfsin x2OnJJZx8UnQJvxOO8QfkFvcOygmfB1UCIq+EZzuXXiNd2VG9KU4lHe8b7SGAeFtQQpD 9F5JNggwvr1EkWjqtjpBIc+DySg0cQ+RfNNaFye89TWWIR4XCI46yOpTzGeahyY+Q069 Y5cg== X-Gm-Message-State: AOJu0Yzn9yec7/mXhYRDjsRXOd+5qm4TbtqLqe3KU0uuLtWrbfjpYV+I LTmKeQDYEkYE/gieDxunaxAFB7QjKa7uzkPEre1Agq/7erqElpl+qdxTsCsDzeWeb0IJ+i2x5vt IetndWDlUuRCpN0mJXMb1qoZOfHM= X-Gm-Gg: ASbGnctz/7DIQk5RkyQUPOmVeFyDmO1/a5ausXE8d6qrH3cS8ofwOWfEDoFXO/TYOJU TNwcx75y+BKJiepVr64PYVvN634u+zyXjqN7V+WEHpQcG/C6Z8mBa6+skJuDJFwneVoqroTR0kw KO3ahw8zLLBj8Jh2uHRgz/Sw== X-Google-Smtp-Source: AGHT+IGDO5RF7kFHdr3YlOJsQV/bWcwI6CDeJu7xMIXDaCLr0podmpKKtQTarQU0HLE2O8ZNM7cyUudVK5Cb2rn9kG4= X-Received: by 2002:a2e:ab09:0:b0:30c:16cd:8818 with SMTP id 38308e7fff4ca-319dc4155fdmr29376271fa.16.1745854337149; Mon, 28 Apr 2025 08:32:17 -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> In-Reply-To: <20250428135252.25453B17-hca@linux.ibm.com> From: Kairui Song Date: Mon, 28 Apr 2025 23:31:59 +0800 X-Gm-Features: ATxdqUEjwyrY63ilHzQFlcm-QUqw8ZEEMavj_Rw7q9capd6f1ZInGGUj8CObxpg 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: rspam06 X-Rspamd-Queue-Id: 623EEC001C X-Stat-Signature: 7p6gfa9oor4iaexoagyujcmnkacupz9g X-Rspam-User: X-HE-Tag: 1745854339-346255 X-HE-Meta: U2FsdGVkX1/ax1EVS8MhZMR7T8CyODUrRSBGlVC2QL+A1lMc1hu9dC+fDJ43KnEoPAaWRxucJ3F+RkI1iF8ktBTGshOvtBTdMxOjwmiY8fcM5aK9PHh9TzhzbxL/jVi7ifcuDcJPaQYz4U0nX+0YhIux3q07i85vPNUCGKnQCrHktRfDW7kP4s1QaEzkCArijPlm3Ou6xUpyOk3e3aqhpynyscJqe9ZO7gb0YDRYwFRGVhP5zFhbMmP8BMAZ8+0czkfm2BTW66M2wNPyDx0vD2nWF2uZzp0MH5IDhVeyFlu9Kytl94PasFoEQ2LE1yoNJhAYHJ9M78HLPnpTuzjCMrNERVphTh6oLY89+o9D2eusMwKpMtmjvF0q5LuEg0Uf7Y4frioKLDMZ5v1ciwe6HkqkzUOJhdlZmOXplBpjZbP5Tej/XoykldqvZUWpJMwxYuLeNjEVY/yjtnEsawwTLX6ao9rB7DR/HsKieO+Zi0u/nn4Kaqs3vmsi/+amWFbqgNRz15Af9Hag+2xpwAKUdJq4VPvi7QHCWLhCpu6rJlmJkR58h3E5i1COWWx6ejT6i2RDn7tf/pXrIyi7M9W2VZR9pjbKZZ0VAsET2G4U9m4q38NtBPr7aJDX/MuDoxO8rd/AJBY3W54Ws3kCgIfi/H8rp6/jlWjubGqyAdSa9WB7WMUuQ/Yp86ybjvjE9f3VP6UOHfWSAdzX24MFXZ1qwC7N/649ycbWVB02up234w/fSv/fYqUdtWKYEE25XtKgA+rwlwNDobIQ/cJ5uedRwzGwz94Ov8V63dLQNvbSd2JI7XCfcQa6mmF9FMwVuFLVyS5u0Ld/N1DETRwDI4Gwqu2tVRc6/EWFS0lVZdRA3smPqGAznhRagkQyFJBWTAbvw7QGntDa7s6ZYq4T4ystWWeR75uH7lkVVn9kJjC0aU4nAkhiuDTgHoWALGNEeNAWMcY0MlJ7E1DqkylqncS edzf53VI 9QwBaoPJ16ZeHH/D8aX1zjBPziy0Yc7QyjzdUFM2KcFkExxRUBcguurRU05vZ80SjjfvtPV3cQ+iPoUX8cZcYLw+BjpbMOpR4DnrWzg7blnEWrjRrKWtN5X+TBzG/JURwpUXvfoh0JH1UgJv+3EPfAYfz4BI7zZYpNXrTZnkOTueres7UrzjlgMa5LGrNq7b0GK3v66S8DJFn3KhDbRWMdcfcKXwXo0h4xjaHV2g9bfMAHfd0RYAvaovYbTjNl2WIffnMCknoxKH+PbTb7KPx38rLPZyMMEHGdRdq/tJH/0m+NVb3UuWh09aYb17HZkFbsw+qHmvDrnqBGCac4cvzknPYeXtMPIIzsXllBEtpRB9ed6HySsld7MWgrCIuG1K1Jf9342RRxepGhIk= 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 Mon, Apr 28, 2025 at 9:53=E2=80=AFPM Heiko Carstens = wrote: > > Hi Kairui, > > On Fri, Mar 14, 2025 at 12:59:34AM +0800, Kairui Song wrote: > > From: Kairui Song > > > > Slot cache is no longer needed now, removing it and all related code. > ... > > Signed-off-by: Kairui Song > > Reviewed-by: Baoquan He > > --- > > include/linux/swap.h | 3 - > > include/linux/swap_slots.h | 28 ---- > > mm/Makefile | 2 +- > > mm/swap_slots.c | 295 ------------------------------------- > > mm/swap_state.c | 8 +- > > mm/swapfile.c | 194 ++++++++---------------- > > 6 files changed, 67 insertions(+), 463 deletions(-) > > delete mode 100644 include/linux/swap_slots.h > > delete mode 100644 mm/swap_slots.c > ... > > diff --git a/mm/swapfile.c b/mm/swapfile.c > ... > > +swp_entry_t folio_alloc_swap(struct folio *folio) > > { > > - int order =3D swap_entry_order(entry_order); > > - unsigned long size =3D 1 << order; > > + unsigned int order =3D folio_order(folio); > > + unsigned int size =3D 1 << order; > > struct swap_info_struct *si, *next; > > - int n_ret =3D 0; > > + swp_entry_t entry =3D {}; > > + unsigned long offset; > > int node; > > > > + if (order) { > > + /* > > + * Should not even be attempting large allocations when h= uge > > + * page swap is disabled. Warn and fail the allocation. > > + */ > > + if (!IS_ENABLED(CONFIG_THP_SWAP) || size > SWAPFILE_CLUST= ER) { > > + VM_WARN_ON_ONCE(1); > > + return entry; > > + } > > + } > > This warning triggers on s390. CONFIG_THP_SWAP is disabled and order > is 8 when this triggers (reproduced with ltp's swapon01 test case): Hi Heiko, Thanks for the report. > > ------------[ cut here ]------------ > WARNING: CPU: 1 PID: 895 at mm/swapfile.c:1227 folio_alloc_swap+0x438/0x4= 40 > Modules linked in: > CPU: 1 UID: 0 PID: 895 Comm: swapon01 Not tainted 6.14.0-rc6-00227-g0ff67= f990bd4-dirty #25 > Hardware name: IBM 3931 A01 704 (z/VM 7.4.0) > Krnl PSW : 0704d00180000000 000003ffe051210c (folio_alloc_swap+0x43c/0x44= 0) > R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:1 PM:0 RI:0 EA:3 > Krnl GPRS: 0000000080000000 0000000000000001 0000000000000013 00000000000= 70000 > 0000000000000006 fffffef40e9da000 0000000000000000 0000037202f= c4000 > 0000037f00000100 0000000000000100 0000037fe2e4b770 0000037202f= c4000 > 0000000000000000 0000000000000000 000003ffe0512108 0000037fe2e= 4b3c8 > Krnl Code: 000003ffe05120fe: b9160044 llgfr %r4,%r4 > 000003ffe0512102: c0e5ffdf8c0b brasl %r14,000003ffe01= 03918 > #000003ffe0512108: af000000 mc 0,0 > >000003ffe051210c: a7f4fe94 brc 15,000003ffe0511= e34 > 000003ffe0512110: c0040069ce74 brcl 0,000003ffe124bd= f8 > 000003ffe0512116: eb8ff0580024 stmg %r8,%r15,88(%r15= ) > 000003ffe051211c: b90400ef lgr %r14,%r15 > 000003ffe0512120: e3f0ffb8ff71 lay %r15,-72(%r15) > Call Trace: > [<000003ffe051210c>] folio_alloc_swap+0x43c/0x440 > [<000003ffe050afa6>] add_to_swap+0x56/0xf0 > [<000003ffe045fdc0>] shrink_folio_list+0xe80/0x13b0 > [<000003ffe0461946>] shrink_inactive_list+0x1a6/0x550 > [<000003ffe04624a2>] shrink_lruvec+0x2b2/0x410 > [<000003ffe0462840>] shrink_node_memcgs+0x240/0x2d0 > [<000003ffe0462986>] shrink_node+0xb6/0x3e0 > [<000003ffe046302a>] do_try_to_free_pages+0xda/0x610 > [<000003ffe0464d2c>] try_to_free_mem_cgroup_pages+0x14c/0x2a0 > [<000003ffe0568270>] try_charge_memcg+0x220/0x5d0 > [<000003ffe056867a>] charge_memcg+0x5a/0x270 > [<000003ffe056a484>] __mem_cgroup_charge+0x44/0x80 > [<000003ffe04acf20>] alloc_anon_folio+0x280/0x610 > [<000003ffe04ad45a>] do_anonymous_page+0x1aa/0x5e0 > [<000003ffe04af4c4>] __handle_mm_fault+0x244/0x500 > [<000003ffe04af820>] handle_mm_fault+0xa0/0x170 > [<000003ffe01533f8>] do_exception+0x1d8/0x4a0 > [<000003ffe11fb92a>] __do_pgm_check+0x13a/0x220 > [<000003ffe120c3ce>] pgm_check_handler+0x11e/0x170 > ---[ end trace 0000000000000000 ]--- > 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.