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 8BE13C369C9 for ; Fri, 18 Apr 2025 19:50:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1896F280002; Fri, 18 Apr 2025 15:50:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 13DFC280001; Fri, 18 Apr 2025 15:50:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id ECF01280002; Fri, 18 Apr 2025 15:50:21 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id C7901280001 for ; Fri, 18 Apr 2025 15:50:21 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 071E680CEF for ; Fri, 18 Apr 2025 19:50:22 +0000 (UTC) X-FDA: 83348206284.14.38C3A02 Received: from mail-qk1-f172.google.com (mail-qk1-f172.google.com [209.85.222.172]) by imf10.hostedemail.com (Postfix) with ESMTP id DA0C6C0003 for ; Fri, 18 Apr 2025 19:50:19 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=bCROR8Rj; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf10.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.172 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745005820; a=rsa-sha256; cv=none; b=rrdIFVJv66bWkLkVvI1KGv5TZAz8kJOszdVyyxJUO/xJwdtrHKeoUVHNr9Bbg2lLdKc2ji 9scad0TkH5qAWbvfzB1cRBL9pH1sNrBFGzb0kgbJAKTKwqBxPjIWUMy8CXH3hF9iHQ06UF ugOPsBE0ebRGMyhmXU+uNv6JLywI2RM= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=cmpxchg-org.20230601.gappssmtp.com header.s=20230601 header.b=bCROR8Rj; dmarc=pass (policy=none) header.from=cmpxchg.org; spf=pass (imf10.hostedemail.com: domain of hannes@cmpxchg.org designates 209.85.222.172 as permitted sender) smtp.mailfrom=hannes@cmpxchg.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745005820; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=NZIpJlMfSrAl5tIsrT+nGzfFnGMUyfcntMF+OWrMx0E=; b=rf0++WW6FF0hPAmHyqFm3vBnkLMQd332+u+uF39wEIsiuY7p839hsxEzGdj9Fk5REpL+f8 AnJQcD7bFlYlh6QUQNwNF8acnJZrz4fR1cfH4MEIgkf6vOVoBlMLFv215UumJyzJAwqE9R vCsobmqkDW3NdNxQ5tkhP6pfkJD2iH8= Received: by mail-qk1-f172.google.com with SMTP id af79cd13be357-7c081915cf3so286902685a.1 for ; Fri, 18 Apr 2025 12:50:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20230601.gappssmtp.com; s=20230601; t=1745005819; x=1745610619; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=NZIpJlMfSrAl5tIsrT+nGzfFnGMUyfcntMF+OWrMx0E=; b=bCROR8Rja8moQbYn5qfmwsJ8VscgEVRiibvPz3JefCNg9BJ0HdKaveeQioAymeZVay vvEjbWVyroXYVhX9JEXcBfJAEu+9AHszkLRV+lZGHRola+1gPhK3+Depir04xgelkhLP cNDwMrCZ4gJbadkRh7Pj1wdhXSJsq6nl7KdoEB8tuVRCLvFm3NtOXB0KTI5WUKLTCZs+ YfwsgpaNTOZTcBqm8yK0BETbbw33/BrFLgpT7rHvqWn3f8DFWpKxqSpKtL9N+3qmfCp3 lxSetLHeBG/axIVkLzcHLHXfFLHyH8MTfBYPiza7pPQAD/nQUYWLyoSldUZ4mMY3QRRB BbWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745005819; x=1745610619; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=NZIpJlMfSrAl5tIsrT+nGzfFnGMUyfcntMF+OWrMx0E=; b=poJCrKHyi1qo5NH9VRp8R29JpEkA6M6C1tBGgZsyMHsCIVIxZpbbR+0F3e3ZI2uGIm WwBlCwerwzANgABEG1Wv9Z55qYZhB4s3t6Vyo6B0/fdITGAf5z1MB4WwviFDyObAhWTD tG+1aaOZUy4DJ7mPeuV5lPZRfZ5hUCcZ43w6tdT13LBbhHRgK1FWSCp3RzmTuG/94yAB PR9Udqvgl+qUkoEhFDy4FrU6RPmmvR8B1FT3Wayas8DTi3h7fEm45/ra+I/4fJRTbMTC YqHOWHYUQIQ9u9TyRg0RJlUJxshQ6dt1EJf2zpx6eBXxO2OJrQKJAPTiugay1kiZS7yA ZcsQ== X-Forwarded-Encrypted: i=1; AJvYcCWSskigvHM3/03Gq+M3N1sDF1SMKlYhgFnFDdUmNWk+UMErztXNx37anyAcGpAGdKYqOmeBM81Kvw==@kvack.org X-Gm-Message-State: AOJu0YwdY9pNtDcqKCl4cu0H8NC7CL1rjFQM/1oFrydxBzYJT6k+3+wh PsA+K07Cn7xUXPk4VG+0gV6d4qxUg1uuT1E4ycMz1QeH+7GiZb0Ndr51NQRanG4= X-Gm-Gg: ASbGnct5qcNFZeFdWu/pS0XOBpZfPIuJjw1D5tf+sL61EuinUXGutWKaB8DLFlkpGcf fM6sVj5Tz8pmqza9W7f4i/zLhLW7T8hPW1C1B51O+2V+g661i4MfdRFffvRbMK7nayergiv87lt WTQzT9qOVodSxyVj3vOmzfJU5+tl7dQYzgQFxoEmcBBNpAukuNAIDLgEsAGjiJlmdaEzf/JusF6 GxBWMSzDuZKmfvamHEQh9n9oYJnL/Lg129lHjU4qAuQlJIBvzx8ujpS9KhTxwT3uPxZwG9RzvCd z/1AtPKmAeGA99v0tqIKLVvD9OTlsSCr9PQVYc0= X-Google-Smtp-Source: AGHT+IFG3LBqPjgQwSPk23I9MqvaEayWbINNH1Mnqd7uxhMrvknN6OBJKn7Qk/jpVgEALxeT6uR8iA== X-Received: by 2002:ad4:5ba7:0:b0:6e8:98a1:3694 with SMTP id 6a1803df08f44-6f2c44eb12fmr73235786d6.8.1745005818730; Fri, 18 Apr 2025 12:50:18 -0700 (PDT) Received: from localhost ([2603:7000:c01:2716:365a:60ff:fe62:ff29]) by smtp.gmail.com with UTF8SMTPSA id 6a1803df08f44-6f2c2c21d90sm13760766d6.105.2025.04.18.12.50.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Apr 2025 12:50:17 -0700 (PDT) Date: Fri, 18 Apr 2025 15:50:13 -0400 From: Johannes Weiner To: Muchun Song Cc: mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, akpm@linux-foundation.org, david@fromorbit.com, zhengqi.arch@bytedance.com, yosry.ahmed@linux.dev, nphamcs@gmail.com, chengming.zhou@linux.dev, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, hamzamahfooz@linux.microsoft.com, apais@linux.microsoft.com Subject: Re: [PATCH RFC 06/28] mm: thp: introduce folio_split_queue_lock and its variants Message-ID: <20250418195013.GA877644@cmpxchg.org> References: <20250415024532.26632-1-songmuchun@bytedance.com> <20250415024532.26632-7-songmuchun@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250415024532.26632-7-songmuchun@bytedance.com> X-Rspamd-Queue-Id: DA0C6C0003 X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: wgyoa1za4rcc1j7xejf58k8nau5wxosm X-HE-Tag: 1745005819-223330 X-HE-Meta: U2FsdGVkX1+I+AyeBHUksDsncjsQ4+CVs/28NqHG7lT6pHvZ8LMHwHWh9urYdvRKswbeUb6uxhNUPqodQf0jlC7BlMRGcuJbM+SSKPdBtE+8RFPEiO/DG+Ie9hyjgt9Vt0NTh+74fqAZvlAfM1mWqvh2JZ93d3SoH4GXdJ/TVfKr2nVpEQ80HCQrjMVE31dKOJ2Z3fC24IRYKNrGmRcUCc6M3rvdxQwY0gfjZUlCxdzM9PZV1EhBunD/Y4K7iEINYAtlHh0HsyHOdbKyDRgBzNyRm5eXakiuftHbMTRMP+Ftx8ixkhrK7mWCr7i/e0EiFzPxlKpRdZnOgp/L1Botdn8lLk8XwoFxR7gbX+YUq0pSTRj5V+CN18xoKrmuF9c6pH+5ZW5sLMaVkO2PxBwrekdp12h5vNVe/1gnJ1wsNV+Y3kbpGGfgSIieXXXtycU5tISW3yA/9IQse/vmbFVJVEUCg8lW67I5cNfrfWF3YewFHwE13fITxTSfKJvbO3EONEB9sW/eD1XNfnReUZSjPDr2tS1K1i7uYgzFHwijpYiHsDHCT3WIAf15lZcCd/dTU6vZSUj5U+0je1y7b1E6dknWayy/npCIpl9FVjm9aa/kKDYcrJcT7ZIT7EU/fvfUgGCFvHKuGryHb2xnhTq/anE3zNdUou4NmCoEpECHUbtUc8mUyujCUSz5Eh6Q28ywNd05LnmE2A4HDecpEaguz5cFnmXkYnJI8LjwlSiEI1+RAA5Ko+gJymEHXUMy/7Dirhg1uR1+QWWdXqttxsKZXRJcdtKiz4cI7+fzakEwioWFJoSxAIOnPMhz87ODprix9Xj95GYca12YVmw9ZuCQRCU65RSvkf6zHvNhDRaeBL23ggo+9OEUe7l3UfDXQvqik1joY/F3vhkHLqUsOY1MfGT3Z5coSJP5hpSsit29ti5Bh3gV/mpqeHoHfiTreRw3UmpwLv8+lKHcf5i2YFV dgbEuZE1 0bH+MpWiwrkAvFcjxzh0kXEAxKRHtCX0IMZRbOixyuboUbhP9+NO/sW5L0lDaFN4Pu3De+FMLoPzlk5JTss4L02UehEZfHt9l06fsTtdp5AwNfx0omsCnCQiOmL1l2/6CZhNyiZWDefSOyhZZuqB8QEYO+ToKrLqw3ksxIToMEyAFQBCD7yu6o8gr3hrE6yi4Cq9grHiIAjFA3HCoTYJRvDoQ9FAdYo2srv9p0qnF9K4e9BuUUZyh01S44FsShAXopNV83z5loCUvzPPwqbKfPahxb/WKJmu+9DHjHCmHgqUGkFHDh1sI06PGGP1Bf4tBqbOMBod5oR+RpNJVZ9/7bMBrOUCxeZwRhRyz4OMIN2GdXs9KjSMKMI8z7+bKXJocyHr7jSPwq2Tfko3ENhDh/pU6obhe/eiM5EFkcxJobIakN0zcn1BX5Jf0zd0ZF7FUorOj8lSJzZY3InGpmjaYQp1MdQhShZ34wTul1Qvp5DGi159kI1In7NHNj2KJBMm6nfK/aK4Xp4NifGU= 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 Tue, Apr 15, 2025 at 10:45:10AM +0800, Muchun Song wrote: > @@ -4202,7 +4248,7 @@ static unsigned long deferred_split_scan(struct shrinker *shrink, > if (!--sc->nr_to_scan) > break; > } > - spin_unlock_irqrestore(&ds_queue->split_queue_lock, flags); > + split_queue_unlock_irqrestore(ds_queue, flags); > > list_for_each_entry_safe(folio, next, &list, _deferred_list) { > bool did_split = false; > @@ -4251,7 +4297,7 @@ static unsigned long deferred_split_scan(struct shrinker *shrink, > spin_lock_irqsave(&ds_queue->split_queue_lock, flags); > list_splice_tail(&list, &ds_queue->split_queue); > ds_queue->split_queue_len -= removed; > - spin_unlock_irqrestore(&ds_queue->split_queue_lock, flags); > + split_queue_unlock_irqrestore(ds_queue, flags); These just tripped up in my testing. You use the new helpers for unlock, but not for the lock path. That's fine in this patch, but when "mm: thp: prepare for reparenting LRU pages for split queue lock" adds the rcu locking to the helpers, it results in missing rcu read locks: [ 108.814880] [ 108.816378] ===================================== [ 108.821069] WARNING: bad unlock balance detected! [ 108.825762] 6.15.0-rc2-00028-g570c8034f057 #192 Not tainted [ 108.831323] ------------------------------------- [ 108.836016] cc1/2031 is trying to release lock (rcu_read_lock) at: [ 108.842181] [] deferred_split_scan+0x235/0x4b0 [ 108.848179] but there are no more locks to release! [ 108.853046] [ 108.853046] other info that might help us debug this: [ 108.859553] 2 locks held by cc1/2031: [ 108.863211] #0: ffff88801ddbbd88 (vm_lock){....}-{0:0}, at: do_user_addr_fault+0x19c/0x6b0 [ 108.871544] #1: ffffffff83042400 (fs_reclaim){....}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x337/0xf20 [ 108.881511] [ 108.881511] stack backtrace: [ 108.885862] CPU: 4 UID: 0 PID: 2031 Comm: cc1 Not tainted 6.15.0-rc2-00028-g570c8034f057 #192 PREEMPT(voluntary) [ 108.885865] Hardware name: Micro-Star International Co., Ltd. MS-7B98/Z390-A PRO (MS-7B98), BIOS 1.80 12/25/2019 [ 108.885866] Call Trace: [ 108.885867] [ 108.885868] dump_stack_lvl+0x57/0x80 [ 108.885871] ? deferred_split_scan+0x235/0x4b0 [ 108.885874] print_unlock_imbalance_bug.part.0+0xfb/0x110 [ 108.885877] ? deferred_split_scan+0x235/0x4b0 [ 108.885878] lock_release+0x258/0x3e0 [ 108.885880] ? deferred_split_scan+0x85/0x4b0 [ 108.885881] deferred_split_scan+0x23a/0x4b0 [ 108.885885] ? find_held_lock+0x32/0x80 [ 108.885886] ? local_clock_noinstr+0x9/0xd0 [ 108.885887] ? lock_release+0x17e/0x3e0 [ 108.885889] do_shrink_slab+0x155/0x480 [ 108.885891] shrink_slab+0x33c/0x480 [ 108.885892] ? shrink_slab+0x1c1/0x480 [ 108.885893] shrink_node+0x324/0x840 [ 108.885895] do_try_to_free_pages+0xdf/0x550 [ 108.885897] try_to_free_pages+0xeb/0x260 [ 108.885899] __alloc_pages_slowpath.constprop.0+0x35c/0xf20 [ 108.885901] __alloc_frozen_pages_noprof+0x339/0x360 [ 108.885903] __folio_alloc_noprof+0x10/0x90 [ 108.885904] __handle_mm_fault+0xca5/0x1930 [ 108.885906] handle_mm_fault+0xb6/0x310 [ 108.885908] do_user_addr_fault+0x21e/0x6b0 [ 108.885910] exc_page_fault+0x62/0x1d0 [ 108.885911] asm_exc_page_fault+0x22/0x30 [ 108.885912] RIP: 0033:0xf64890 [ 108.885914] Code: 4e 64 31 d2 b9 01 00 00 00 31 f6 4c 89 45 98 e8 66 b3 88 ff 4c 8b 45 98 bf 28 00 00 00 b9 08 00 00 00 49 8b 70 18 48 8b 56 58 <48> 89 10 48 8b 13 48 89 46 58 c7 46 60 00 00 00 00 e9 62 01 00 00 [ 108.885915] RSP: 002b:00007ffcf3c7d920 EFLAGS: 00010206 [ 108.885916] RAX: 00007f7bf07c5000 RBX: 00007ffcf3c7d9a0 RCX: 0000000000000008 [ 108.885917] RDX: 00007f7bf06aa000 RSI: 00007f7bf09dd400 RDI: 0000000000000028 [ 108.885917] RBP: 00007ffcf3c7d990 R08: 00007f7bf080c540 R09: 0000000000000007 [ 108.885918] R10: 000000000000009a R11: 000000003e969900 R12: 00007f7bf07bbe70 [ 108.885918] R13: 0000000000000000 R14: 00007f7bf07bbec0 R15: 00007ffcf3c7d930 [ 108.885920]