Received: by 2002:a05:6358:51dd:b0:131:369:b2a3 with SMTP id 29csp309218rwl; Wed, 9 Aug 2023 15:07:17 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEUHldXze29PEhZ3gaa2gER9No8UK33ABpcqfBcCTNfQKFroBFCYQiInCr9RTxAAhjUKHD9 X-Received: by 2002:a05:6a21:47cb:b0:131:eeba:184b with SMTP id as11-20020a056a2147cb00b00131eeba184bmr464302pzc.25.1691618836899; Wed, 09 Aug 2023 15:07:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691618836; cv=none; d=google.com; s=arc-20160816; b=w2/VJVMALg+0nvihqtAWS9kzYDa/ST+/fV0VUzhqCONxELbZQznN4TVeu+ou2k/kE1 zgO6o4oq6FZWnAbisbBfV2MsTTv89eUQikExRANPk9IObULrS23fH2Yz88aONKTFnZY5 BApsbHvHQdXN+WbfWUSS+srmT59gkCrj2k8wQ4JlseWYRShPe+L3pTqclpkBlXs3cNHG jhuB1ZyHg2v9Zfa1pMT1ZsuIl9zmf0nUUWYlbRuWjFUpvPEPZRDzRfSVsg0j7jFHnpLi W4h30Z+kBGiGQXDgGxRyU8pixhpAplFZ72WOHwqj0vll1Dq4htdJVWWGblgKW3ezzbhP L3Jw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=V6aw3cKsEAtcteG5TsVfLRgpt+DuKUB5RKFqkVnPpSE=; fh=ZH1PL2p6AdEUaGzyryb2buY2Stj3hAKyXtB5ecbDknw=; b=HohEnoaC4EwS53YVtHHKvCn6XZECi5vTyNBjyE/gf2Es3FdvX/4GT5Q9E0MHy0+EAt oBygi5CZ21S4k1MSz2jpbJQfiLEI0E5+QpmP0M7Q32GcC7M8zj/BXjmPVtdh0wd1ZemE 4MUVM/QONmYaPJpXUMvC9HPsSAZ8OU6uWf8p+R9JtdCBU/JUCEUETGsNLx/XxJxs5a18 0870/pRQFPC5Pkoxr6WwZ4IL2+tUFedGibfobcFlK3yi+oHQErbNFlaowhfRzUwcCneN OImuxSwjlm+IQSoUin5xug1oKW7o8qaZmxqWbUwieyWIRUER4BPxu0tYLQ5g0FEUmwkD JoxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=casper.20170209 header.b=lsUxQcuW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ct5-20020a056a000f8500b00687f4ebfea9si130485pfb.319.2023.08.09.15.06.58; Wed, 09 Aug 2023 15:07:16 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@infradead.org header.s=casper.20170209 header.b=lsUxQcuW; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232614AbjHIVO7 (ORCPT + 99 others); Wed, 9 Aug 2023 17:14:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45154 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233816AbjHITVp (ORCPT ); Wed, 9 Aug 2023 15:21:45 -0400 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ADBEB4493; Wed, 9 Aug 2023 12:21:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=V6aw3cKsEAtcteG5TsVfLRgpt+DuKUB5RKFqkVnPpSE=; b=lsUxQcuWgOl6iSPOALnYzG0wD2 LrOSFUpTYzRV2I7TU5dEJ6WhDAMXvaHNrHA7jsmh7FirTeooUWNl06NukygzHox9aG34P/umosboi NzK4MRv0KQb+H2+de/XnOqWVFFCLY0z8SJJnOEE9dj3ESBZf38CMe55j8CIxFekqBMuQ2M5asPan2 vyFsomoxYkhgRpoCb4rQHpuA5eM+b2i3usPxfRMfN5o4Vi7d9OMWfer5oZSvs7IbzTNR9FzrsuV3K jp5E14YVTVI/bGT8STIPcApoP+jVIkqCUNCFb1DvtD0iMjux2Xmcd3wrmz8w255nTjze/GHMB6qr2 u+rEebWg==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qTok8-007x7J-SP; Wed, 09 Aug 2023 19:21:16 +0000 Date: Wed, 9 Aug 2023 20:21:16 +0100 From: Matthew Wilcox To: Ryan Roberts Cc: David Hildenbrand , linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-doc@vger.kernel.org, Andrew Morton , Jonathan Corbet , Mike Kravetz , Hugh Dickins , Yin Fengwei , Yang Shi , Zi Yan Subject: Re: [PATCH mm-unstable v1] mm: add a total mapcount for large folios Message-ID: References: <20230809083256.699513-1-david@redhat.com> <181fcc79-b1c6-412f-9ca1-d1f21ef33e32@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <181fcc79-b1c6-412f-9ca1-d1f21ef33e32@arm.com> X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE,SPF_NONE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Aug 09, 2023 at 08:07:43PM +0100, Ryan Roberts wrote: > > +++ b/mm/hugetlb.c > > @@ -1479,7 +1479,7 @@ static void __destroy_compound_gigantic_folio(struct folio *folio, > > struct page *p; > > > > atomic_set(&folio->_entire_mapcount, 0); > > - atomic_set(&folio->_nr_pages_mapped, 0); > > + atomic_set(&folio->_total_mapcount, 0); > > Just checking this is definitely what you intended? _total_mapcount is -1 when > it means "no pages mapped", so 0 means 1 page mapped? We're destroying the page here, so rather than setting the meaning of this, we're setting the contents of this memory to 0. Other thoughts that ran through my mind ... can we wrap? I don't think we can; we always increment total_mapcount by 1, no matter whether we're incrementing entire_mapcount or an individual page's mapcount, and we always call folio_get() first, so we can't increment total_mapcount past 2^32 because folio_get() will die first. We might be able to wrap past 2^31, but I don't think so. I had some other thoughts, but I convinced myself they were all OK.