From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) (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 7E8641E260C for ; Tue, 14 Oct 2025 13:31:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760448697; cv=none; b=NBFjdGN88+sQKsrowUuywe9884dO/jVDT67tjLtNSmkYCXa7Y0MDeHs05ZTWj3qYwDQm1OMFoL0SgfvrSiGg9dyRJFgTM6YYoX3wlqhaFbbUq7VPlWUNPak1TrX0vujz2X1PjEKROtoTxLX+8HslYvZ4/WNKPt863c7UxcnE5Yk= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760448697; c=relaxed/simple; bh=iIjZWpm1TiQUVzmyWQwDNnrEF5an80tu+OC+tdhyZC8=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=OdmjbT6Br89cGUwjQyLppKJkJ1WIGuaEzeGGe2WgGgmAyOrYw/HaXE2fXhO9itDTTtQqYeTZfYi/ryaBtwqXgIE1sw5SkXxlfWKdwMEgK1clAYW+EEBi9gb/yZpUqZ7p81Z7rtE3RyXIaBruu9lPFC5m+nDQM1/8BOP8NXQFxhk= 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=DQLkKiQf; arc=none smtp.client-ip=209.85.208.41 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="DQLkKiQf" Received: by mail-ed1-f41.google.com with SMTP id 4fb4d7f45d1cf-63963066fb0so11117368a12.3 for ; Tue, 14 Oct 2025 06:31:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1760448694; x=1761053494; 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=JRUz1hWdNpegFSxtg102ODjrrEjXcJrCzI5fyTVJ/6Q=; b=DQLkKiQfZND2IFf/h5wDCcU7nsL9b0MO2/wBM6KPAhNCZWhVN94HQy5fsrTU25tbgB 2Gq2QvLkWPnA0xkfn7ycw1MgwA2qLz0g6AbmWxcd6bS2Qhofps5FAzMPAi7eFfr7nrj3 9J10C2KCHIbn2+sRa1U7qZRnp1tmnEvHAE9WILBT/9Nb9MvbcypJtByoH3PDylNSnu6z Ql/nNsHVyp7t4cPhcemA2LhGv6CkCqMoygInePHf8U8QXwjfwbEAM4W8B9Bdcu/4Y4re drd4lrgRyWoBlvc2EOxKN69l9MeFWyOnJfPQUx/e+/qOIX/3Rdm/jJCyYkveMuFV8AjL NL1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760448694; x=1761053494; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=JRUz1hWdNpegFSxtg102ODjrrEjXcJrCzI5fyTVJ/6Q=; b=QEjN2howSk99pq6+OWLKRw96pr2EUSszVUkJc/2b9kl2zH7hjnMCY91EL0EDDUDjyr pkTuyq6k+fcZz2C8X0x80b6bp0YXkWF9kOsaA4+8pPCZIcqVAqvgh0a+hmHeY7H+kJek CZQ1ho2c+HODgRCPJIEi7c6JcAbsfhi7rHozts3bDmjF2ltpwcMdVkZg/PX6MHJvF9fr 3M0wRM04ki6QCOin58ksH1yb6DEhqF48nyIV832jM5O+WbV1ISUNZsSqesT0kQVbYZjq GK6fJzHlKMgyl/+EUwAhJVRLdip5gKbea32r3yesZg0vCjAGyh1/0ZQHdxgPeb9TWTqs WZog== X-Forwarded-Encrypted: i=1; AJvYcCUQ/fllroorAAido6ZmXzkUI3m/200M4opwTefTZnJGk7sOAdcaus/QUto58sZhXDuz8fXONuSQ@vger.kernel.org X-Gm-Message-State: AOJu0Yyt9gqJORdaz/nkAhkw3z98CGg8Dtz4xqWx/wXTq/gR+0la5cVv 90CH6QdDNvoMbSllf28SvtMBHhEaT5/gbEo2Xnyckrtn+oaWKXa13M29 X-Gm-Gg: ASbGncuk9rWihyseIy2pTTkYqEKtcExVkiKm4KVjjHxu19YTPuwD6iXydWngLVZSV/6 aewoMjrb31lMD/z9IJjao2cbQzCBLoWPQLr0H1WAdXNkaHq1Vm1PS7sAZuaxnGXd8NtWv2dIDtK 790yrddiwq5rte6aTRhR2OOzWfACvhRu2wBl2iFz03jtJR4lPJ19L53/NOi3g7AqPQBQH45E9Je FXhpVIRlha42tNdP9nJB105PtJwXFuIt0ISY9tdI1n3sRnPFdC2fetBx9jCIvqSYtJVrPtdBPkK LVaaoxT2AgK2VsxEptSrJ3uQtpZbeU1MdM2P/b1E5irLkb59GbtvZMytEKAuihIqikoAkasAc71 v1flT5TSvVQy+ZaDVJHNkYU4woJ6/C0iXYGaiwtDM+7+KgLH+XO8= X-Google-Smtp-Source: AGHT+IEgU+DdjYJjvofvtunCeX3nSH0eRUv1dqIRtOgeOUMEIzSuMU2hUdZtSc3ZGyXswVn9RHzZCQ== X-Received: by 2002:a17:907:7f0b:b0:b46:31be:e8fe with SMTP id a640c23a62f3a-b50aa48c4f0mr2728492866b.11.1760448693406; Tue, 14 Oct 2025 06:31:33 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b55d971ec69sm1123110766b.85.2025.10.14.06.31.32 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 14 Oct 2025 06:31:32 -0700 (PDT) Date: Tue, 14 Oct 2025 13:31:32 +0000 From: Wei Yang To: David Hildenbrand Cc: Wei Yang , linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, cgroups@vger.kernel.org, linux-mm@kvack.org, linux-fsdevel@vger.kernel.org, linux-api@vger.kernel.org, Andrew Morton , "Matthew Wilcox (Oracle)" , Tejun Heo , Zefan Li , Johannes Weiner , Michal =?iso-8859-1?Q?Koutn=FD?= , Jonathan Corbet , Andy Lutomirski , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , Muchun Song , "Liam R. Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn Subject: Re: [PATCH v3 20/20] mm: stop maintaining the per-page mapcount of large folios (CONFIG_NO_PAGE_MAPCOUNT) Message-ID: <20251014133132.6garfzi24xlh3jr5@master> Reply-To: Wei Yang References: <20250303163014.1128035-1-david@redhat.com> <20250303163014.1128035-21-david@redhat.com> <20251014122335.dpyk5advbkioojnm@master> <71380b43-c23c-42b5-8aab-f158bb37bc75@redhat.com> Precedence: bulk X-Mailing-List: cgroups@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: <71380b43-c23c-42b5-8aab-f158bb37bc75@redhat.com> User-Agent: NeoMutt/20170113 (1.7.2) On Tue, Oct 14, 2025 at 02:59:30PM +0200, David Hildenbrand wrote: >On 14.10.25 14:23, Wei Yang wrote: >> On Mon, Mar 03, 2025 at 05:30:13PM +0100, David Hildenbrand wrote: >> [...] >> > @@ -1678,6 +1726,22 @@ static __always_inline void __folio_remove_rmap(struct folio *folio, >> > break; >> > case RMAP_LEVEL_PMD: >> > case RMAP_LEVEL_PUD: >> > + if (IS_ENABLED(CONFIG_NO_PAGE_MAPCOUNT)) { >> > + last = atomic_add_negative(-1, &folio->_entire_mapcount); >> > + if (level == RMAP_LEVEL_PMD && last) >> > + nr_pmdmapped = folio_large_nr_pages(folio); >> > + nr = folio_dec_return_large_mapcount(folio, vma); >> > + if (!nr) { >> > + /* Now completely unmapped. */ >> > + nr = folio_large_nr_pages(folio); >> > + } else { >> > + partially_mapped = last && >> > + nr < folio_large_nr_pages(folio); >> >> Hi, David > >Hi! > >> >> Do you think this is better to be? >> >> partially_mapped = last && nr < nr_pmdmapped; > >I see what you mean, it would be similar to the CONFIG_PAGE_MAPCOUNT case >below. > >But probably it could then be > > partially_mapped = nr < nr_pmdmapped; > >because nr_pmdmapped is only set when "last = true". > >I'm not sure if there is a good reason to change it at this point though. >Smells like a micro-optimization for PUD, which we probably shouldn't worry >about. > >> >> As commit 349994cf61e6 mentioned, we don't support partially mapped PUD-sized >> folio yet. > >We do support partially mapped PUD-sized folios I think, but not anonymous >PUD-sized folios. > >So consequently the partially_mapped variable will never really be used later >on, because the folio_test_anon() will never hit in the PUD case. > Ok, folio_test_anon() takes care of it. We won't add it to defer list by accident. >-- >Cheers > >David / dhildenb -- Wei Yang Help you, Help me