From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 80CFB3563E1 for ; Wed, 11 Mar 2026 17:42:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.178 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773250956; cv=none; b=hLiLotFfLvxdS/QlLVln4RaUvjf8Q4sYFjO5SsdkaksA4lMJJlI8gYfjgQVKGpqVZ3NepU13l3mbAfUBcjfEFdmSXwC+W4SEdN9q2ymjdOdVEm68TZRcH8nPFhEoPXJcch4HDDUlwpYzdrg67WBBW2OIi1yCIDF2GD2CDIdkBVQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773250956; c=relaxed/simple; bh=jXkQsst1Pd6qHqI0HBcuw7iHoqctHb26gfqAX/AOXgg=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=CwVGMW+7cgTiv8xbcbxaCYK93DyFDqlSBkjNAgzcEHogt2Anv+9Zqc/LuxyfLA6ewWBzkIF8CpThlTSqL2Rl+vX/VpsSDi87Ooq7sOr9KexsqnvL0toSQ+In0zTk8GFoaMswigionh57ppBRZeNQxovfOQqFTa1sz8YtOLAzmso= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=cmpxchg.org; spf=pass smtp.mailfrom=cmpxchg.org; dkim=pass (2048-bit key) header.d=cmpxchg.org header.i=@cmpxchg.org header.b=Y3VSoH++; arc=none smtp.client-ip=209.85.160.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=cmpxchg.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=cmpxchg.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=cmpxchg.org header.i=@cmpxchg.org header.b="Y3VSoH++" Received: by mail-qt1-f178.google.com with SMTP id d75a77b69052e-5090c7e9081so1258841cf.0 for ; Wed, 11 Mar 2026 10:42:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg.org; s=google; t=1773250952; x=1773855752; darn=vger.kernel.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=e9baRp4ItSdy4YGQdx+WgDhSURna1VhlLruAEGYk0oE=; b=Y3VSoH++vO2wI0unCeXbZ2S1xVXHNArr4K8lcAa/Gtqxsvu850yMtKuwpA7DXxQvg4 1CaRGgm7yrF+08WUE4I5R8/JF5aJrgcslzbUOQiOiOifNHuS89pTX0vtyDr1KSFl+k59 6MfQsrWKgaxATJhGF1MYuhqtUP2y8RtNX3Xd/ELS+CgmpD5jOTPo75eVtGA6xzQlo90I nB325USPCv5xiAfhICkZlX7Em61Yt8lmLQmiq64JqMuSelAk00K40xBZEwgH7qrYHBot V0voSGEEs9TSKAstS3CA+S48ZLWO0agpyyGLlZ1oEIN1Sx6SZFyrbc+laRxXayYw2FO/ 2urQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773250952; x=1773855752; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=e9baRp4ItSdy4YGQdx+WgDhSURna1VhlLruAEGYk0oE=; b=MgZ9iCZ6RstTXWTgTvCxKGfEHaOwFjjbgJW5c0cGxzxT1wS32/L1SUYwBWndf4kmCu lQXMxQG4nMwcKP3/e7E2uSbOVIc4zwIXDyPgGed+49+ynm9xygab52+uMIUmc83bTYlO RFHqnAiZXKay6n15xSjVLQJ2C3/Z4qfEhQCR7RmRpzflGOe6XNc49IJfDzEWkqrxKsiK p4ch6fBK1pQa3L2d/z0mz0hjiaOJVXUMNIkV3DftgkIPq10HWNJLe/8fOt7JQ/elrSD5 ZRiAL91QgpabTHuHAsswxjK1gSQst4P4lzdbM7TDi4+zsOpv+ktQKPthLCkyFjdot9NU 1JXw== X-Forwarded-Encrypted: i=1; AJvYcCUC+ZhvD0YQSwMUMp/1qGBPfemuGpH/uTmXIwr7DM7dhZeHtubNAYfF1EXEKHLXp4ErvpA+StkHoafLoNM=@vger.kernel.org X-Gm-Message-State: AOJu0Yynh9ll+JKMUbYYA6nusyJs7DE25hax+XoSoVu6WVQWfYMcr8Vu GE2VBQA3cX5c0mpY1iX7Lk4PW5QYsyN9yBPg3bUETQBDDWpn7t3/sN6PPUELNvY4fvw= X-Gm-Gg: ATEYQzyoQYKxdC61PiANSPxzj6xm4ALb2no2jt8Bzm1GJVVHWIH5l9ueyG0lPtcPspF AaPmq3akVHzCQgKliZGHTqv6Y4F4atq3Pri5gCZRRxBa39gOzdbfUSe5POS6jQf44VLuk4gne1i luk/8mpilR7X+v9pThnjsj0+t5lymSh2zUsbk6R71QHuLBtU/Fg9vu/ch8nigF7Pg6+Zv6b9K7t coJ+ka7SjAjlCBJYIrUeQathWhg9q/TyXIPIEBVqLGfHe9VVE4OZyDYJDOxDefDVGL0ntandh8V ViDBDBEQ87FNhU8zkZNvQBXzGRzinz8Cr7bffn2Hg0qNzPbY/K7o+CrUrBhFFFHQz/HVox9Zl2L mCTgIx3ShqBI0PCbCuFmByPWH2lZECRSpCQlZbt4axao1SaTWvsjkHElmKLj5zUc/1XwXZ6ffjw 29jdoZiUQhrJjtpv/AExP6zLtm0xecmPyX X-Received: by 2002:ac8:5fca:0:b0:4ee:49b8:fb81 with SMTP id d75a77b69052e-5093a18c8d8mr44267311cf.61.1773250952298; Wed, 11 Mar 2026 10:42:32 -0700 (PDT) Received: from localhost ([2603:7000:c00:3a00:365a:60ff:fe62:ff29]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-50939ec6697sm17821771cf.9.2026.03.11.10.42.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Mar 2026 10:42:31 -0700 (PDT) Date: Wed, 11 Mar 2026 13:42:27 -0400 From: Johannes Weiner To: Usama Arif Cc: Andrew Morton , David Hildenbrand , Zi Yan , "Liam R. Howlett" , Kiryl Shutsemau , Dave Chinner , Roman Gushchin , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] mm: switch deferred split shrinker to list_lru Message-ID: References: <20260311154358.150977-1-hannes@cmpxchg.org> <050ce5bd-4725-468e-acaf-7fca72b84d06@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <050ce5bd-4725-468e-acaf-7fca72b84d06@linux.dev> On Wed, Mar 11, 2026 at 08:00:29PM +0300, Usama Arif wrote: > On 11/03/2026 18:43, Johannes Weiner wrote: > > @@ -3802,33 +3706,25 @@ static int __folio_freeze_and_split_unmapped(struct folio *folio, unsigned int n > > struct folio *new_folio, *next; > > int old_order = folio_order(folio); > > int ret = 0; > > - struct deferred_split *ds_queue; > > + struct list_lru_one *l; > > > > VM_WARN_ON_ONCE(!mapping && end); > > /* Prevent deferred_split_scan() touching ->_refcount */ > > - ds_queue = folio_split_queue_lock(folio); > > + l = list_lru_lock(&deferred_split_lru, folio_nid(folio), folio_memcg(folio)); > > Hello Johannes! > > I think we need folio_memcg() to be under rcu_read_lock()? > folio_memcg() calls obj_cgroup_memcg() which has lockdep_assert_once(rcu_read_lock_held()). > > folio_split_queue_lock() wraps split_queue_lock() under rcu_read_lock() so wasnt an issue. In this case, the caller has interrupts disabled, which implies an RCU read-side critical section. That's also why it's using the plain list_lru_lock(), not the irq variant. Same for the lruvec lock a few lines down. I followed the example of none of that being documented, either ;) How do folks feel about a VM_WARN_ON(!irqs_disabled()) at the top?