From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com [209.85.222.174]) (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 77B643E92AF for ; Mon, 1 Jun 2026 18:17:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.222.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780337860; cv=none; b=GzVV3ESAh+1LdNcbngbM/Gn8wbZncBFhHLm7Z0/T2V7b0EspjobQWF9fgkeDh+vdqqr27AicBwvunztJr3izpDjsylNPtIafBpEjJJe0Hgi1FsawUAKfNFQ2c6mQTPgTVaUBMMm6UdsDRSHBtqcLEAo1KN3bnphPpHFY17DMXEA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780337860; c=relaxed/simple; bh=1/RNHbF9gcIr+25us1GUQ2ywJNe/LbwyGHURTAD4T+c=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=onK/veQfuayw6Y10Vti1XIc8XJrTROrlqoSFGgW7sk68pf859XSPo9VqviiRVYTgiYkZUX+D6hywugxOnEGtc0BUm1sMMxHUKzV/P8myK3W2bC72Heedzc0p33EbQOTBBvB00rgZLxGrenbys/+IPqr01wOsY3RBDEjG3PURsik= 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=JvLlfMzc; arc=none smtp.client-ip=209.85.222.174 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="JvLlfMzc" Received: by mail-qk1-f174.google.com with SMTP id af79cd13be357-914bfa75911so1117369385a.1 for ; Mon, 01 Jun 2026 11:17:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg.org; s=google; t=1780337850; x=1780942650; 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=4NTSUw9VV/FBiRGz8GLXz2sTHCVhhPAhaYWRfzd8BYM=; b=JvLlfMzcKT/VjNz3lXSJioOrFWF8Do5Aba6OYsSHkxcW4neWOiDxBvcCMbOCbFKnsS iyJunp5DJ72eXclkGjbScOenRLlJ/Inip289RFaRG/9OIk8TRqdv8BYG8qGrEn7HX2Hu Yk0V4nTKusNSqXfZJqRi48DvoWRnyeYaAQiXJJWX94fsmXoxOhvSmDd/YW2EcRbCbSzR ZjuHWX0nc3FIIzo0Bz7KpnfCN4Sbo6/yver3CT6IJMY6o4BX+7jmvPhSqRJ19Cnc3QD8 aCFO/6Dex6vq2VuKgIbeQjAhgxYF1bDJNaHtCt4K8bWtmcdWA/JZRh9xPvOk5U0jdtJM +M3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780337850; x=1780942650; 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=4NTSUw9VV/FBiRGz8GLXz2sTHCVhhPAhaYWRfzd8BYM=; b=kbORUXhPbwhtu5a5eoolcmzYU0zOveiB2H24Tm4Yxf3CEsXB3QaEYxkUyce9DwdG+d xkJ7WFecUyFVgsNwaYj/A8zxAEfy1GbNmWt+8Qu4f/M/UVza1bDrhul5PG2TSySJCtVp h6sRIqBP3tjrmyGUfczao3qq6TaA+PMCOJi04OR5h09T+YTCPju+mgKmSgnNLSpI07Ue YnTtZE5rM0LUWRI2GyrGt+YZDuYsyg8kQcIW9uxuAxZIPtqPg+MyqmAoAg6hFDTfLIdU ETGQjBOnJTLyn/+8aEuM8F58WSbfI8x8XvsZD61kpi7ZEZnPYHCwllOsb5qA9ILuRVMf vKqQ== X-Forwarded-Encrypted: i=1; AFNElJ9PO5Z5uhcAQZmPUn3b6a9npYCCvk9AE3USc6on8O8L0HhU+r5xVo4BNh9ibdKmMZ3FAEtJ02l7WdjK9h8=@vger.kernel.org X-Gm-Message-State: AOJu0YzdJoKikoHwJPUvdej54rvrkHM/wRTszxRCI16t5lf+7OmmpPu1 VhqMn0ZqyYk0N62+1G6wTNS3aHg23PFZbxd2qnIoUhCvRwY7SzSaYqxNIJ5CJuvgh5M= X-Gm-Gg: Acq92OHV66cHEdeABF3l8r2tcGGvnDd6ZCcFNwCsJtqdaYLHwD4MAGmYpDw5ZXJ+0Xu kwZwSGwtth+nAVlyko0Vkwe3y9+9BM607CPiL3UOjWKjqKD4D4UHz0nrNidmKex+N9Y9nD21eaH rLnkex533wjR0c7/xkwL+S7hYwZKyC/9Qu4OChZYp0wEXhnp6DFqgFgQA6Mckq83mOxADmc339S /qrwsrxV3ch5dB7CreN/IGUkVH6iYe84ESlX1iAbK350VfkiozyGCRpDwd3KFFzrlPvUX9k6LwA psjFA2u3lgD2CeGqhcwSp/Q2BkMHyKo3EdGghKYoWk1HX7/WkHlK7j5MlSQk28oNeYDd6QzTC1v dgpMLW4PflKQhJ2bMHTmDS3IvNjcV2JBE2bHN8mUpSmZaqdxnGB+WruZs1t5vlpN3KHz9BiS10A oGFeiTtp9HGmJwsA81ve1RFmJqfeJ5S1wN X-Received: by 2002:a05:620a:444f:b0:915:4cb9:8e68 with SMTP id af79cd13be357-91577f2ec48mr98534785a.21.1780337850174; Mon, 01 Jun 2026 11:17:30 -0700 (PDT) Received: from localhost ([2603:7001:f100:500:365a:60ff:fe62:ff29]) by smtp.gmail.com with ESMTPSA id af79cd13be357-9153265d20csm1068654985a.46.2026.06.01.11.17.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Jun 2026 11:17:29 -0700 (PDT) Date: Mon, 1 Jun 2026 14:17:28 -0400 From: Johannes Weiner To: Lance Yang Cc: baolin.wang@linux.alibaba.com, 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, 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 v5 9/9] mm: switch deferred split shrinker to list_lru Message-ID: References: <20260527204757.2544958-10-hannes@cmpxchg.org> <20260601132135.14272-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: <20260601132135.14272-1-lance.yang@linux.dev> On Mon, Jun 01, 2026 at 09:21:35PM +0800, Lance Yang wrote: > > On Wed, May 27, 2026 at 04:45:16PM -0400, Johannes Weiner wrote: > [...] > >diff --git a/mm/swap_state.c b/mm/swap_state.c > >index 04f5ce992401..9c3a5cf99778 100644 > >--- a/mm/swap_state.c > >+++ b/mm/swap_state.c > >@@ -465,6 +465,16 @@ static struct folio *__swap_cache_alloc(struct swap_cluster_info *ci, > > return ERR_PTR(-ENOMEM); > > } > > > > Shouldn't this be limited to anon swapin? > > e.g. vmf && vma_is_anonymous(vmf->vma) > > >+ if (order > 1 && folio_memcg_alloc_deferred(folio)) { > > __swap_cache_alloc() is also used by shmem direct swapin, so shmem can > get here too when handling a large swap entry: > > shmem_get_folio_gfp() > shmem_swapin_folio() > shmem_swap_alloc_folio() > swapin_sync() > swap_cache_alloc_folio() > __swap_cache_alloc() > folio_memcg_alloc_deferred() Good catch, I think you're right. I shouldn't have dismissed that branch due to "/* Direct swapin skipping swap cache & readahead */" > @Baolin please correct me if I got it wrong :) > > folio_memcg_alloc_deferred() itself doesn't filter shmem out either; it > only allocates the memcg list_lru metadata for deferred_split_lru: > > int folio_memcg_alloc_deferred(struct folio *folio) > { > if (mem_cgroup_disabled()) > return 0; > return folio_memcg_list_lru_alloc(folio, &deferred_split_lru, GFP_KERNEL); > } > > Since deferred_split_lru only queues anon large folios, doing this for > shmem swapin doesn't buy us anything :) Yes, agreed. I don't think it's a big deal / show stopper in terms of user-visible effect, but of course still worth fixing. I'll send a follow-up patch.