From: Heiko Carstens <hca@linux.ibm.com>
To: Kairui Song <kasong@tencent.com>
Cc: linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
Chris Li <chrisl@kernel.org>, Barry Song <v-songbaohua@oppo.com>,
Hugh Dickins <hughd@google.com>,
Yosry Ahmed <yosryahmed@google.com>,
"Huang, Ying" <ying.huang@linux.alibaba.com>,
Baoquan He <bhe@redhat.com>, Nhat Pham <nphamcs@gmail.com>,
Johannes Weiner <hannes@cmpxchg.org>,
Baolin Wang <baolin.wang@linux.alibaba.com>,
Kalesh Singh <kaleshsingh@google.com>,
Matthew Wilcox <willy@infradead.org>,
linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org
Subject: Re: [PATCH v3 6/7] mm, swap: remove swap slot cache
Date: Mon, 28 Apr 2025 15:52:52 +0200 [thread overview]
Message-ID: <20250428135252.25453B17-hca@linux.ibm.com> (raw)
In-Reply-To: <20250313165935.63303-7-ryncsn@gmail.com>
Hi Kairui,
On Fri, Mar 14, 2025 at 12:59:34AM +0800, Kairui Song wrote:
> From: Kairui Song <kasong@tencent.com>
>
> Slot cache is no longer needed now, removing it and all related code.
...
> Signed-off-by: Kairui Song <kasong@tencent.com>
> Reviewed-by: Baoquan He <bhe@redhat.com>
> ---
> 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 = swap_entry_order(entry_order);
> - unsigned long size = 1 << order;
> + unsigned int order = folio_order(folio);
> + unsigned int size = 1 << order;
> struct swap_info_struct *si, *next;
> - int n_ret = 0;
> + swp_entry_t entry = {};
> + unsigned long offset;
> int node;
>
> + if (order) {
> + /*
> + * Should not even be attempting large allocations when huge
> + * page swap is disabled. Warn and fail the allocation.
> + */
> + if (!IS_ENABLED(CONFIG_THP_SWAP) || size > SWAPFILE_CLUSTER) {
> + 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):
------------[ cut here ]------------
WARNING: CPU: 1 PID: 895 at mm/swapfile.c:1227 folio_alloc_swap+0x438/0x440
Modules linked in:
CPU: 1 UID: 0 PID: 895 Comm: swapon01 Not tainted 6.14.0-rc6-00227-g0ff67f990bd4-dirty #25
Hardware name: IBM 3931 A01 704 (z/VM 7.4.0)
Krnl PSW : 0704d00180000000 000003ffe051210c (folio_alloc_swap+0x43c/0x440)
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 0000000000070000
0000000000000006 fffffef40e9da000 0000000000000000 0000037202fc4000
0000037f00000100 0000000000000100 0000037fe2e4b770 0000037202fc4000
0000000000000000 0000000000000000 000003ffe0512108 0000037fe2e4b3c8
Krnl Code: 000003ffe05120fe: b9160044 llgfr %r4,%r4
000003ffe0512102: c0e5ffdf8c0b brasl %r14,000003ffe0103918
#000003ffe0512108: af000000 mc 0,0
>000003ffe051210c: a7f4fe94 brc 15,000003ffe0511e34
000003ffe0512110: c0040069ce74 brcl 0,000003ffe124bdf8
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 ]---
next prev parent reply other threads:[~2025-04-28 13:53 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-13 16:59 [PATCH v3 0/7] " Kairui Song
2025-03-13 16:59 ` [PATCH v3 1/7] mm, swap: avoid reclaiming irrelevant swap cache Kairui Song
2025-03-13 16:59 ` [PATCH v3 2/7] mm, swap: drop the flag TTRS_DIRECT Kairui Song
2025-03-13 16:59 ` [PATCH v3 3/7] mm, swap: avoid redundant swap device pinning Kairui Song
2025-03-13 16:59 ` [PATCH v3 4/7] mm, swap: don't update the counter up-front Kairui Song
2025-03-13 16:59 ` [PATCH v3 5/7] mm, swap: use percpu cluster as allocation fast path Kairui Song
2025-03-13 16:59 ` [PATCH v3 6/7] mm, swap: remove swap slot cache Kairui Song
2025-04-28 13:52 ` Heiko Carstens [this message]
2025-04-28 15:31 ` Kairui Song
2025-04-29 7:31 ` Heiko Carstens
2025-04-29 9:28 ` Kairui Song
2025-03-13 16:59 ` [PATCH v3 7/7] mm, swap: simplify folio swap allocation Kairui Song
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250428135252.25453B17-hca@linux.ibm.com \
--to=hca@linux.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=baolin.wang@linux.alibaba.com \
--cc=bhe@redhat.com \
--cc=chrisl@kernel.org \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=kaleshsingh@google.com \
--cc=kasong@tencent.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-s390@vger.kernel.org \
--cc=nphamcs@gmail.com \
--cc=v-songbaohua@oppo.com \
--cc=willy@infradead.org \
--cc=ying.huang@linux.alibaba.com \
--cc=yosryahmed@google.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox