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 6DF65C38142 for ; Fri, 27 Jan 2023 23:04:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C53946B0078; Fri, 27 Jan 2023 18:04:17 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C036D6B007B; Fri, 27 Jan 2023 18:04:17 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AF2E06B007D; Fri, 27 Jan 2023 18:04:17 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A28116B0078 for ; Fri, 27 Jan 2023 18:04:17 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 77F36AB863 for ; Fri, 27 Jan 2023 23:04:17 +0000 (UTC) X-FDA: 80402109354.29.542BEB5 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by imf06.hostedemail.com (Postfix) with ESMTP id 6955418001D for ; Fri, 27 Jan 2023 23:04:15 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=GeXLPEFP; spf=pass (imf06.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674860655; 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=NcHbZuD5dObSAxwSh3YvLOkl4+eDv2hweNpupYt/Azo=; b=LaPsG5uYbRH7wGDczZ++mHXThKmrw92wYPLh5qW8OAoXpGZJ4EDWZpnBZ2MO2Kb+RxPbda XfKCcBsUz7Kvdacjpxd0UCnOPJvgOvv3X4e9mnMxpMUP3ULIxbMghpIgzfCEYWAaLQnp+B ZdKYZWssEN6QWpdwM1nvRYMEyOkDugU= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=korg header.b=GeXLPEFP; spf=pass (imf06.hostedemail.com: domain of akpm@linux-foundation.org designates 145.40.68.75 as permitted sender) smtp.mailfrom=akpm@linux-foundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674860655; a=rsa-sha256; cv=none; b=2pRIrghjQgAAEdkV4ACOwan9aE1cjGEGbuN/KO2Mu4XORz2k6uC/gG6tiJ/j6L1Ege5pCm Nx5jD1VQkMTp/Sfzvx8b2nthjAlIMF61lqqcu+jN0MaINnXXVEe398QHBw/T775IHbdmb2 kzmPiTwUt/nbfyEZNn5BO+8sTF57TJc= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id E4341B82205; Fri, 27 Jan 2023 23:04:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 36E7AC433D2; Fri, 27 Jan 2023 23:04:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linux-foundation.org; s=korg; t=1674860652; bh=vXb6OGR3jjuhguEAysSQHpLS55ZCH4lzC8q7qrmExC4=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=GeXLPEFPnmXnybEa25WwdFpTpr2nhYU8dLL7E2sH4CFNOzfVOkdnfEsFzv+w1P77i ZFHD1cIyfbt01v+7INXSaQrNBZu9xQCzZVaHHdD09PqZPS918tHEKQ7Y1NXN0O362B SeJxlYCZqBX14TKSM/4XPHIjm5y0xIrxE6v2kSgs= Date: Fri, 27 Jan 2023 15:04:11 -0800 From: Andrew Morton To: David Hildenbrand Cc: Mike Kravetz , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Naoya Horiguchi , James Houghton , Peter Xu , Michal Hocko , Yang Shi , Vishal Moola , Matthew Wilcox , Muchun Song , stable@vger.kernel.org Subject: Re: [PATCH 1/2] mm: hugetlb: proc: check for hugetlb shared PMD in /proc/PID/smaps Message-Id: <20230127150411.7c3b7b99fa4884a6af0b9351@linux-foundation.org> In-Reply-To: <4ad5163f-5368-0bd8-de9b-1400a7a653ed@redhat.com> References: <20230126222721.222195-1-mike.kravetz@oracle.com> <20230126222721.222195-2-mike.kravetz@oracle.com> <4ad5163f-5368-0bd8-de9b-1400a7a653ed@redhat.com> X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Stat-Signature: inhk33qms9grjypgtcis947ti3bytswh X-Rspam-User: X-Rspamd-Queue-Id: 6955418001D X-Rspamd-Server: rspam06 X-HE-Tag: 1674860655-462922 X-HE-Meta: U2FsdGVkX18mKY88TBLbUGMuccOEW2g+kKugw4k9L93Yj0p+YIyOSrdnCXaA5uR/+JLMoFnUIO2AwmMp1zCgd+8bPk5jnodXIlTPU3TydydBfTpSb9B3Y1BnFsrR9FVyWXPeVDvmYZsDwcE9AQUawEYIe55Xs0/Zsu7mPjAjE0cZNKZCPn5OiBVNTwrsESvHG0ccXhrYbIua1hjE65rnN4coyK5qNebQo7fC/h4LPda84hSQnoonDWoFt8BZnu17tduKs9hXWXsQ9FcbaEsCZdAK6uhJ2WPTWIyRX+qSan9pU+PUGNQK99xIKl4Pgw5B522hCIrIyXVimsNTen5K5dE+UBzKuNylO81tiPNf2aXyF0GkcLkpxcsUk5mm/I4JXevFuSQWGLfmOMbt2/P9D01OVzqoMVgd9DI5iM/zH9pdTHnqBWmciKb8vfSpPuEWiwGCxX32ZVphN37OC2NsQsikGxkRaclUDqEXd+mTjcPOgRHY0i/bQqePnCJavD1pgr9JB+uT8Q7azB+uHcsCUX7MT+zG5Kzov8u4kXpvWA6HBiMPAuD/VYui4EaJfito42verlolQTaBBGcKce06YiQqUzhbDn3cOFra87TsQ2VhQqDn4Imwyk/TnvTwv3dw+a5tA09VRw+dNvZGNtxx1PMMrlkOjq2tFOV0OrsgVGTxIRq+/NittwY9pNCi9mu7jLrNSuY+wK7M12L7JzFmibpSmLLSga+fdJyX/CGqIk95wdShWnwtVts15T4PqHbrLF1W1zCHnwHp4iK7SVsQ9/Bgqi7oYGFt3JLiSdWMj3zJRiMvXvPOgKgz574aVsKGICeU9Cj591Ignrzjwarb61rhjPmKqJzedJQ2ry9ALzeNUJtfPTCE7GzV5miL4lUD7ezeAp8GEQu6UBnqG98cj8Lc2vbjGZRYvSuJtzwA87oFBjIewGO0gjiv6BZZoDIAbxh9ADanA2BBar6GsXn jL8e8UJB zxquvJE70jHRORGo+3D+S7vPGjA6dEAK3AORDt0WNHXdoFO4+rkXsZoy4hb2acXkUzRsT55EpS5p4vbjg6gITWZoQzuopCJK1S21K6XbFr9g7SPyZlys+DEA7yDwaiSce024dgFs/y9UU9jSrumj2zBDkv5gUgax6wi/xbN9jjxxWPhiGU2xY1pVrDaC/ejt2EAqojmLB7lRhfZ4uLcIkkSqJO9ut4EAShsE9DFbTYwyl9r9KYo6iVDsio5V3zu8YID8utXt4QAS6Q7w/mBzVAAUb4M9S7h5t3g8PRHnag4nWqmUs+0gcUABb8uLnJHoPxzMm/0jTWwqN2TWiZXPAHiQjmLpFDSh82bp50Y79j8hBA335nzYUtDLZuchGk8bDatArsOxFuPZINZA5L2DfkU2nXCXD0ifVLwrYz5BAeT+E4HO4DTO+vjLAbtJsNKTiaA4N 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 Fri, 27 Jan 2023 17:23:39 +0100 David Hildenbrand wrote: > On 26.01.23 23:27, Mike Kravetz wrote: > > A hugetlb page will have a mapcount of 1 if mapped by multiple processes > > via a shared PMD. This is because only the first process increases the > > map count, and subsequent processes just add the shared PMD page to > > their page table. > > > > page_mapcount is being used to decide if a hugetlb page is shared or > > private in /proc/PID/smaps. Pages referenced via a shared PMD were > > incorrectly being counted as private. > > > > To fix, check for a shared PMD if mapcount is 1. If a shared PMD is > > found count the hugetlb page as shared. A new helper to check for a > > shared PMD is added. > > > ... > > > --- a/fs/proc/task_mmu.c > > +++ b/fs/proc/task_mmu.c > > @@ -749,8 +749,14 @@ static int smaps_hugetlb_range(pte_t *pte, unsigned long hmask, > > > > if (mapcount >= 2) > > mss->shared_hugetlb += huge_page_size(hstate_vma(vma)); > > - else > > - mss->private_hugetlb += huge_page_size(hstate_vma(vma)); > > + else { > > Better: > > if (mapcount >= 2 || hugetlb_pmd_shared(pte)) > mss->shared_hugetlb += huge_page_size(hstate_vma(vma)); > else > mss->private_hugetlb += huge_page_size(hstate_vma(vma)); Yup. And that local doesn't add any value? --- a/fs/proc/task_mmu.c~mm-hugetlb-proc-check-for-hugetlb-shared-pmd-in-proc-pid-smaps-fix +++ a/fs/proc/task_mmu.c @@ -745,18 +745,10 @@ static int smaps_hugetlb_range(pte_t *pt page = pfn_swap_entry_to_page(swpent); } if (page) { - int mapcount = page_mapcount(page); - - if (mapcount >= 2) + if (page_mapcount(page) >= 2 || hugetlb_pmd_shared(pte)) mss->shared_hugetlb += huge_page_size(hstate_vma(vma)); - else { - if (hugetlb_pmd_shared(pte)) - mss->shared_hugetlb += - huge_page_size(hstate_vma(vma)); - else - mss->private_hugetlb += - huge_page_size(hstate_vma(vma)); - } + else + mss->private_hugetlb += huge_page_size(hstate_vma(vma)); } return 0; } _