From patchwork Sat Dec 25 05:12:32 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 12699171 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 0EACCC433F5 for ; Sat, 25 Dec 2021 05:12:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8AA0A6B0073; Sat, 25 Dec 2021 00:12:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 859796B0075; Sat, 25 Dec 2021 00:12:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7498A6B0078; Sat, 25 Dec 2021 00:12:35 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0133.hostedemail.com [216.40.44.133]) by kanga.kvack.org (Postfix) with ESMTP id 64EF86B0073 for ; Sat, 25 Dec 2021 00:12:35 -0500 (EST) Received: from smtpin29.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 189D88B315 for ; Sat, 25 Dec 2021 05:12:35 +0000 (UTC) X-FDA: 78955146270.29.ED905B6 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf19.hostedemail.com (Postfix) with ESMTP id A7D961A0019 for ; Sat, 25 Dec 2021 05:12:34 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id E74A860C78; Sat, 25 Dec 2021 05:12:33 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E5AA6C36AE5; Sat, 25 Dec 2021 05:12:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1640409153; bh=ftvWK7fZ+YREUmWuRptkmXPUWgee6d9+glTbKZ7jJ+0=; h=Date:From:To:Subject:In-Reply-To:From; b=q8nhDriIAiahepZhD5HBwQbZlee8lSyNeKAKXLvVdWj+CYfdkqKDDEMzz7t54Otz8 6lSAGHrGum6ggUcEpayjKLx0EN+odf/BGKUfb8XeK29GEdud4qMz2MUsgfQFo7jmgs GEOcqjVbqwCakVdwRI76sGZpRdLpAf1dBHfijN+I= Date: Fri, 24 Dec 2021 21:12:32 -0800 From: Andrew Morton To: akpm@linux-foundation.org, dvyukov@google.com, elver@google.com, glider@google.com, hulkci@huawei.com, libaokun1@huawei.com, linux-mm@kvack.org, mm-commits@vger.kernel.org, torvalds@linux-foundation.org, wangkefeng.wang@huawei.com, yukuai3@huawei.com Subject: [patch 1/9] kfence: fix memory leak when cat kfence objects Message-ID: <20211225051232.Xrw2Ipiny%akpm@linux-foundation.org> In-Reply-To: <20211224211127.30b60764d059ff3b0afea38a@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: A7D961A0019 X-Stat-Signature: i9tg85qyxsyrjtjkj8qc5rgyiasuft5p Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=q8nhDriI; spf=pass (imf19.hostedemail.com: domain of akpm@linux-foundation.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none X-HE-Tag: 1640409154-785939 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: From: Baokun Li Subject: kfence: fix memory leak when cat kfence objects Hulk robot reported a kmemleak problem: ----------------------------------------------------------------------- unreferenced object 0xffff93d1d8cc02e8 (size 248): comm "cat", pid 23327, jiffies 4624670141 (age 495992.217s) hex dump (first 32 bytes): 00 40 85 19 d4 93 ff ff 00 10 00 00 00 00 00 00 .@.............. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<00000000db5610b3>] seq_open+0x2a/0x80 [<00000000d66ac99d>] full_proxy_open+0x167/0x1e0 [<00000000d58ef917>] do_dentry_open+0x1e1/0x3a0 [<0000000016c91867>] path_openat+0x961/0xa20 [<00000000909c9564>] do_filp_open+0xae/0x120 [<0000000059c761e6>] do_sys_openat2+0x216/0x2f0 [<00000000b7a7b239>] do_sys_open+0x57/0x80 [<00000000e559d671>] do_syscall_64+0x33/0x40 [<000000000ea1fbfd>] entry_SYSCALL_64_after_hwframe+0x44/0xa9 unreferenced object 0xffff93d419854000 (size 4096): comm "cat", pid 23327, jiffies 4624670141 (age 495992.217s) hex dump (first 32 bytes): 6b 66 65 6e 63 65 2d 23 32 35 30 3a 20 30 78 30 kfence-#250: 0x0 30 30 30 30 30 30 30 37 35 34 62 64 61 31 32 2d 0000000754bda12- backtrace: [<000000008162c6f2>] seq_read_iter+0x313/0x440 [<0000000020b1b3e3>] seq_read+0x14b/0x1a0 [<00000000af248fbc>] full_proxy_read+0x56/0x80 [<00000000f97679d1>] vfs_read+0xa5/0x1b0 [<000000000ed8a36f>] ksys_read+0xa0/0xf0 [<00000000e559d671>] do_syscall_64+0x33/0x40 [<000000000ea1fbfd>] entry_SYSCALL_64_after_hwframe+0x44/0xa9 ----------------------------------------------------------------------- I find that we can easily reproduce this problem with the following commands: `cat /sys/kernel/debug/kfence/objects` `echo scan > /sys/kernel/debug/kmemleak` `cat /sys/kernel/debug/kmemleak` The leaked memory is allocated in the stack below: ---------------------------------- do_syscall_64 do_sys_open do_dentry_open full_proxy_open seq_open ---> alloc seq_file vfs_read full_proxy_read seq_read seq_read_iter traverse ---> alloc seq_buf ---------------------------------- And it should have been released in the following process: ---------------------------------- do_syscall_64 syscall_exit_to_user_mode exit_to_user_mode_prepare task_work_run ____fput __fput full_proxy_release ---> free here ---------------------------------- However, the release function corresponding to file_operations is not implemented in kfence. As a result, a memory leak occurs. Therefore, the solution to this problem is to implement the corresponding release function. Link: https://lkml.kernel.org/r/20211206133628.2822545-1-libaokun1@huawei.com Fixes: 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure") Signed-off-by: Baokun Li Reported-by: Hulk Robot Acked-by: Marco Elver Reviewed-by: Kefeng Wang Cc: Alexander Potapenko Cc: Dmitry Vyukov Cc: Yu Kuai Signed-off-by: Andrew Morton --- mm/kfence/core.c | 1 + 1 file changed, 1 insertion(+) --- a/mm/kfence/core.c~kfence-fix-memory-leak-when-cat-kfence-objects +++ a/mm/kfence/core.c @@ -683,6 +683,7 @@ static const struct file_operations obje .open = open_objects, .read = seq_read, .llseek = seq_lseek, + .release = seq_release, }; static int __init kfence_debugfs_init(void) From patchwork Sat Dec 25 05:12:35 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 12699172 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 6C4FDC433FE for ; Sat, 25 Dec 2021 05:12:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B431A6B0075; Sat, 25 Dec 2021 00:12:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id AF20E6B0078; Sat, 25 Dec 2021 00:12:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9E1B76B007B; Sat, 25 Dec 2021 00:12:40 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0031.hostedemail.com [216.40.44.31]) by kanga.kvack.org (Postfix) with ESMTP id 907856B0075 for ; Sat, 25 Dec 2021 00:12:40 -0500 (EST) Received: from smtpin07.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 39FF088CE3 for ; Sat, 25 Dec 2021 05:12:40 +0000 (UTC) X-FDA: 78955146480.07.5ACC8D0 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf01.hostedemail.com (Postfix) with ESMTP id 1E33040041 for ; Sat, 25 Dec 2021 05:12:30 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id F392DB80939; Sat, 25 Dec 2021 05:12:37 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 627B7C36AE5; Sat, 25 Dec 2021 05:12:36 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1640409156; bh=uNyKebTzcIdoglhu867uyKUwwjmt/U1M4h+OErPnlAs=; h=Date:From:To:Subject:In-Reply-To:From; b=z4spDwkGBXW72yMFNbBX5Rad5oFe+mgXRuhMnaY/X3gioxuD37YNttVgc6opgB/yf m4tgra8mjYTWXbFBJ1lwhDO+Bo5dlzIIyXDYUp6tYLcGeIxoG9jmyttquldDkBy2KB 82L/avVMYi4MQMmfBI0h+qslNE2i/JvCQZiVlq88= Date: Fri, 24 Dec 2021 21:12:35 -0800 From: Andrew Morton To: aarcange@redhat.com, akpm@linux-foundation.org, arbn@yandex-team.com, linux-mm@kvack.org, mgorman@techsingularity.net, mhocko@suse.com, mm-commits@vger.kernel.org, rientjes@google.com, stable@vger.kernel.org, torvalds@linux-foundation.org Subject: [patch 2/9] mm: mempolicy: fix THP allocations escaping mempolicy restrictions Message-ID: <20211225051235.JoA_I5IqL%akpm@linux-foundation.org> In-Reply-To: <20211224211127.30b60764d059ff3b0afea38a@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 1E33040041 X-Stat-Signature: kzhtk7ocm95ffdi78fmjyihjatqxy3of Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=z4spDwkG; dmarc=none; spf=pass (imf01.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org X-HE-Tag: 1640409150-427453 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: From: Andrey Ryabinin Subject: mm: mempolicy: fix THP allocations escaping mempolicy restrictions alloc_pages_vma() may try to allocate THP page on the local NUMA node first: page = __alloc_pages_node(hpage_node, gfp | __GFP_THISNODE | __GFP_NORETRY, order); And if the allocation fails it retries allowing remote memory: if (!page && (gfp & __GFP_DIRECT_RECLAIM)) page = __alloc_pages_node(hpage_node, gfp, order); However, this retry allocation completely ignores memory policy nodemask allowing allocation to escape restrictions. The first appearance of this bug seems to be the commit ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings") The bug disappeared later in the commit 89c83fb539f9 ("mm, thp: consolidate THP gfp handling into alloc_hugepage_direct_gfpmask") and reappeared again in slightly different form in the commit 76e654cc91bb ("mm, page_alloc: allow hugepage fallback to remote nodes when madvised") Fix this by passing correct nodemask to the __alloc_pages() call. The demonstration/reproducer of the problem: $ mount -oremount,size=4G,huge=always /dev/shm/ $ echo always > /sys/kernel/mm/transparent_hugepage/defrag $ cat mbind_thp.c #include #include #include #include #include #include #include #include #define SIZE 2ULL << 30 int main(int argc, char **argv) { int fd; unsigned long long i; char *addr; pid_t pid; char buf[100]; unsigned long nodemask = 1; fd = open("/dev/shm/test", O_RDWR|O_CREAT); assert(fd > 0); assert(ftruncate(fd, SIZE) == 0); addr = mmap(NULL, SIZE, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0); assert(mbind(addr, SIZE, MPOL_BIND, &nodemask, 2, MPOL_MF_STRICT|MPOL_MF_MOVE)==0); for (i = 0; i < SIZE; i+=4096) { addr[i] = 1; } pid = getpid(); snprintf(buf, sizeof(buf), "grep shm /proc/%d/numa_maps", pid); system(buf); sleep(10000); return 0; } $ gcc mbind_thp.c -o mbind_thp -lnuma $ numactl -H available: 2 nodes (0-1) node 0 cpus: 0 2 node 0 size: 1918 MB node 0 free: 1595 MB node 1 cpus: 1 3 node 1 size: 2014 MB node 1 free: 1731 MB node distances: node 0 1 0: 10 20 1: 20 10 $ rm -f /dev/shm/test; taskset -c 0 ./mbind_thp 7fd970a00000 bind:0 file=/dev/shm/test dirty=524288 active=0 N0=396800 N1=127488 kernelpagesize_kB=4 Link: https://lkml.kernel.org/r/20211208165343.22349-1-arbn@yandex-team.com Fixes: ac5b2c18911f ("mm: thp: relax __GFP_THISNODE for MADV_HUGEPAGE mappings") Signed-off-by: Andrey Ryabinin Acked-by: Michal Hocko Acked-by: Mel Gorman Acked-by: David Rientjes Cc: Andrea Arcangeli Cc: Signed-off-by: Andrew Morton --- mm/mempolicy.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) --- a/mm/mempolicy.c~mm-mempolicy-fix-thp-allocations-escaping-mempolicy-restrictions +++ a/mm/mempolicy.c @@ -2140,8 +2140,7 @@ struct page *alloc_pages_vma(gfp_t gfp, * memory with both reclaim and compact as well. */ if (!page && (gfp & __GFP_DIRECT_RECLAIM)) - page = __alloc_pages_node(hpage_node, - gfp, order); + page = __alloc_pages(gfp, order, hpage_node, nmask); goto out; } From patchwork Sat Dec 25 05:12:39 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 12699173 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 694DFC433FE for ; Sat, 25 Dec 2021 05:12:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DB3186B0078; Sat, 25 Dec 2021 00:12:42 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D3B7A6B007B; Sat, 25 Dec 2021 00:12:42 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C2D9D6B007D; Sat, 25 Dec 2021 00:12:42 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0168.hostedemail.com [216.40.44.168]) by kanga.kvack.org (Postfix) with ESMTP id B3CA06B0078 for ; Sat, 25 Dec 2021 00:12:42 -0500 (EST) Received: from smtpin01.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 73E9E180E4EC7 for ; Sat, 25 Dec 2021 05:12:42 +0000 (UTC) X-FDA: 78955146564.01.627BD71 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf31.hostedemail.com (Postfix) with ESMTP id E586120043 for ; Sat, 25 Dec 2021 05:12:26 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 11E14B80B1E; Sat, 25 Dec 2021 05:12:41 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 91A9DC36AE5; Sat, 25 Dec 2021 05:12:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1640409159; bh=DWeIuh07cHVZm8NJyw4rNMyS8/atCEUdEw3jcDbjF88=; h=Date:From:To:Subject:In-Reply-To:From; b=efX1t84J+mapk1BAjbQMpw5Wy8c7SdDF5lQkCDyiezcAjJbK+TrB4Ar8eNC740l4R aBA7+Aagu6DcS+mNTr9HwnCVfKW1fHSXRRr5GVWq+B2u2TZi6ymgt6oINfxsmgCSzt HP2ulGfKeaH3JZEPizPNbYLpJ7F/ZektArsGF/9k= Date: Fri, 24 Dec 2021 21:12:39 -0800 From: Andrew Morton To: ahalaney@redhat.com, akpm@linux-foundation.org, bhe@redhat.com, linux-mm@kvack.org, mm-commits@vger.kernel.org, prudo@redhat.com, torvalds@linux-foundation.org Subject: [patch 3/9] kernel/crash_core: suppress unknown crashkernel parameter warning Message-ID: <20211225051239.TPFjGNEo6%akpm@linux-foundation.org> In-Reply-To: <20211224211127.30b60764d059ff3b0afea38a@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Stat-Signature: m8b4n87fcixp6eq6qar1e9qhpyd8db15 X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: E586120043 Authentication-Results: imf31.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=efX1t84J; spf=pass (imf31.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none X-HE-Tag: 1640409146-526184 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: From: Philipp Rudo Subject: kernel/crash_core: suppress unknown crashkernel parameter warning When booting with crashkernel= on the kernel command line a warning similar to [ 0.038294] Kernel command line: ro console=ttyS0 crashkernel=256M [ 0.038353] Unknown kernel command line parameters "crashkernel=256M", will be passed to user space. is printed. This comes from crashkernel= being parsed independent from the kernel parameter handling mechanism. So the code in init/main.c doesn't know that crashkernel= is a valid kernel parameter and prints this incorrect warning. Suppress the warning by adding a dummy early_param handler for crashkernel=. Link: https://lkml.kernel.org/r/20211208133443.6867-1-prudo@redhat.com Fixes: 86d1919a4fb0 ("init: print out unknown kernel parameters") Signed-off-by: Philipp Rudo Acked-by: Baoquan He Cc: Andrew Halaney Signed-off-by: Andrew Morton --- kernel/crash_core.c | 11 +++++++++++ 1 file changed, 11 insertions(+) --- a/kernel/crash_core.c~kernel-crash_core-suppress-unknown-crashkernel-parameter-warning +++ a/kernel/crash_core.c @@ -6,6 +6,7 @@ #include #include +#include #include #include @@ -295,6 +296,16 @@ int __init parse_crashkernel_low(char *c "crashkernel=", suffix_tbl[SUFFIX_LOW]); } +/* + * Add a dummy early_param handler to mark crashkernel= as a known command line + * parameter and suppress incorrect warnings in init/main.c. + */ +static int __init parse_crashkernel_dummy(char *arg) +{ + return 0; +} +early_param("crashkernel", parse_crashkernel_dummy); + Elf_Word *append_elf_note(Elf_Word *buf, char *name, unsigned int type, void *data, size_t data_len) { From patchwork Sat Dec 25 05:12:42 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 12699174 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 B6974C433EF for ; Sat, 25 Dec 2021 05:12:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 527596B007B; Sat, 25 Dec 2021 00:12:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4D74C6B007D; Sat, 25 Dec 2021 00:12:46 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3C7E06B007E; Sat, 25 Dec 2021 00:12:46 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0041.hostedemail.com [216.40.44.41]) by kanga.kvack.org (Postfix) with ESMTP id 2F1666B007B for ; Sat, 25 Dec 2021 00:12:46 -0500 (EST) Received: from smtpin16.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id C75E2180E4EC7 for ; Sat, 25 Dec 2021 05:12:45 +0000 (UTC) X-FDA: 78955146690.16.B8195B0 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf07.hostedemail.com (Postfix) with ESMTP id 6F08E40043 for ; Sat, 25 Dec 2021 05:12:45 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 34415B80B33; Sat, 25 Dec 2021 05:12:44 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A8CEEC36AE9; Sat, 25 Dec 2021 05:12:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1640409163; bh=0LopE99UsUzKUNaoGkZZMd2Kbrf1zLP+xyrdFm3haD8=; h=Date:From:To:Subject:In-Reply-To:From; b=EJss/6O5n/VAeK8wMmDvqZXalTB5xm4cIdu6D+GKe3wBZt80Q0wr1HRriIRo8CrIg 6j+3OOOIuXIKnhs7OARXGD653j+ec0HDbd4+42xhyJubSxqHaIRLEG2Tuaxk3LgI3i jR8shQjwcqdPkDvpVxtpvFfDfTy+k6fJtBPW00xU= Date: Fri, 24 Dec 2021 21:12:42 -0800 From: Andrew Morton To: akpm@linux-foundation.org, alexandre.belloni@bootlin.com, conor.culhane@silvaco.com, jianjun.wang@mediatek.com, linux-mm@kvack.org, miquel.raynal@bootlin.com, mm-commits@vger.kernel.org, rdunlap@infradead.org, ryder.lee@mediatek.com, torvalds@linux-foundation.org Subject: [patch 4/9] MAINTAINERS: mark more list instances as moderated Message-ID: <20211225051242.E35cHmAjf%akpm@linux-foundation.org> In-Reply-To: <20211224211127.30b60764d059ff3b0afea38a@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 6F08E40043 X-Stat-Signature: fsaho8cb9jrohzsoync5judk6rf89br9 Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="EJss/6O5"; spf=pass (imf07.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none X-HE-Tag: 1640409165-549699 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: From: Randy Dunlap Subject: MAINTAINERS: mark more list instances as moderated Some lists that are moderated are not marked as moderated consistently, so mark them all as moderated. Link: https://lkml.kernel.org/r/20211209001330.18558-1-rdunlap@infradead.org Signed-off-by: Randy Dunlap Cc: Miquel Raynal Cc: Conor Culhane Cc: Ryder Lee Cc: Jianjun Wang Cc: Alexandre Belloni Signed-off-by: Andrew Morton --- MAINTAINERS | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/MAINTAINERS~maintainers-mark-more-list-instances-as-moderated +++ a/MAINTAINERS @@ -14845,7 +14845,7 @@ PCIE DRIVER FOR MEDIATEK M: Ryder Lee M: Jianjun Wang L: linux-pci@vger.kernel.org -L: linux-mediatek@lists.infradead.org +L: linux-mediatek@lists.infradead.org (moderated for non-subscribers) S: Supported F: Documentation/devicetree/bindings/pci/mediatek* F: drivers/pci/controller/*mediatek* @@ -17423,7 +17423,7 @@ F: drivers/video/fbdev/sm712* SILVACO I3C DUAL-ROLE MASTER M: Miquel Raynal M: Conor Culhane -L: linux-i3c@lists.infradead.org +L: linux-i3c@lists.infradead.org (moderated for non-subscribers) S: Maintained F: Documentation/devicetree/bindings/i3c/silvaco,i3c-master.yaml F: drivers/i3c/master/svc-i3c-master.c From patchwork Sat Dec 25 05:12:45 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 12699175 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 27030C433FE for ; Sat, 25 Dec 2021 05:12:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 74AF16B007D; Sat, 25 Dec 2021 00:12:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6FA076B007E; Sat, 25 Dec 2021 00:12:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5C3056B0080; Sat, 25 Dec 2021 00:12:49 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0145.hostedemail.com [216.40.44.145]) by kanga.kvack.org (Postfix) with ESMTP id 4EB1A6B007D for ; Sat, 25 Dec 2021 00:12:49 -0500 (EST) Received: from smtpin02.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id E3E068249980 for ; Sat, 25 Dec 2021 05:12:48 +0000 (UTC) X-FDA: 78955146816.02.7D5978C Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf07.hostedemail.com (Postfix) with ESMTP id 891DA40043 for ; Sat, 25 Dec 2021 05:12:48 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 63115B8072F; Sat, 25 Dec 2021 05:12:47 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D675CC36AE5; Sat, 25 Dec 2021 05:12:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1640409166; bh=t1cKdzqXaN9juD51UD8CmyrMzm8EciQHDZMKnzSa3xk=; h=Date:From:To:Subject:In-Reply-To:From; b=oCc7X0JSK/XViToPutcUMR93WkiTlosKmOMselPvWweQ2xfsRlGV4fhngKzO5/Dq4 MD6PoyAvEnmImr1kTzCKxK7ekbdOKYmcNbOizFOTsEUSWcbBnhoSUnQsux2tJ/RDOA 0gXNN6ZQ3NTBafwGxAHzE6sgdfO2CqiKSsatZU58= Date: Fri, 24 Dec 2021 21:12:45 -0800 From: Andrew Morton To: akpm@linux-foundation.org, linux-mm@kvack.org, luofei@unicloud.com, mike.kravetz@oracle.com, mm-commits@vger.kernel.org, naoya.horiguchi@nec.com, stable@vger.kernel.org, torvalds@linux-foundation.org Subject: [patch 5/9] mm, hwpoison: fix condition in free hugetlb page path Message-ID: <20211225051245.qaFlHGVIZ%akpm@linux-foundation.org> In-Reply-To: <20211224211127.30b60764d059ff3b0afea38a@linux-foundation.org> User-Agent: s-nail v14.8.16 Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=oCc7X0JS; spf=pass (imf07.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none X-Rspamd-Queue-Id: 891DA40043 X-Stat-Signature: acgy68u5fq7eqiqiuq8axhryxtxd4o4w X-Rspamd-Server: rspam04 X-HE-Tag: 1640409168-53732 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: From: Naoya Horiguchi Subject: mm, hwpoison: fix condition in free hugetlb page path When a memory error hits a tail page of a free hugepage, __page_handle_poison() is expected to be called to isolate the error in 4kB unit, but it's not called due to the outdated if-condition in memory_failure_hugetlb(). This loses the chance to isolate the error in the finer unit, so it's not optimal. Drop the condition. This "(p != head && TestSetPageHWPoison(head)" condition is based on the old semantics of PageHWPoison on hugepage (where PG_hwpoison flag was set on the subpage), so it's not necessray any more. By getting to set PG_hwpoison on head page for hugepages, concurrent error events on different subpages in a single hugepage can be prevented by TestSetPageHWPoison(head) at the beginning of memory_failure_hugetlb(). So dropping the condition should not reopen the race window originally mentioned in commit b985194c8c0a ("hwpoison, hugetlb: lock_page/unlock_page does not match for handling a free hugepage") [naoya.horiguchi@linux.dev: fix "HardwareCorrupted" counter] Link: https://lkml.kernel.org/r/20211220084851.GA1460264@u2004 Link: https://lkml.kernel.org/r/20211210110208.879740-1-naoya.horiguchi@linux.dev Signed-off-by: Naoya Horiguchi Reported-by: Fei Luo Reviewed-by: Mike Kravetz Cc: [5.14+] Signed-off-by: Andrew Morton --- mm/memory-failure.c | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) --- a/mm/memory-failure.c~mm-hwpoison-fix-condition-in-free-hugetlb-page-path +++ a/mm/memory-failure.c @@ -1470,17 +1470,12 @@ static int memory_failure_hugetlb(unsign if (!(flags & MF_COUNT_INCREASED)) { res = get_hwpoison_page(p, flags); if (!res) { - /* - * Check "filter hit" and "race with other subpage." - */ lock_page(head); - if (PageHWPoison(head)) { - if ((hwpoison_filter(p) && TestClearPageHWPoison(p)) - || (p != head && TestSetPageHWPoison(head))) { + if (hwpoison_filter(p)) { + if (TestClearPageHWPoison(head)) num_poisoned_pages_dec(); - unlock_page(head); - return 0; - } + unlock_page(head); + return 0; } unlock_page(head); res = MF_FAILED; From patchwork Sat Dec 25 05:12:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 12699176 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 055ECC433EF for ; Sat, 25 Dec 2021 05:12:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8D0F36B0080; Sat, 25 Dec 2021 00:12:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 880C26B0081; Sat, 25 Dec 2021 00:12:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 76FCC6B0082; Sat, 25 Dec 2021 00:12:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0055.hostedemail.com [216.40.44.55]) by kanga.kvack.org (Postfix) with ESMTP id 69BE86B0080 for ; Sat, 25 Dec 2021 00:12:52 -0500 (EST) Received: from smtpin25.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 27B698249980 for ; Sat, 25 Dec 2021 05:12:52 +0000 (UTC) X-FDA: 78955146984.25.49F4947 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf02.hostedemail.com (Postfix) with ESMTP id 7BCC88000A for ; Sat, 25 Dec 2021 05:12:47 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 9A76EB80B2D; Sat, 25 Dec 2021 05:12:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 044EEC36AE5; Sat, 25 Dec 2021 05:12:48 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1640409169; bh=TI0picrzibbqMhFp+eSd2X7fi+1cVTHZ5kuwfKFkfnc=; h=Date:From:To:Subject:In-Reply-To:From; b=XpC0QkjZBUlVNJZlkzWQbK/axWHAz/pco1S4LBzRz1TPN727JIQ0iZmrHeka36oeh CwHk9jeAkFUBGsvL8bBdImGPCrgMRDEpF2kzcpe3GOFsLE18sZ3lgHGzBK+9EpO8VC xpg1BgU1zRhmKsQHBhkODfUGOsvaKrTrfofhC1AY= Date: Fri, 24 Dec 2021 21:12:48 -0800 From: Andrew Morton To: akpm@linux-foundation.org, hch@lst.de, hughd@google.com, kirill.shutemov@linux.intel.com, linux-mm@kvack.org, mm-commits@vger.kernel.org, rppt@linux.ibm.com, torvalds@linux-foundation.org, vbabka@suse.cz, william.kucharski@oracle.com, willy@infradead.org Subject: [patch 6/9] mm: delete unsafe BUG from page_cache_add_speculative() Message-ID: <20211225051248.N-f4erWZF%akpm@linux-foundation.org> In-Reply-To: <20211224211127.30b60764d059ff3b0afea38a@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Rspamd-Queue-Id: 7BCC88000A X-Stat-Signature: u8jfdbnxeof3mjmftacoyp9uasqm49y3 Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=XpC0QkjZ; dmarc=none; spf=pass (imf02.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org X-Rspamd-Server: rspam02 X-HE-Tag: 1640409167-945258 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: From: Hugh Dickins Subject: mm: delete unsafe BUG from page_cache_add_speculative() It is not easily reproducible, but on 5.16-rc I have several times hit the VM_BUG_ON_PAGE(PageTail(page), page) in page_cache_add_speculative(): usually from filemap_get_read_batch() for an ext4 read, yesterday from next_uptodate_page() from filemap_map_pages() for a shmem fault. That BUG used to be placed where page_ref_add_unless() had succeeded, but now it is placed before folio_ref_add_unless() is attempted: that is not safe, since it is only the acquired reference which makes the page safe from racing THP collapse or split. We could keep the BUG, checking PageTail only when folio_ref_try_add_rcu() has succeeded; but I don't think it adds much value - just delete it. Link: https://lkml.kernel.org/r/8b98fc6f-3439-8614-c3f3-945c659a1aba@google.com Fixes: 020853b6f5ea ("mm: Add folio_try_get_rcu()") Signed-off-by: Hugh Dickins Acked-by: Kirill A. Shutemov Reviewed-by: Matthew Wilcox (Oracle) Cc: Vlastimil Babka Cc: William Kucharski Cc: Christoph Hellwig Cc: Mike Rapoport Signed-off-by: Andrew Morton --- include/linux/pagemap.h | 1 - 1 file changed, 1 deletion(-) --- a/include/linux/pagemap.h~mm-delete-unsafe-bug-from-page_cache_add_speculative +++ a/include/linux/pagemap.h @@ -285,7 +285,6 @@ static inline struct inode *folio_inode( static inline bool page_cache_add_speculative(struct page *page, int count) { - VM_BUG_ON_PAGE(PageTail(page), page); return folio_ref_try_add_rcu((struct folio *)page, count); } From patchwork Sat Dec 25 05:12:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 12699177 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 0153BC433FE for ; Sat, 25 Dec 2021 05:12:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 91F886B0082; Sat, 25 Dec 2021 00:12:55 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 8A7DD6B0083; Sat, 25 Dec 2021 00:12:55 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 798176B0085; Sat, 25 Dec 2021 00:12:55 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0230.hostedemail.com [216.40.44.230]) by kanga.kvack.org (Postfix) with ESMTP id 676026B0082 for ; Sat, 25 Dec 2021 00:12:55 -0500 (EST) Received: from smtpin24.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id 24F92181AC9C6 for ; Sat, 25 Dec 2021 05:12:55 +0000 (UTC) X-FDA: 78955147110.24.D0C5DDD Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf18.hostedemail.com (Postfix) with ESMTP id 759361C004D for ; Sat, 25 Dec 2021 05:12:47 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id C2233B80B35; Sat, 25 Dec 2021 05:12:53 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 3CBB7C36AE9; Sat, 25 Dec 2021 05:12:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1640409172; bh=jPUpNfcBmAylk47gLumr+4CKaHngBKm43WyY6AGe6sU=; h=Date:From:To:Subject:In-Reply-To:From; b=ALQmLvE6+9vYqf8bBBPI0u+9wYJD96dF5vTqgRHZvNbjNa5imDeIAb+edAmGqcEBC 6QCuqqLue04Pdy0co/DRAXpNaBe0Mp6GfuPjZqvBi4Z63wcfr+chqCT6Zeq2KAKWg3 UZJtVVVBIO0fFkeDzTypbxYxU0RHZpJcFwYmXsVg= Date: Fri, 24 Dec 2021 21:12:51 -0800 From: Andrew Morton To: akpm@linux-foundation.org, danielmicay@gmail.com, keescook@chromium.org, levente@leventepolyak.net, linux-mm@kvack.org, mm-commits@vger.kernel.org, thibaut.sautereau@ssi.gouv.fr, torvalds@linux-foundation.org Subject: [patch 7/9] mm/page_alloc: fix __alloc_size attribute for alloc_pages_exact_nid Message-ID: <20211225051251.h8Du-oj8Q%akpm@linux-foundation.org> In-Reply-To: <20211224211127.30b60764d059ff3b0afea38a@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 759361C004D X-Stat-Signature: rkqkisad9xkroiyxuwmqgaoywtgq84h5 Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=ALQmLvE6; spf=pass (imf18.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none X-HE-Tag: 1640409167-741681 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: From: Thibaut Sautereau Subject: mm/page_alloc: fix __alloc_size attribute for alloc_pages_exact_nid The second parameter of alloc_pages_exact_nid is the one indicating the size of memory pointed by the returned pointer. Link: https://lkml.kernel.org/r/YbjEgwhn4bGblp//@coeus Fixes: abd58f38dfb4 ("mm/page_alloc: add __alloc_size attributes for better bounds checking") Signed-off-by: Thibaut Sautereau Acked-by: Kees Cook Cc: Daniel Micay Cc: Levente Polyak Signed-off-by: Andrew Morton --- include/linux/gfp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/include/linux/gfp.h~mm-page_alloc-fix-__alloc_size-attribute-for-alloc_pages_exact_nid +++ a/include/linux/gfp.h @@ -624,7 +624,7 @@ extern unsigned long get_zeroed_page(gfp void *alloc_pages_exact(size_t size, gfp_t gfp_mask) __alloc_size(1); void free_pages_exact(void *virt, size_t size); -__meminit void *alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask) __alloc_size(1); +__meminit void *alloc_pages_exact_nid(int nid, size_t size, gfp_t gfp_mask) __alloc_size(2); #define __get_free_page(gfp_mask) \ __get_free_pages((gfp_mask), 0) From patchwork Sat Dec 25 05:12:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 12699178 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 52C92C433EF for ; Sat, 25 Dec 2021 05:12:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E4E416B0085; Sat, 25 Dec 2021 00:12:58 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id DFEEC6B0087; Sat, 25 Dec 2021 00:12:58 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CEE436B0088; Sat, 25 Dec 2021 00:12:58 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0168.hostedemail.com [216.40.44.168]) by kanga.kvack.org (Postfix) with ESMTP id BDC196B0085 for ; Sat, 25 Dec 2021 00:12:58 -0500 (EST) Received: from smtpin04.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 8DA1B8249980 for ; Sat, 25 Dec 2021 05:12:58 +0000 (UTC) X-FDA: 78955147236.04.3F5B788 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf03.hostedemail.com (Postfix) with ESMTP id 06A5420025 for ; Sat, 25 Dec 2021 05:12:57 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id D3055B80B2D; Sat, 25 Dec 2021 05:12:56 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 5C01DC36AE5; Sat, 25 Dec 2021 05:12:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1640409175; bh=jwq1C0xCNOQZ4o6aepOLSPYYPk9cTF/tgIqKQoBxg34=; h=Date:From:To:Subject:In-Reply-To:From; b=xSA61ujtNjDkZtLPmLHfBT1+LxS6pJlEx5z4/wPNIzkseeNcv+WVWAq69gOWuqFFq akp2WTErizuLoHhgy46S4r8v952WtBksPb84YUcN4PY6xYWwQwiHup1HTEGgynsRVI FUCeyObq9KTOROLgioU7WDKAzKZVQ5NuuOYRKw4M= Date: Fri, 24 Dec 2021 21:12:54 -0800 From: Andrew Morton To: akpm@linux-foundation.org, linux-mm@kvack.org, mm-commits@vger.kernel.org, sangwoob@amazon.com, sj@kernel.org, stable@vger.kernel.org, torvalds@linux-foundation.org Subject: [patch 8/9] mm/damon/dbgfs: protect targets destructions with kdamond_lock Message-ID: <20211225051254.qnNQD42Wg%akpm@linux-foundation.org> In-Reply-To: <20211224211127.30b60764d059ff3b0afea38a@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Rspamd-Queue-Id: 06A5420025 X-Stat-Signature: 4ofr17q9x9nadsa348erqqncq5ot44a5 Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=xSA61ujt; spf=pass (imf03.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none X-Rspamd-Server: rspam10 X-HE-Tag: 1640409177-443254 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: From: SeongJae Park Subject: mm/damon/dbgfs: protect targets destructions with kdamond_lock DAMON debugfs interface iterates current monitoring targets in 'dbgfs_target_ids_read()' while holding the corresponding 'kdamond_lock'. However, it also destructs the monitoring targets in 'dbgfs_before_terminate()' without holding the lock. This can result in a use_after_free bug. This commit avoids the race by protecting the destruction with the corresponding 'kdamond_lock'. Link: https://lkml.kernel.org/r/20211221094447.2241-1-sj@kernel.org Reported-by: Sangwoo Bae Fixes: 4bc05954d007 ("mm/damon: implement a debugfs-based user space interface") Signed-off-by: SeongJae Park Cc: [5.15.x] Signed-off-by: Andrew Morton --- mm/damon/dbgfs.c | 2 ++ 1 file changed, 2 insertions(+) --- a/mm/damon/dbgfs.c~mm-damon-dbgfs-protect-targets-destructions-with-kdamond_lock +++ a/mm/damon/dbgfs.c @@ -650,10 +650,12 @@ static void dbgfs_before_terminate(struc if (!targetid_is_pid(ctx)) return; + mutex_lock(&ctx->kdamond_lock); damon_for_each_target_safe(t, next, ctx) { put_pid((struct pid *)t->id); damon_destroy_target(t); } + mutex_unlock(&ctx->kdamond_lock); } static struct damon_ctx *dbgfs_new_ctx(void) From patchwork Sat Dec 25 05:12:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Morton X-Patchwork-Id: 12699179 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 70592C433F5 for ; Sat, 25 Dec 2021 05:13:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 01E0E6B0088; Sat, 25 Dec 2021 00:13:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F115D6B0089; Sat, 25 Dec 2021 00:13:01 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DD9136B008A; Sat, 25 Dec 2021 00:13:01 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0148.hostedemail.com [216.40.44.148]) by kanga.kvack.org (Postfix) with ESMTP id CD84E6B0088 for ; Sat, 25 Dec 2021 00:13:01 -0500 (EST) Received: from smtpin02.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 8E508180E934D for ; Sat, 25 Dec 2021 05:13:01 +0000 (UTC) X-FDA: 78955147362.02.BEAB045 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf15.hostedemail.com (Postfix) with ESMTP id 1CF33A0046 for ; Sat, 25 Dec 2021 05:12:52 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id CAA8FB80939; Sat, 25 Dec 2021 05:12:59 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 33DB7C36AE5; Sat, 25 Dec 2021 05:12:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1640409179; bh=SgMRfPzvQcmhc31+bo+uLtucdaBKnrw6ZzF0pf5qZt4=; h=Date:From:To:Subject:In-Reply-To:From; b=Gkvv/aTqATuvvWbQCzXzcTzace/fG1B35jGOgjcbY1HXPqfk0JwI0+woUrcRJMBta qxK2Nw2LwDXjifZSmY8ABpLTol9F+3oOFSZe8BknsTD/GhMISU2CofNPNPligo3Bc0 bIMLOagQlvFZwFKlJosxI1vDKGowBTRUQF/r9vq0= Date: Fri, 24 Dec 2021 21:12:58 -0800 From: Andrew Morton To: akpm@linux-foundation.org, hulkci@huawei.com, linux-mm@kvack.org, liushixin2@huawei.com, mm-commits@vger.kernel.org, naoya.horiguchi@nec.com, osalvador@suse.de, stable@vger.kernel.org, torvalds@linux-foundation.org Subject: [patch 9/9] mm/hwpoison: clear MF_COUNT_INCREASED before retrying get_any_page() Message-ID: <20211225051258.AXb30IPQI%akpm@linux-foundation.org> In-Reply-To: <20211224211127.30b60764d059ff3b0afea38a@linux-foundation.org> User-Agent: s-nail v14.8.16 X-Rspamd-Queue-Id: 1CF33A0046 X-Stat-Signature: 7chs95j1bphbc5idmgp6geck3mgpm4yk Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b="Gkvv/aTq"; dmarc=none; spf=pass (imf15.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org X-Rspamd-Server: rspam02 X-HE-Tag: 1640409172-511797 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: From: Liu Shixin Subject: mm/hwpoison: clear MF_COUNT_INCREASED before retrying get_any_page() Hulk Robot reported a panic in put_page_testzero() when testing madvise() with MADV_SOFT_OFFLINE. The BUG() is triggered when retrying get_any_page(). This is because we keep MF_COUNT_INCREASED flag in second try but the refcnt is not increased. page dumped because: VM_BUG_ON_PAGE(page_ref_count(page) == 0) ------------[ cut here ]------------ kernel BUG at include/linux/mm.h:737! invalid opcode: 0000 [#1] PREEMPT SMP CPU: 5 PID: 2135 Comm: sshd Tainted: G B 5.16.0-rc6-dirty #373 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 RIP: 0010:release_pages+0x53f/0x840 Code: 0c 01 4c 8d 60 ff e9 5b fb ff ff 48 c7 c6 d8 97 0c b3 4c 89 e7 48 83 05 0e 7b 3c 0c 01 e8 89 3d 04 00 48 83 05 11 7b 3c 0c 01 <0f> 0b 48 83 05 0f 7b 3c 0c 01 48 83 05 0f 7b 3c 0c 01 48 83 05f RSP: 0018:ffffc900015a7bc0 EFLAGS: 00010002 RAX: 000000000000003e RBX: ffffffffbace04c8 RCX: 0000000000000002 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 00000000ffffffff RBP: ffff88817b9acd50 R08: 0000000000000000 R09: c0000000ffefffff R10: 0000000000000001 R11: ffffc900015a79b0 R12: ffffea0005e1c900 R13: ffffea0005e1de88 R14: 000000000000001f R15: ffff888100071000 FS: 0000000000000000(0000) GS:ffff88842fb40000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f305e8de3d4 CR3: 000000017bb6f000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: free_pages_and_swap_cache+0x64/0x80 tlb_flush_mmu+0x6f/0x220 unmap_page_range+0xe6c/0x12c0 unmap_single_vma+0x90/0x170 unmap_vmas+0xc4/0x180 exit_mmap+0xde/0x3a0 mmput+0xa3/0x250 do_exit+0x564/0x1470 do_group_exit+0x3b/0x100 __do_sys_exit_group+0x13/0x20 __x64_sys_exit_group+0x16/0x20 do_syscall_64+0x34/0x80 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f30625401d9 Code: Unable to access opcode bytes at RIP 0x7f30625401af. RSP: 002b:00007ffe391b0c88 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7 RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 00007f30625401d9 RDX: 0000000000000001 RSI: 0000000000000000 RDI: 0000000000000001 RBP: 00007f306283d838 R08: 000000000000003c R09: 00000000000000e7 R10: fffffffffffffe30 R11: 0000000000000246 R12: 00007f306283d838 R13: 00007f3062842e80 R14: 0000000000000000 R15: ffffaa4fb7932430 Modules linked in: ---[ end trace e99579b570fe0649 ]--- RIP: 0010:release_pages+0x53f/0x840 Code: 0c 01 4c 8d 60 ff e9 5b fb ff ff 48 c7 c6 d8 97 0c b3 4c 89 e7 48 83 05 0e 7b 3c 0c 01 e8 89 3d 04 00 48 83 05 11 7b 3c 0c 01 <0f> 0b 48 83 05 0f 7b 3c 0c 01 48 83 05 0f 7b 3c 0c 01 48 83 05f RSP: 0018:ffffc900015a7bc0 EFLAGS: 00010002 RAX: 000000000000003e RBX: ffffffffbace04c8 RCX: 0000000000000002 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 00000000ffffffff RBP: ffff88817b9acd50 R08: 0000000000000000 R09: c0000000ffefffff R10: 0000000000000001 R11: ffffc900015a79b0 R12: ffffea0005e1c900 R13: ffffea0005e1de88 R14: 000000000000001f R15: ffff888100071000 FS: 0000000000000000(0000) GS:ffff88842fb40000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f305e8de3d4 CR3: 000000017bb6f000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Link: https://lkml.kernel.org/r/20211221074908.3910286-1-liushixin2@huawei.com Fixes: b94e02822deb ("mm,hwpoison: try to narrow window race for free pages") Signed-off-by: Liu Shixin Reported-by: Hulk Robot Reviewed-by: Oscar Salvador Acked-by: Naoya Horiguchi Cc: Signed-off-by: Andrew Morton --- mm/memory-failure.c | 1 + 1 file changed, 1 insertion(+) --- a/mm/memory-failure.c~mm-hwpoison-clear-mf_count_increased-before-retrying-get_any_page +++ a/mm/memory-failure.c @@ -2234,6 +2234,7 @@ retry: } else if (ret == 0) { if (soft_offline_free_page(page) && try_again) { try_again = false; + flags &= ~MF_COUNT_INCREASED; goto retry; } }