From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f50.google.com (mail-ej1-f50.google.com [209.85.218.50]) (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 0AC50221FB4 for ; Sat, 13 Jun 2026 02:58:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.50 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781319497; cv=none; b=WrQEqlaCZ2vgYjij1sHCfYCxzQKnOTAYw7rMYgFMKnCa62UqjS01h8phS1AShieEXpmScZmgOvkAv0ofiFWi2eKHRCqT3ghd0pIMqYeUXko+749RTrq21DuUoVlA+0q3Xj6Mh8QM2y4VHy2v/IF19QBr0+8N6M3aQ3r6UsMRKno= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781319497; c=relaxed/simple; bh=NDuftcaCA5+d1ffjZN7R4jPvjJeb/33ZTBBnPHQ5OM8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=fq08kZRAsVoftVHVaitttfhggXnFyuwZyeY7yCGXBT8J4ZzpQyJuueqmHCkW6LMHUzR99wBAZoLKJ13DYf7ibIZlbkFRkCjn2tN1FWjEuCKdWrAae9gZSBBGmt9tkVbUCHpd696KQhKAKIXt7Uhnq1MOe7RA/s4QtYoMgAA7Ipo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=ekpD2eY1; arc=none smtp.client-ip=209.85.218.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ekpD2eY1" Received: by mail-ej1-f50.google.com with SMTP id a640c23a62f3a-bec43ee8ff0so223787666b.1 for ; Fri, 12 Jun 2026 19:58:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1781319494; x=1781924294; darn=vger.kernel.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=uAwjbx7OhsFF8Ofl6FEk1ESuaIwcoPlh2QD/QcmNLDg=; b=ekpD2eY1zp1W2y0grAhShzDSd2WuYnHqY0xQOQKToA+rM5zjUj9NV/7M2IUHX8wmRB JxUeEK3+R0v59t5TYpJSqW0mq5o4rFxFrRGqsXqCtdGx3HdhOIxIFaSiDLBx0+GXnL2q 9lntrxbSU3wqBdEOVNb9e/GYlGRtY2Q+veN49axivLSXbMzoian+aYZq4sIXImfM6MPj D5sS6Bpi9nxR72pNnig9vZMg1hvnfKqR3hu0DfInWb5Kr5cbCr1P5fxlj3xB8VGL8x92 RlH1GV6GGjXihYDX3L2B3qQUgIqhU2NhMbFtopVptPKDV01sEgMC1Etl953erlNQbMKN PM7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781319494; x=1781924294; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=uAwjbx7OhsFF8Ofl6FEk1ESuaIwcoPlh2QD/QcmNLDg=; b=VkM9Ke5VJxPaOtVMn1Z62mWRoJbqvFmtpxB34/KOA6WV56zpYx8youNk1hZzom2SVN YgRkLqNytpCvo5QZf6t9KL3nJXNsQFRSZIvoWutvCcMutQgfF2+NY3/WZZC8WJ5rH7Ft UPtel0W67Pmh/Co/z9tbRejvc3B9FucdBPYWJSy7hswt/ACV/OMDtdhuU/OBuQE96Xze J34ywD+zSFf218PB1NV1RLw6nslNo+7uxkfIbxtEmsLy+69ZIOpNoOg7OT5SK88KRcQ+ 0ZDZ1Z+3Bfdlp77g9l1iO8SxeBErcESVKfAnT5Z7bYVjPHAk+wUzXOW0ztja+NGEjOnf dVRw== X-Forwarded-Encrypted: i=1; AFNElJ9oJSmwzqTrVj8D2bCJz9DAEJ1hFUsVYXr6iu19LyrnE0Jl4K58ca4H5TuBGJ0T02S+gByrpZofZo6wnS0=@vger.kernel.org X-Gm-Message-State: AOJu0YyX0e7939t0EUlFL7T1eVbJbEu1j1vciU8Mv95J7PLT1g8Tu+8U XC6VxF1zk3yfW4s6F4bluT3v26hsVmbQcfmlIxY7LgyHmXa5TKDV2C1b X-Gm-Gg: Acq92OHdfnvhm0rKH5WPnovRjI7KXHCOoiiecoOFgqSqtAUxdV3nBSaU6YTgqBlmvAt CoFSBmmfcutn5ieXKgX+a3PRs/a8CXQ1aSnzRAgp3KjNwqOQLFbOfNxlRJtl49hf+EWnU52o4Ly dshQCe9bVpOIjYo1YdBrxLFIdoTELwvg3cYEbShjrUXRs2eVEdsXQ84iMbXCwPTX57XgNQYyp+p goP9XZ63g2tYbvRbvmfWG+SLQ9Xhid9SHbiY/Oy2pF4wK9gMW+20ee1GhIboRD9z3+pZ6/ArNDa 1pmbQQ0tIy54BdZ4zzhiYH4qqJkOT3P82Az+QwUyMaM/4i0IAFlFgsCJuQHXBz9h+W+EP1/aWmR kaN3VgzB2VeckH58k9cnKjzDcEPwZ4iLJJM9u9kuZ2kt5fZcgHRwWtpma5lf4xOhohzrZqexnlM KDZrbky25b3jfQ4aOBEIp2Hw== X-Received: by 2002:a17:907:7f94:b0:beb:d461:7b09 with SMTP id a640c23a62f3a-bfe29927242mr210429066b.11.1781319494163; Fri, 12 Jun 2026 19:58:14 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bfdb44208f8sm179835166b.10.2026.06.12.19.58.12 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 12 Jun 2026 19:58:12 -0700 (PDT) Date: Sat, 13 Jun 2026 02:58:11 +0000 From: Wei Yang To: Lance Yang Cc: akpm@linux-foundation.org, david@kernel.org, ljs@kernel.org, shakeel.butt@linux.dev, mhocko@kernel.org, david@fromorbit.com, roman.gushchin@linux.dev, muchun.song@linux.dev, qi.zheng@linux.dev, yosry.ahmed@linux.dev, ziy@nvidia.com, liam@infradead.org, usama.arif@linux.dev, kas@kernel.org, vbabka@kernel.org, ryncsn@gmail.com, zaslonko@linux.ibm.com, gor@linux.ibm.com, wangkefeng.wang@huawei.com, baolin.wang@linux.alibaba.com, baohua@kernel.org, dev.jain@arm.com, npache@redhat.com, ryan.roberts@arm.com, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 1/1] mm/thp: clear deferred split shrinker bits when queues drain Message-ID: <20260613025811.z6xfm2xg7r6bgdea@master> Reply-To: Wei Yang References: <20260602043453.67597-1-lance.yang@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: <20260602043453.67597-1-lance.yang@linux.dev> User-Agent: NeoMutt/20170113 (1.7.2) On Tue, Jun 02, 2026 at 12:34:53PM +0800, Lance Yang wrote: >From: Lance Yang > >deferred_split_count() returns the raw list_lru count. When the per-memcg, >per-node list is empty, that count is 0. > >That skips scanning, but it does not tell memcg reclaim that the shrinker >is empty. shrink_slab_memcg() only clears the memcg shrinker bit when the >count callback reports SHRINK_EMPTY. > >Return SHRINK_EMPTY for an empty deferred split list, so the bit can be >cleared once the queue has drained. > >Signed-off-by: Lance Yang >--- > mm/huge_memory.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > >diff --git a/mm/huge_memory.c b/mm/huge_memory.c >index 72f6caf0fec6..62d598290c3b 100644 >--- a/mm/huge_memory.c >+++ b/mm/huge_memory.c >@@ -4397,7 +4397,10 @@ void deferred_split_folio(struct folio *folio, bool partially_mapped) > static unsigned long deferred_split_count(struct shrinker *shrink, > struct shrink_control *sc) > { >- return list_lru_shrink_count(&deferred_split_lru, sc); >+ unsigned long count; >+ >+ count = list_lru_shrink_count(&deferred_split_lru, sc); >+ return count ?: SHRINK_EMPTY; > } Looks you are right, thanks. Reviewed-by: Wei Yang > > static bool thp_underused(struct folio *folio) >-- >2.49.0 > -- Wei Yang Help you, Help me