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 AB58AECAA24 for ; Thu, 25 Aug 2022 18:46:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0C8066B0074; Thu, 25 Aug 2022 14:46:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 04F196B0075; Thu, 25 Aug 2022 14:46:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E0AE9940007; Thu, 25 Aug 2022 14:46:30 -0400 (EDT) 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 CB2B26B0074 for ; Thu, 25 Aug 2022 14:46:30 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id A8B27C032E for ; Thu, 25 Aug 2022 18:46:30 +0000 (UTC) X-FDA: 79838995740.30.A4A3CC8 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf11.hostedemail.com (Postfix) with ESMTP id E8BF74000D for ; Thu, 25 Aug 2022 18:46:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Transfer-Encoding: Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date: Sender:Reply-To:Content-ID:Content-Description; bh=oGzk6lX6I4UN7EWNcCCEu8waNSu4Pc106BZv7EmOYwI=; b=uHRBcmRkQvPmDqrhe53imWf1yH XjHsUhq5EMOF4h+5CtC5MEK2gsUucZA7Q+GuTtiIDrU40VmzCdPjuQ1wpBrrD6l5sCrlqMqheX5jj y0ZRDmlAVq9Bl34EtFnG7ZUbQGpvX7aZO9BrrTJr1HT4YzzN43kmxBPlHx97658z8HZu0rQzdU+TH yieFBhfMga5TQBpCXh2BnvJgkhIQWaT9E97u5JgwFU1IQB50b02K43ABpLAYFF1hoEZZ7C9yIPSDy 9MQB1VHf87xZjD6OC1ZTpdDBWaZ8VvuD9sCI1CBagt68si5SPkoc/0ioxRByyDOEEr9tJ5cSqAHpB Eg2xzT/w==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1oRHrz-00HTbF-EQ; Thu, 25 Aug 2022 18:46:23 +0000 Date: Thu, 25 Aug 2022 19:46:23 +0100 From: Matthew Wilcox To: Yang Shi Cc: Yu Zhao , Minchan Kim , Andrew Morton , Linux-MM , =?utf-8?B?6Z+p5aSp56GV?= , mawupeng Subject: Re: (resend)WARNING: trying to isolate tail page in isolate_lru_page Message-ID: References: <485f8c33.2471b.182d5726afb.Coremail.hantianshuo@iie.ac.cn> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=uHRBcmRk; spf=none (imf11.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1661453190; a=rsa-sha256; cv=none; b=yNaD3tF6QPO16fKABJ3el0nD+pE67HIuRH9wlMZX3b0pb+jqmGwDjmVCBOINgzFwTViECz HQsTFr3yC9l7ZsJFyvKBG8wSJYEqlQfMyUIZz2ZDp8RbN9CykqSZRWaKMCzKkvj1eIE0S3 fmYM6p2FXkeX0/gYFVwSA+4pZbPqask= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1661453190; 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=oGzk6lX6I4UN7EWNcCCEu8waNSu4Pc106BZv7EmOYwI=; b=OR8do6TzTcCmUr+SVVDQ9TOw96yMx76DTV9ew9ouv4pwvZowLSug5+IdKP5vK5Oq9WzqgN sUwurUqWOC9J+w2G/YHL+4eTMivQKSEKyjbA4co9GRuaoXYeXqzLoaMfubFUkvV3zcT5iV uJ1Cfn68hCnQIMmipbsbzVLzqItbrC4= X-Rspam-User: X-Rspamd-Queue-Id: E8BF74000D X-Stat-Signature: 17fukfpz8e5bbxsbm7jgz8w8wkm4yudb Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=uHRBcmRk; spf=none (imf11.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none X-Rspamd-Server: rspam01 X-HE-Tag: 1661453189-130600 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: On Thu, Aug 25, 2022 at 11:40:11AM -0700, Yang Shi wrote: > On Thu, Aug 25, 2022 at 11:23 AM Matthew Wilcox wrote: > > > > On Thu, Aug 25, 2022 at 10:50:19AM -0600, Yu Zhao wrote: > > > On Thu, Aug 25, 2022 at 8:40 AM 韩天硕 wrote: > > > > > > > > Hello: > > > > > > > > My Syzkaller reported me the following issue on: > > > > > > > > > > > > HEAD commit: 072e51356cd5a4a1c12c1020bc054c99b98333df Merge tag 'nfs-for-5.20-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs > > > > > > > > git tree: upstream > > > > > > > > kernel config: defconfig > > > > > > > > compiler: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0 > > > > > > > > > > > > ------------[ cut here ]------------ > > > > trying to isolate tail page > > > > WARNING: CPU: 0 PID: 6175 at mm/folio-compat.c:158 isolate_lru_page+0x130/0x140 > > > > Modules linked in: > > > > CPU: 0 PID: 6175 Comm: syz-executor.0 Not tainted 5.18.12 #1 > > > > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 > > > > RIP: 0010:isolate_lru_page+0x130/0x140 > > > > Code: c3 89 c6 e8 22 4f f2 ff 85 db 75 0d e8 a9 4d f2 ff 44 89 e0 5b 5d 41 5c c3 e8 9c 4d f2 ff 48 c7 c7 a0 be 6a 93 e8 a9 f5 69 01 <0f> 0b eb de 66 66 2e 0f 1f 84 00 00 00 00 00 90 41 54 55 48 89 fd > > > > loop3: detected capacity change from 0 to 16383 > > > > RSP: 0018:ffff88800844f8b8 EFLAGS: 00010282 > > > > RAX: 0000000000000000 RBX: 0000000000000001 RCX: 0000000000000000 > > > > RDX: ffffc90000509000 RSI: ffff8880037997c0 RDI: ffffed1001089f09 > > > > RBP: ffffea000010b040 R08: ffffffff8117b3f8 R09: 0000000000000000 > > > > R10: 0000000000000005 R11: ffffed100d2c4ead R12: 00000000fffffff0 > > > > R13: ffff88800185aff0 R14: ffffea000010b048 R15: 0000000021000000 > > > > FS: 00007f8acbd46700(0000) GS:ffff888069600000(0000) knlGS:0000000000000000 > > > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > > > > CR2: 0000001b2c821000 CR3: 0000000005028005 CR4: 0000000000770ef0 > > > > DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > > > > nfs4: Unknown parameter 'vfat' > > > > DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 > > > > PKRU: 55555554 > > > > Call Trace: > > > > > > > > madvise_cold_or_pageout_pte_range+0x43b/0x8f0 > > > > __walk_page_range+0xa48/0x1310 > > > > walk_page_range+0x14b/0x280 > > > > madvise_pageout+0x184/0x260 > > > > madvise_vma_behavior+0x843/0x13f0 > > > > do_madvise+0x310/0x5b0 > > > > __x64_sys_madvise+0x5f/0x70 > > > > do_syscall_64+0x38/0x90 > > > > entry_SYSCALL_64_after_hwframe+0x44/0xae > > > > RIP: 0033:0x7f8acc5d38bd > > > > Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48 > > > > RSP: 002b:00007f8acbd45bf8 EFLAGS: 00000246 ORIG_RAX: 000000000000001c > > > > RAX: ffffffffffffffda RBX: 00007f8acc6f2f60 RCX: 00007f8acc5d38bd > > > > RDX: 0000000000000015 RSI: 0000000000004000 RDI: 0000000020ffc000 > > > > RBP: 00007f8acc6400a9 R08: 0000000000000000 R09: 0000000000000000 > > > > R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 > > > > R13: 00007ffec656fb0f R14: 00007ffec656fcb0 R15: 00007f8acbd45d80 > > > > > > > > > > The above is from 5.18. Another report from 5.10: > > > https://lore.kernel.org/r/d927a335-a70b-48d3-9645-1d33cc88bd9c@huawei.com/ > > > > > > We also hit it on 5.4, 5.10 and 5.15: > > > trying to isolate tail page > > > WARNING: CPU: 1 PID: 4608 at mm/vmscan.c:2096 > > > isolate_lru_page+0xb4/0x527 mm/vmscan.c:2096 > > > Modules linked in: > > > > Looks like my analysis from yesterday was dropped: > > > > : This all seems quite plausible. The reproducer seems to (correct me > > : if I'm wrong) create an AF_PACKET socket and mmap it. af_packet.c > > : seems to create compound pages and mmap them. This isn't folio-related > > : at all; I just moved the code that warns about it from mm/vmscan.c to > > : folio-compat.c. > > : > > : Looks like a long-standing bug in MADV_PAGEOUT to me. > > Such page should never be on lru, right? We could test lru before > calling isolate_lru_page() for this case? I know isolate_lru_page() > does the check, but the tail page warning is raised before the check. > > Could the tail page warning be moved under the lru flag test? Seems > possible, but it should need extra handling (re-set lru flag). Seems a > little bit overkilling. There's a number of ways of solving this. I'm interested in seeing which one Minchan thinks is best.