From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A50F7C001E0 for ; Wed, 9 Aug 2023 19:26:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 385CB6B0071; Wed, 9 Aug 2023 15:26:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2E77B6B0075; Wed, 9 Aug 2023 15:26:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1880B6B007B; Wed, 9 Aug 2023 15:26:18 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 0AAA86B0071 for ; Wed, 9 Aug 2023 15:26:18 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id D3910120FA0 for ; Wed, 9 Aug 2023 19:26:17 +0000 (UTC) X-FDA: 81105547194.07.6E00B99 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf03.hostedemail.com (Postfix) with ESMTP id 821A820003 for ; Wed, 9 Aug 2023 19:26:15 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="cZP/8JrJ"; spf=pass (imf03.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1691609175; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=k6xf89mSS43Mh9qXicJVyXd+LHrtdJLi91ztEImliwY=; b=qIWb6hsWoFwOyV+4wlgYwX0frpxPu2S1wikSvfugubVLUF0Rx/09z82eWG3hTlEWZoM1DB q/exX0HWlMrohATtHqfBjCH3MaIiS5qSeoOGsy3P9TFGoRTC2mQz1xID13OZM5BTgTZYNT WdUcJTqn3lz5oyZns71C3yOyheH5paw= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="cZP/8JrJ"; spf=pass (imf03.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1691609175; a=rsa-sha256; cv=none; b=IIGAnBS/lQLrwwRN/On07YmT8g2nUc2DRVvWRSinZrHxLtB0jqeOML78u6W6IlrvsfXdWR 27fjZjIXTjefiNfo+O7vwRZ37PQNWXIwa1ET89Wv/3K9iCfn3+ux2U/+DK8kTRIAsC0wVA U85M++AtjX0zKRz1q+PRPTAUQxT78Wg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1691609174; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=k6xf89mSS43Mh9qXicJVyXd+LHrtdJLi91ztEImliwY=; b=cZP/8JrJ11IPzf3fVtKAaKjJp0xWH8l9up6PGfEtHopZKFOgY6qttlutLLvNFZDC3h872d +oiSFomNstRaQpUgFzHLEG/H62E2FAbsee+8ItU1m+Fc55GVdYTZl2pp3t3cBARHkrG8LO 7LgXrxoG3XscPnTFQE2gqJk3oLBjTro= Received: from mail-wr1-f69.google.com (mail-wr1-f69.google.com [209.85.221.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-222-Om_VHnkMM7Ctb0DOwbjgPw-1; Wed, 09 Aug 2023 15:26:13 -0400 X-MC-Unique: Om_VHnkMM7Ctb0DOwbjgPw-1 Received: by mail-wr1-f69.google.com with SMTP id ffacd0b85a97d-317df1add39so129635f8f.3 for ; Wed, 09 Aug 2023 12:26:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691609172; x=1692213972; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=k6xf89mSS43Mh9qXicJVyXd+LHrtdJLi91ztEImliwY=; b=cHCQSzKMx32K5LIUL7c12cL5jPpbagNtdXkaCFEFlZSYPyUwXsObKSF3x5ozZrMws/ LjSLN4m7Rj1wUWt12cStXlCAJvRJd4JvYEDJ0by0R4jeNmRL61wb4hHRuUtMedpbmuG9 BmS2OuNeM8yHPrOvEHKH7j6N+NM+F17r2E2m9Ei77r3sGhSefl+M878/yQ6QOkm0yUfQ cueY6IW222SdoABqwyI10hoPT025D3iMMGCW/q/vWf+9P2Ch9/6y26L8rH8X7BIr+aZn ZGfWkoanKCu/+QoIzLC+O+kRNYP/MtqQiIa2f+tV5t19Vy2bN9/6cFfCPsziHPnQJsEa 8hZA== X-Gm-Message-State: AOJu0YyR/gPegDQNS3XMhBe79qJwsP6IsRg+lDxVDnmrVEBboQ9p8jXB hZzFteTp9goHDDgYH7FutesAYV+Om1KdHEdxr1UbsrxTG0UwQIbBmABtujZmZ/gnfmSuw428Y7S 5thzsW6u+8d4= X-Received: by 2002:a5d:6a4f:0:b0:314:3a3d:5d1f with SMTP id t15-20020a5d6a4f000000b003143a3d5d1fmr255538wrw.19.1691609172341; Wed, 09 Aug 2023 12:26:12 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHLr5aiR3cnajcrFVMZx6P2KRMnVfsFfQxdftvyDgCbC8w/PiBJh4hK24vB5ITRl/jtTOUovA== X-Received: by 2002:a5d:6a4f:0:b0:314:3a3d:5d1f with SMTP id t15-20020a5d6a4f000000b003143a3d5d1fmr255527wrw.19.1691609171991; Wed, 09 Aug 2023 12:26:11 -0700 (PDT) Received: from ?IPV6:2003:cb:c70e:6800:9933:28db:f83a:ef5? (p200300cbc70e6800993328dbf83a0ef5.dip0.t-ipconnect.de. [2003:cb:c70e:6800:9933:28db:f83a:ef5]) by smtp.gmail.com with ESMTPSA id h5-20020a05600004c500b003143aa0ca8asm17747899wri.13.2023.08.09.12.26.11 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 09 Aug 2023 12:26:11 -0700 (PDT) Message-ID: <703bb7de-aba7-ee4b-c2fb-3562318072a5@redhat.com> Date: Wed, 9 Aug 2023 21:26:10 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: [PATCH mm-unstable v1] mm: add a total mapcount for large folios To: Matthew Wilcox , Ryan Roberts Cc: 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 References: <20230809083256.699513-1-david@redhat.com> <181fcc79-b1c6-412f-9ca1-d1f21ef33e32@arm.com> From: David Hildenbrand Organization: Red Hat In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 821A820003 X-Rspam-User: X-Stat-Signature: jphcr6w5ao8bx5w6dn1miycojt4xnap6 X-Rspamd-Server: rspam01 X-HE-Tag: 1691609175-267577 X-HE-Meta: U2FsdGVkX19hH/kIHULMW4JiusL6WVYl3FC1RAvIAyqY/YhGsjLGE60JgChukjVQc7IrHNB5XOUm+08w9rlKKK44HHEx7kDa/PnWyBkXJqKGfIlhrMOc+SAXZKfMcIChn2FBtY6Epwpxl2DThgjBsDRTrk8QLVf2V6GMmeh+Q7nxndotah8baQUVO+UF8b6MM7kTquPdoIhpCvhRNjryY2SsNhOOUrn6btiIv21QcdPKLpyD+5kf0vo9yjkiQhOcMaICfMMfKfyGfgItrde+RypTdQqXpiP+Kuv+iUrfAgVY8d8BxBfOJ9jC5DsqpaufDrR42mjnVBkaD0ZNj0Bt5rFonJ7gFJT/vQFCY5AaZIoCKxm2CXHsknaoagLuyJ5wiuEobUd7EbwmiQ5KyKedYMuWb7HlTmgAHepV/x9n/PIcggZP5d8PNRQSapMJs5+HmHmCtKi7ASefTZlnXKflpHiV+G2PlZLUTE+xXDUQ/swVCHwvZIhrGcZQGMFfet/iZgnrK6NTpAs49T8zyvTHoxoB5LDnCZ6ulVW3iqYTNYaTaWfrZKubPZxgQ9TyTcOVTPEUXIza7EHdbzDE53GgCXvDZkAYptvbyGM3eCENi/gAvNj4rXDURtPgokMP/XSyNpyNVyki06TOZBADK4L2zWQVv7Dr13EhwkKtV8MmdUqEbcC/NMAVE/DX7bhHJZb80MZa0ragL3iDJ+XRorGiMzSNZou3oy1WT5cUqYrrqblhKVrmkrc5t90Cj/Me5Sxo7aYlwyV18Vn9qaDiXUJb7zyYMae1cyuWaQ4cETaQrShkLc8eKejT76pL+W151ekHyIXczuUDppdBVhWaS6TvU+trgBMpEHC0IM/m3W9tTqFWF7cagMhsZqC7AFDUF0crS5xBjCbQ8s91C7xriUYltQzu+/OZ2aj2aBTB9Ug4PMrjGuHIxcE7ilWzvbBlKlcyGUbcAemkirnu+e9BbDR ZmydgyBL F7ELo4IiIFd0gjr49FoNYmRmlIHy8m7UA370Arn0cBnBtezH767G8mufT0L1szdeC6veExvpMEkxGB/B0jb0ckhNWiwWRk/aBYYaiSjKE+u7pReYmrAjAo3Br7u0+stiM4kmk95qLxNuXSvHRElQFdSCXBRjz8l8dQThIQ8e/N9OtqmlXNZBau5W49RCNZAJSFDr7J22O5thj6bRT4dtKHpjdex4CFbUZx2vMzQFFqmMSOolontst/whh6FdvbLSN0odcS+ITAFAvp98/JllgCR+yUF5QPgF7LxKWWrmyMgrZ4yGDkVZUqzI/WJ7jxUVAdsJH6pkVHIgcARSMWrMYvZTIhkT1mHx79PLEYMQzQUw8uMl1JzrvMmBJucjMjCX1b+Bp X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: On 09.08.23 21:21, Matthew Wilcox wrote: > 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. From my understanding, if we wrap the total mapcount, we already wrapped the refcount -- as you say, grabbing a reference ahead of time for each mapping is mandatory. Both are 31bit values. We could treat the total mapcount as an unsigned int, but that's rather future work. Also, even folio_mapcount() and total_mapcount() return an "int" as of now. But yes, I also thought about that. In the future we might want (at least) for bigger folios refcount+total_mapcount to be 64bit. Or we manage to decouple both and only have the total_mapcount be 64bit only. -- Cheers, David / dhildenb