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 94ADAC021B2 for ; Sat, 22 Feb 2025 07:33:54 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D0CB36B007B; Sat, 22 Feb 2025 02:33:53 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C947C6B0083; Sat, 22 Feb 2025 02:33:53 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B0EA46B0085; Sat, 22 Feb 2025 02:33:53 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 929416B007B for ; Sat, 22 Feb 2025 02:33:53 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 076EE4C19F for ; Sat, 22 Feb 2025 07:33:53 +0000 (UTC) X-FDA: 83146766346.25.96E8CE1 Received: from mail-lj1-f181.google.com (mail-lj1-f181.google.com [209.85.208.181]) by imf27.hostedemail.com (Postfix) with ESMTP id 1E4E540003 for ; Sat, 22 Feb 2025 07:33:50 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=X4RlsFfU; spf=pass (imf27.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.181 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740209631; 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=P7ZKJryv9NGH4ZmWrLm39lrMCcjM9XDhWwT1fHx65SY=; b=PZWolPD7Gy23G83bYb6ja1b/YPbj+WqhRdgiaBJil/i0QVLrgBqHQQdh/+18JPYfPnqjlz J3FNDp3snjrbhplDf0HfG5bPz8O5VuJ45GZFeUwEJvMdMRhTXg2e5MvH4VPn3ShjtH94dl YyNViqTIryUZA4TASQcrE8pvceRAW74= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=X4RlsFfU; spf=pass (imf27.hostedemail.com: domain of ryncsn@gmail.com designates 209.85.208.181 as permitted sender) smtp.mailfrom=ryncsn@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740209631; a=rsa-sha256; cv=none; b=Ps/PjFt6mO94ZVDf5TkEhnhCxWqsPRgGiNnbREJUyqTErFzOJ6D106Zw8Jx4UDeQ5dzXtt Vz21EeuNQesqfdjEZkUBnXejeGtetI+V5Le2AoTzMekmFauZbDa3vK3m+dLPq2rsU472aB 7+hTMq31OIgmBtEz8JaeYccfGwnZuHE= Received: by mail-lj1-f181.google.com with SMTP id 38308e7fff4ca-30761be8fa7so27074991fa.2 for ; Fri, 21 Feb 2025 23:33:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740209629; x=1740814429; 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=P7ZKJryv9NGH4ZmWrLm39lrMCcjM9XDhWwT1fHx65SY=; b=X4RlsFfURgtaANxig6sIX4VoAWv5WcKgFC4Xzl+lB0/0fQd8e2QpYEKWM1A1eS8hRH eMKua2k19BUFjjvJkmSdEiOUMEoHBnCJXCXNCC84NHOMhq5Dj6ANYXAVmFcN4Pyn6if5 IhBPfGkiH1l0DHlOsEdAm811MrQ8IJiaR+Gt5rmoggwd0P7pr2aQIejS7MNwHi1MwY4x XsI3sVMFVagIuOhCAd1ymo0b+oqoW064I9UGffPGR40V38740Kg4hbktB0Thz939XutI UNxEnC7enCZstUSt/AmsZV3ZBScUvyICfGGB+6+/vIznjHXP0VsNk5Y4mKWgdFtqUMlU m0qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740209629; x=1740814429; 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=P7ZKJryv9NGH4ZmWrLm39lrMCcjM9XDhWwT1fHx65SY=; b=q/00J24Byerb4Rbsx4lKLmTK7V2s6Z3IkUu6jYNbdGPcZ7Bra+jtz4u7+MNIc8eQXX uPI5rU/NdhM1cIS4hy/+iryUDUzeIEqrcGv0i0hkrtsAX780n8/665ijTY/q926sern/ B9NT2HynfGfXpwSmNTNUWK73mfBrSXyMlROaoq22dl4IK2GPDYKHXZLWe8ik3Y/FBjXa mALX3pGzHn6m50Uw46eqZf9QmJkZnl6rmIcoiCj5wjn7eqN7g7QYe9XabFE7qG8ifW+u rxy33qFLGXyEFMZQlBQIuyPIuNELLR0Ss1puCnGHgSdOO6SQ0p+iQAjgekCWZqlev81t 2UTA== X-Forwarded-Encrypted: i=1; AJvYcCXWUIUhVJLxBP/kXXLtXD5/ZkI/DlNI8hQwX28Y4AmcwCaaPmkBkPrgvbFSexLDSn6VXm7ZJUZ47A==@kvack.org X-Gm-Message-State: AOJu0Ywf9ImaInrxu2/1abrRuMJ1nLNu+rnnJ8sdy49UyzNeDxP564aP wxEic+osGnGO6y6tEITkte9sWLr5/r3l1Ni2h9T7s1AY6AeR92A7BNg1O2IBjkdF2B28nrLEpBi oTM7qiiojTP11n1e83tHzlxUgniY= X-Gm-Gg: ASbGncuJF176k+rrT92PmffurAMeDlt/q15v0Qbzhxba2ojMwRjKhMNcknmsJvekkBf 1hmRUnDriSw9W2ocSuQ8pJxcOcvbAeXQ3Z4gJjeS8IFWY4firoQfR9WBsVo22b8S8GZobS8izXc 42mT0hrrI= X-Google-Smtp-Source: AGHT+IE+5wfin6b8qJx/gOSmboC8SXpDUmpz+zf3njf90+6h3Xw4tyRxa1iHNH6nyq10vKtwnv+c/HJVjVeQhPrV7ho= X-Received: by 2002:a2e:869a:0:b0:302:3e14:34c8 with SMTP id 38308e7fff4ca-30a598f4533mr19695191fa.22.1740209628882; Fri, 21 Feb 2025 23:33:48 -0800 (PST) MIME-Version: 1.0 References: <20250222024617.2790609-1-mawupeng1@huawei.com> In-Reply-To: <20250222024617.2790609-1-mawupeng1@huawei.com> From: Kairui Song Date: Sat, 22 Feb 2025 15:33:32 +0800 X-Gm-Features: AWEUYZlfZbcM0FF1w8WoaqGDQmgeXg4HMMe0nmegtAUmY82DcLsXZJ5sMuPUiBU Message-ID: Subject: Re: [PATCH] mm: swap: Avoid infinite loop if no valid swap entry found during do_swap_page To: Wupeng Ma Cc: akpm@linux-foundation.org, david@redhat.com, ryan.roberts@arm.com, chrisl@kernel.org, huang.ying.caritas@gmail.com, schatzberg.dan@gmail.com, baohua@kernel.org, hanchuanhua@oppo.com, willy@infradead.org, gaoxu2@honor.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Nhat Pham , Yosry Ahmed Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: aw4wiphh3bcceqo6uwopa6oeix49knj7 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 1E4E540003 X-HE-Tag: 1740209630-843696 X-HE-Meta: U2FsdGVkX18+3QRvlttxHaL2RClznRjYPCKvCtLydidIsQzZY7WNL02BhmBcuQYaM9IJ5xQaZwOy5u5Jvts4MRIPHXlBiW+eClhGzJTIe5q4Sadjxn0UWB3RbzYN7pQCNp2E3oSaC7zbSuHLwvul1UqVZuljvkh1SK9v8+QiHSxuhoq5HuCA4ICV23udLQmyEvmjl4x2RW43rYijohkmSdtWl3DmiF6QFPrHq4hp4NK5sROGxD2KtbMvOOWmK2xLLJcFHLm+EwCcGvXhKp/uGUbrtxazThjsk0GPyV8inKOIot/LiLna/f3Nxe9t3bG2E37DMar1Ar25aRcAi7gkaB5GUVTyLhRlksosy5HdVKQoPXRv/TJK+WtFu+zwxUWk0YWOX9pxDRY/C7jnvHC3heVN9En9JQxyeeL15sd5oWEBOBRCuMjitgF4oiRkqKHb9b22SZpCTZafhneMvzgMBbWCQ0fv7nQrNnGGb6k3BqX8n1NvTYCHVGwAV46r6RoLglZLs+gjpB2Dh3YCAC1RT57ZJPcjIWJzG9ai0aeKDjefz19CmxhRRFpt2SnUsEzpwx4EPA7wy/gOr8hG5lUIK53cxXColzIr91RqVdXPkfOZ+rQamq6+W36s5I5beOLXP2r2ffDn05/eKp+a+ejRf9/gUVsxmEk065M6MZr4iSjyMu5qgRhAYST1yQEbx0kxk00R1zECYhjZlYeFpvmgToQ6Plyu3O2x+X6yZWtDW4LlvZZ5zlkfzQF3AWmwmifwanF4jCoCsRaGdoqAGo24L9abw60/X4Kqh/ctuXM+SHJGeIv+N/wFEcud0NHHUfh71dqJmMoo17L+h6gopqc7U2gpb2Ogf4fWl7zYZbkRL7W3V1oShVW30XUsW1KS3EL4rcMvnztzRQtK5LR/zlqvX07Y3ozrZyotykQa41IQv71cSoF1CcxZZH0KVOUifBKEI6agjlSYVrZVrOTI9kB CSv2uIr9 s/cT1hcWAJOi02+CI0KM7ny4uzQov7sD+1cOKSTnZvGbGSD2CMNUrRWrYrlFde2l4CA1VCyJm95tTO/FPWkFNMmL55yFeLXTZBSTTHKVABy1ljyxKMHHhG8nnQ6sqJvZ0GsoR4zYdyOgumiO7FqoRiPsXOrTTzZjOxoaHT1xmVpUw58EE7HEE1DP8T2cMdksQhNkv7HYbbZymITJK/rCEsRovv03xolUwcdKI90Pa+zstss6Ow8ZEeINBvtKjnGJtjTHWwcLnVrXSntpePP40gtkTQHAEQeaUTLrmaL/yBKaUgi7tIkx7IeC8lILZioiAYxXUTUSawz4TKG4hVGBCZCuFPQMGorgdNPIuLgVIqEGgjDf+kVSb87kuIVRLGzptTojI3h5FYaK4n8rmBN3nT4QK9IQec5/+/PeJjvxPkQ+LAKnpnF7vbyYkl/uUIAlNRnTO8DtOz9L6CTORqusVRkXo5yxZf81lkn6jER+w/zvm13LWVe2aOAG3djVD2eAPUnb9UdezPu/SudNMfspvW76QWmEk35chMO/X X-Bogosity: Ham, tests=bogofilter, spamicity=0.017582, 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 Sat, Feb 22, 2025 at 10:56=E2=80=AFAM Wupeng Ma w= rote: > > From: Ma Wupeng > > During our test, infinite loop is produced during #PF will lead to infini= te > error log as follow: > > get_swap_device: Bad swap file entry 114000000 > > Digging into the source, we found that the swap entry is invalid due to > unknown reason, and this lead to invalid swap_info_struct. Excessive log Hi Wupeng, What is the kernel version you are using? If it's another bug causing this invalid swap entry, we should fix that bug instead, not workaround it. This looks kind of similar to another PATCH & Bug report, corrupted page table or swap entry: https://lore.kernel.org/linux-mm/e223b0e6ba2f4924984b1917cc717bd5@honor.com= / Might be the same kernel bug? Gaoxu mentioned the bug was observed on Kernel 6.6.30 (android version), and neither of these two workarounds will fix it completely, the invalid value could cause many other issues too. We definitely need to find out the root cause. > printing can fill up the prioritized log space, leading to the purging of > originally valid logs and hindering problem troubleshooting. To make this > more robust, kill this task. > > Signed-off-by: Ma Wupeng > --- > include/linux/swap.h | 1 + > mm/memory.c | 9 ++++++++- > mm/swapfile.c | 2 +- > 3 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/include/linux/swap.h b/include/linux/swap.h > index b13b72645db3..0fa39cf66bc4 100644 > --- a/include/linux/swap.h > +++ b/include/linux/swap.h > @@ -508,6 +508,7 @@ struct backing_dev_info; > extern int init_swap_address_space(unsigned int type, unsigned long nr_p= ages); > extern void exit_swap_address_space(unsigned int type); > extern struct swap_info_struct *get_swap_device(swp_entry_t entry); > +struct swap_info_struct *_swap_info_get(swp_entry_t entry); > sector_t swap_folio_sector(struct folio *folio); > > static inline void put_swap_device(struct swap_info_struct *si) > diff --git a/mm/memory.c b/mm/memory.c > index b4d3d4893267..2d36e5a644d1 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4365,8 +4365,15 @@ vm_fault_t do_swap_page(struct vm_fault *vmf) > > /* Prevent swapoff from happening to us. */ > si =3D get_swap_device(entry); > - if (unlikely(!si)) > + if (unlikely(!si)) { > + if (unlikely(!_swap_info_get(entry))) > + /* > + * return VM_FAULT_SIGBUS for invalid swap entry = to > + * avoid infinite #PF. > + */ > + ret =3D VM_FAULT_SIGBUS; This could lead to VM_FAULT_SIGBUS on swapoff. After swapoff get_swap_device will return NULL.