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 C4168C38142 for ; Tue, 31 Jan 2023 10:59:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 510CB6B0074; Tue, 31 Jan 2023 05:59:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4C2BE6B0075; Tue, 31 Jan 2023 05:59:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3891C6B0078; Tue, 31 Jan 2023 05:59:47 -0500 (EST) 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 2ABD26B0074 for ; Tue, 31 Jan 2023 05:59:47 -0500 (EST) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id DAA09A04B9 for ; Tue, 31 Jan 2023 10:59:46 +0000 (UTC) X-FDA: 80414798772.05.0C5FB80 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf15.hostedemail.com (Postfix) with ESMTP id 7E716A0022 for ; Tue, 31 Jan 2023 10:59:44 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=AcQA5oWL; spf=pass (imf15.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=1675162784; 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=bK0hY7jWQjhFw5K0U5dRPmjS4u6L95GMLvGFqwCWeps=; b=mCDS4v4qdHA8CKUwqh/Y7DrfndxXKYa5D+f2m/K/JR+SwoJy8nKZeqpJ5DhImdAaJhkh+7 fgFjqgqKmAtGlvmNNnoOC2lI0TroUI2iavrweBtg4GY6zjvPV6OvRTv7+zOzqupibyjrZr Vuoj0M9hQh82Rw6LEk3lZc7Lxf32icI= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=AcQA5oWL; spf=pass (imf15.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=1675162784; a=rsa-sha256; cv=none; b=Qu+pStJMqIPrYfiZgki6ltc7HSXzekaH2GxYrzhV2/2mfFRbr6jiUmBFijV5KisNefHMDp yzkCE2Y9qF0ifirR8Ao2bBGyP6RBkoPG8qXIKT8MwHBPtpKJ/maGLHp1yn9UpbGmMx7QTm TJpD5EcgMDfr0oWFd++R4hvAUV0jriM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1675162783; 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=bK0hY7jWQjhFw5K0U5dRPmjS4u6L95GMLvGFqwCWeps=; b=AcQA5oWLbR0RZs0T8sSyDN6jmQlbS8S3G5faZb2dn7L9ZcUdZTWyI2Jz8FyVUTm3q6oux2 DvdysxqnLfbJdKmfsyvQD77utH3SQq1F0WaeJk4OEAjY4zD9jDGt5nVvJmq/rmB0WSGSgZ xPKzjIGoaYd91vpSMarJhxfX3tsZh3o= Received: from mail-wm1-f71.google.com (mail-wm1-f71.google.com [209.85.128.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-516-ydlqEfvoMnyGN4dhgNWJlQ-1; Tue, 31 Jan 2023 05:59:42 -0500 X-MC-Unique: ydlqEfvoMnyGN4dhgNWJlQ-1 Received: by mail-wm1-f71.google.com with SMTP id j24-20020a05600c1c1800b003dc4480f7bdso6084596wms.5 for ; Tue, 31 Jan 2023 02:59:42 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=bK0hY7jWQjhFw5K0U5dRPmjS4u6L95GMLvGFqwCWeps=; b=5GnVUBn48wC680IhyEhx1g0VyHhFnELDRrxrwQZKHbQwkGw6d/5U3FLhMRqjUg4ni2 +LPdef6pgUJJc5AMk3T7G1pZEea+A5yKuz8M7IBXgCUpytOtfqo75db0O2Kzei2yBW1n KYiB7xxV1ZLJ7w1G0EMvlEAxSmgXEGVeEUwZ9IGBDopyEkySF721RIUV8Ug3G+I5vqk8 H0tYvHM1YRBkZLepvRXMt/uofs8NyJhicgrW8RsiVWJxujhut0A1UnX3ESv81SIAxKaZ NYfPYSJAesemfk96W6bHYvU/YW9n9FbVo0W64QzIUgtlxQmMB7KwX1WwNKvJaFKuCb2I Mjjw== X-Gm-Message-State: AO0yUKW8bH8SvDNh6b8flUV1xT7Hqk1ILG39UlryPj8rCxCFsVbolODg jLc5RDhhMDTmAKqAvbiNCJo3Bwcz0AqHFl22244uMmNSoJptVGnLyPibqepFNTxben/iBNEEsKc PzSgBwhb+Z1s= X-Received: by 2002:a5d:5181:0:b0:2bf:b92b:8a78 with SMTP id k1-20020a5d5181000000b002bfb92b8a78mr19716857wrv.23.1675162781364; Tue, 31 Jan 2023 02:59:41 -0800 (PST) X-Google-Smtp-Source: AK7set8DGpVSZWFcxWxQzzKd2hwFYf7lwSaCZ2AyoxEoOEo3a1/URRT8kvwULuQ6IWx0K5zx+ogBEg== X-Received: by 2002:a5d:5181:0:b0:2bf:b92b:8a78 with SMTP id k1-20020a5d5181000000b002bfb92b8a78mr19716838wrv.23.1675162781009; Tue, 31 Jan 2023 02:59:41 -0800 (PST) Received: from ?IPV6:2003:d8:2f0a:ca00:f74f:2017:1617:3ec3? (p200300d82f0aca00f74f201716173ec3.dip0.t-ipconnect.de. [2003:d8:2f0a:ca00:f74f:2017:1617:3ec3]) by smtp.gmail.com with ESMTPSA id j5-20020adff005000000b002bddd75a83fsm14159375wro.8.2023.01.31.02.59.40 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 31 Jan 2023 02:59:40 -0800 (PST) Message-ID: <8c152d25-5909-71f9-3946-cba9254525ef@redhat.com> Date: Tue, 31 Jan 2023 11:59:39 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: [PATCH mm-unstable v4 1/6] mm: add folio_estimated_sharers() To: "Vishal Moola (Oracle)" , linux-mm@kvack.org Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org References: <20230130201833.27042-1-vishal.moola@gmail.com> <20230130201833.27042-2-vishal.moola@gmail.com> From: David Hildenbrand Organization: Red Hat In-Reply-To: <20230130201833.27042-2-vishal.moola@gmail.com> 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-Stat-Signature: a1eki9x9d9s9fgfmx1n3hexgf3n77h3a X-Rspam-User: X-Rspamd-Queue-Id: 7E716A0022 X-Rspamd-Server: rspam06 X-HE-Tag: 1675162784-566972 X-HE-Meta: U2FsdGVkX1/D9zF2wZJc2a8hhBn7QbKAUJgkrR63YECcp4+Nup8dn/4wBEcnw1WrmXqo4ybMBBpVfyINYZA9EYU5JYvlSlHk9OfkZZePNFlekn34vdcDo/ug5KCp0JCIc6P9FRRF1d6+DxCMOmYhmLH0sNIlYl3zXm0fWAU18SgxCCXj4SxRx5S4+4gy88ER6ljwzCePBYhFaKJAPDZ4lN+3ZT8nZcGwOe6XoKADixEKBvfpy7UA6JmKswcL4JXnZid8EIpwCU72AW3DkjyhroNv2pQEZnHUA2TNAA3mvYnarMIJd4hsTvU3TJ0res+qu9fSDIeVR36jB7fz+bjiVLncccHGGoJFexwYQhFL1z5KgRz3jytLFz71fWabDNGEos2WSn08RWp0U64khn8WS4BJ1H15z8JLYT7j37VTQrOZ1wwGyS4lCgaV+uYKs1L59chNHl9rBYJnem5x9RsY52dcrdheCoFuaKoURXttIxtsRbIWJYXSvFczJ6jyCsOtx/9tuJ47btuSFHLeQBtu8FlBgsARClCozerXR5cmBl4NJjCtjH3Bqasqvhq5dxWJEh/N3p35zUrxnbABCkyT5wceflBL04a15izCPiXRn45T5BlX7u7cOKkOhLO5BdXCLF/BO/8QaMTYqlQ/xdGs3Qm8cjdWGj3XsuFPGql39IYpTZW9UV3mfck/THAIOWKNxF35KNbhtVqE8OfSoUqmi+o7gSN+zvL8ilDMGThl6V7dVsIuZS5FoSsc18+u0Mxd2cAfaXNLtFKr8PLeX3xyNBn7wmAO5IGhXFwHDi38Pj/CXwnOgo3oseimV+9Cg5l9xXExkTZ6xoOFGIvY6oRufGDkh2feAdsRr24RbsIslpqZtbtElnawT6B2i3VxsqKuu/5erxNubijgLxUcK9nhyAMuhrb2amKuh5UkUd44GUCEjjbk5YFV9RjYbF9XTMUTQ5nXemMJAF710+yi5XZ NWB7jv5f 9724+bxbU+8B8I9yI81wt0dJgzYdhOtDFhx6ZGvajPRoLXNVpdSv6n25GvJQFHqLQY6iMQNe1VpasDjTsBn4sb3loeLaAIm2p6ma+oBrrQdO75bmnOYETmmoxeCdzj+MZWCwdqhpR8KfAXYaSHbqudhTSDqWjM+MGUy8RqvV7zH7lk8Gm+A7WXFEBMAxeKFPWS8KkrwVVii+myJP0hgm8WfY/GHiUP6PhdCvCIMalG7gs2DuOJDA8fnXn8aCN98hASo9uv4dWpivuCsgqSp89Z3C7o/fPBrhT7xXPF+kSTtptmSPX1+IsNNeeiNB8rJydlSuNwQG4T1dsdCUcMLnCurd5VUgVrL1kIUeqdOMI9Xhl2Z+axo1ik/VFI0ct1HEwcv2iYGVKdN8McicpEmDZKQQzRIR3hT7+5hF+hAuc5aAXtZcgFROJ0f/5vOcXZDx/bIwvNw13Y+qwo0LVo79UzOQm7Jr7F11JlFhEnAXYsL8xADnH4uo2uQcPRvbrg+eCW1LFEvP9sdlfDtxsMlGTF6ZrI2O64tbyQ4Ox0ZLm9as0xLe08TIBFYTupw== 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 30.01.23 21:18, Vishal Moola (Oracle) wrote: > folio_estimated_sharers() takes in a folio and returns the precise > number of times the first subpage of the folio is mapped. > > This function aims to provide an estimate for the number of sharers of a > folio. This is necessary for folio conversions where we care > about the number of processes that share a folio, but don't necessarily > want to check every single page within that folio. > > This is in contrast to folio_mapcount() which calculates the total > number of the times a folio and all its subpages are mapped. > > Signed-off-by: Vishal Moola (Oracle) > --- > include/linux/mm.h | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 27b34f7730e7..c91bf9cdb3d0 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -1905,6 +1905,24 @@ static inline size_t folio_size(struct folio *folio) > return PAGE_SIZE << folio_order(folio); > } > > +/** > + * folio_estimated_sharers - Estimate the number of sharers of a folio. > + * @folio: The folio. > + * > + * folio_estimated_sharers() aims to serve as a function to efficiently > + * estimate the number of processes sharing a folio. This is done by > + * looking at the precise mapcount of the first subpage in the folio, and > + * assuming the other subpages are the same. This may not be true for large > + * folios. If you want exact mapcounts for exact calculations, look at > + * page_mapcount() or folio_total_mapcount(). > + * > + * Return: The estimated number of processes sharing a folio. > + */ > +static inline int folio_estimated_sharers(struct folio *folio) > +{ > + return page_mapcount(folio_page(folio, 0)); > +} > + > #ifndef HAVE_ARCH_MAKE_PAGE_ACCESSIBLE > static inline int arch_make_page_accessible(struct page *page) > { Acked-by: David Hildenbrand -- Thanks, David / dhildenb