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 98B8AE7716E for ; Wed, 4 Dec 2024 14:40:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2B1086B0089; Wed, 4 Dec 2024 09:40:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2613F6B008A; Wed, 4 Dec 2024 09:40:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 14FA76B008C; Wed, 4 Dec 2024 09:40:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id E96446B0089 for ; Wed, 4 Dec 2024 09:40:50 -0500 (EST) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 7A328121024 for ; Wed, 4 Dec 2024 14:40:50 +0000 (UTC) X-FDA: 82857537924.15.F767306 Received: from mail-pg1-f173.google.com (mail-pg1-f173.google.com [209.85.215.173]) by imf11.hostedemail.com (Postfix) with ESMTP id A24C540003 for ; Wed, 4 Dec 2024 14:40:34 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=E03a5Q7m; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of haowenchao22@gmail.com designates 209.85.215.173 as permitted sender) smtp.mailfrom=haowenchao22@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1733323234; a=rsa-sha256; cv=none; b=kbdg/burUq5FYVOmhpZNS7KlOtTOTGC0QKHKhHfezveJftBBrfT4wudwVSg6Qs8/B9JNEy /I0JsphqnpUKzn+DIeLQmS8EUmszXDG8ie0S304BfP/urhkk1Q9CUvpoZmS0tS+kSDvlmI 6vg+qUUHzuDX0gDKtf8WHvFdVxwifkU= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=E03a5Q7m; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf11.hostedemail.com: domain of haowenchao22@gmail.com designates 209.85.215.173 as permitted sender) smtp.mailfrom=haowenchao22@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1733323234; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to: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=8f5DyxCokPWp25cVGU/S/h8a0aME9TNjxCaCS4JaNPM=; b=OzA1njDHiW5aHDy0H0rnXFjRKvXPPrrEeyvXVx+8IojqijTq8EIW3fZvOLT5DjBNYkkrs9 2tM/rueOogUoYiq83b/1gSuB58Q1rNxr8UZiD01lJzYSOPSvR6F2iUlzchxM876Z82DKcS kEuDi4eIFNuUVNN7ZIAOYVBISXWJqHw= Received: by mail-pg1-f173.google.com with SMTP id 41be03b00d2f7-7fbbe0fb0b8so5249912a12.0 for ; Wed, 04 Dec 2024 06:40:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733323247; x=1733928047; darn=kvack.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id:from :to:cc:subject:date:message-id:reply-to; bh=8f5DyxCokPWp25cVGU/S/h8a0aME9TNjxCaCS4JaNPM=; b=E03a5Q7mXfFYHhJTTLbQN02Pga9e4WdemWdg0Mu+UVWOa/4TpgRDHFLLjHpWC0wv2f U1TnJg3VuZBsYXqYPGW66KrBOohcEC5i1HKEG4hC5ivp0hT2nW/rIfTM3SxP0oOO4nqe HfUYI1PrvABaYbSzLg0jAC2iQe5HJWGQaQIZ5nMv6UKeU2VtAkBO5H2bK+oj4+rww32m vySG+5Al+/eMDDx3YzSYvtxZMsSjx/o7qRm7IPGonu6oB1LvyvJaHq4Yv2JNlpDTmJbL WfBxpEi8b22r6B6rsdz+mJNUe1v0EpX6SC0Zc6oNCF1uu5lGSJy+YNCDDxueh/D4Y30q Kcbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733323247; x=1733928047; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=8f5DyxCokPWp25cVGU/S/h8a0aME9TNjxCaCS4JaNPM=; b=Xw8IzHD68ph+PDnxaCdwqFnn8D8M35BjEx0ncHAERx+NyUPsWn2fMQToZ0XXJh274m oOknmBOyP4lMi7vDNxyCl7vVlPxCF1Q+ZkkZ7pRuic30ckoOJ/KpraJhrXEXZHK/hCwr zbge+IMPMlW/GpDukhn4gkrJWvpuWqqisDhcRVu6/Udh9vex3ClaFBLikJM0eFk/aZJz koReRwwV3PSqPKhdzBdR+P88hCam2E2Z7wkZm0rdwS37GHF4Dlem692C6li+7qhFfGh0 zg1/eQXFtajOaS75QenYcakj29hOJLA7XsbIC7GAu23FljdaNg1MM1WUpWfGLNHSbTAe 00yQ== X-Forwarded-Encrypted: i=1; AJvYcCXzH6/1akXQjkAeexWVr43VgJSdIKYJt/7MqwNVyb6Dpe/hfe1JRR45//Pr6nlzrIODef89p3Y0jA==@kvack.org X-Gm-Message-State: AOJu0Yw88eFXb5vfm/KNQAyB1TVWhmMrV1YEhsMgT5F3VK3gy1tA8ucc LA3ehZtoCQpNgZxvABPZI6J73LA5ufv0MkRhCqEXdoYakvG7aEBL X-Gm-Gg: ASbGncvvkQ1Jgsw0+/UYrVWBN8ZYw4+bKjWQ7i38BbirIUf4p/orC+eMO79vp5V0gNS 1s0IA2GOPvStok6SjvMfWnezuQqwyQLn9W+AiJuz+9MZq2awG0OSr2N20quW4XfdujwTTdS/2QI z1FNiPZW+E+RF4U7l3Sog2nQmbNgykNirKdmF8evoVEZclBubiet5zUJJJ8HkWkR2dyFyuHMWEA JPyR7BcUcMls4/TYaI9JsP4RW9DMg4hAVGYW4LEAWPeQJOcPvcz1MPyO1s= X-Google-Smtp-Source: AGHT+IEnhtP6WRH6k5VaZ2PMbJ7zWCCzAczeTtcxW6pREPco+S5rDahgTDDh1nrxHPbVIrmrV+7H+A== X-Received: by 2002:a17:90b:4a52:b0:2ee:b6c5:1def with SMTP id 98e67ed59e1d1-2ef011e37f6mr8932384a91.8.1733323246764; Wed, 04 Dec 2024 06:40:46 -0800 (PST) Received: from [10.239.15.156] ([43.224.245.233]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2ef270696afsm1477056a91.53.2024.12.04.06.40.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 04 Dec 2024 06:40:46 -0800 (PST) Message-ID: <31158c3e-bf1b-47e8-a41b-0417c538b62e@gmail.com> Date: Wed, 4 Dec 2024 22:40:41 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] smaps: count large pages smaller than PMD size to anonymous_thp To: Ryan Roberts , David Hildenbrand , Andrew Morton , Matthew Wilcox , Oscar Salvador , Muhammad Usama Anjum , Andrii Nakryiko , Peter Xu , Barry Song <21cnbao@gmail.com>, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org References: <20241203134949.2588947-1-haowenchao22@gmail.com> <926c6f86-82c6-41bb-a24d-5418163d5c5e@redhat.com> Content-Language: en-US From: Wenchao Hao In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Stat-Signature: agrrw9k8r6by46q6rxnyt4f7zde67tj6 X-Rspam-User: X-Rspamd-Queue-Id: A24C540003 X-Rspamd-Server: rspam08 X-HE-Tag: 1733323234-703355 X-HE-Meta: U2FsdGVkX1+GbIJl1JLXog58orjP/43zMGUeOAU9NsFcNKTX+AL7FraWPVn3rAjikoztpZgwepT0ReTIpvmETnAzhIWJgZQAfCJoXRS9AcwOmZ5nJIgC0izNXmTRVsTGoqg7QpXnhdnpWVBvBVlGLHTyHd4CxFmKydrYJYY9YaEnm04daRPAAPUOzpfxKazGvdMPW+v9+7FG24v+cgYqX5bUNExFMAdKDtmhUCRfqd+KNBe9/xKP/zr6W1YWV3ciZR5M4sRfsbsXjMTsYT278GKHVwKX1BkUxFCn5Wnv5rrsHvdzRRvIaTJw9Da/23vMKn+OCk+V+P3PD1FYCfHwLOFKDqAOX0X7NmJQyitUkMlgqJ87K26//EqgfOZuQ7CRrwx2VqVIlFQypz0v1aMkOQQEKxzXwVuGrlRXsQUWINt6mP+SbXdpYeQqe9twGr6b1r5w/UBvSja7jYDGCDVSA7sPKhCLQaSY/T1Xk6dzuBnAAhSuLknTTk+H0bgu9KZ7rC7Mod0794GeS3EYT99S9mRS5U/BAmPP8zHGU/StHZbCe1/wjtiq//TsHViVx4PkfMDJibIg6HhpZriAdEO4FdNZ8HQWlpNI1YoX+jMh8KFN8yfcWe3T6iJImv9wylhM8EIQW4N+M6XyRr2VPgP9gmTWQWgNxJwyI2xIs+Nu3/NZsIvyjoXsgMEhbNlPD69OF8L2vrmH4qZ5N1nMv/R2i5jYtownIROVPy91KeJT476LhyN0s/L9APs+gnAfimpyUqORbw8DqJvzF7+yqYvZRdgA3JuH5MaedOByoHsA8LqSIjg+31mZCfGcZZ7GaM/nAw6Moxlx99zNdXBQPkUtAQp2H014hxKsodmsaK8uNny/20yBK3mdnxa5Fspd+fioGrD82qPP9Sq+xN82jYOYB5kMWxvaWmNIkS435rpp/fCQbcQZ43rwXeZTCmZpCJO9axbMJ3CoAJF3uR8v/wD Qp/OSa65 UohjcDfC5VtBzCKTfW0esbtsKr523TrVDhRf/cQQJVv05BwdO8vkszTFMa2ojThC+yy5JUKWTnNn5RfQbIXJvKRZ8A3NR6G+3c7vvUWxGcoJS0yRqDMFJoN4F/RENDuU7vgjNYDV5kfXH0Yt+usYAH4kOm9ot4UhU6tPQvqc26x/FKCl9NqDHwVJ0JWJc1oZcCAGWpxv8rucTDbDFNoEAHqxX5M9HqHVz76R0Y+n0yvcFNw6Hab0OnPXz6u4L88ExwOPxYvefzoAiu9uWhEJuE6cyaJDjra1C1S177xY8LfcDlk8/+/f7MqQ7SZKuaHDgCgyecqpRdTBjWPb+vzsKMzvX3d944ePJkw40U0EFMfRbsUPJ02tSr9Ipy21hkdhQz9criLEP8Z4YYcVEYr+x2z3C1+Jek3uCGOhF56d+KUAUbknFOM5SGsfHmqHT0TX+5bag+RTJox9l+mEHbX13fRYqaD62foIL02kiB/RQQ6+MVvVYw0btn8eJMg== 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: List-Subscribe: List-Unsubscribe: On 2024/12/3 22:42, Ryan Roberts wrote: > On 03/12/2024 14:17, David Hildenbrand wrote: >> On 03.12.24 14:49, Wenchao Hao wrote: >>> Currently, /proc/xxx/smaps reports the size of anonymous huge pages for >>> each VMA, but it does not include large pages smaller than PMD size. >>> >>> This patch adds the statistics of anonymous huge pages allocated by >>> mTHP which is smaller than PMD size to AnonHugePages field in smaps. >>> >>> Signed-off-by: Wenchao Hao >>> --- >>>   fs/proc/task_mmu.c | 6 ++++++ >>>   1 file changed, 6 insertions(+) >>> >>> diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c >>> index 38a5a3e9cba2..b655011627d8 100644 >>> --- a/fs/proc/task_mmu.c >>> +++ b/fs/proc/task_mmu.c >>> @@ -717,6 +717,12 @@ static void smaps_account(struct mem_size_stats *mss, >>> struct page *page, >>>           if (!folio_test_swapbacked(folio) && !dirty && >>>               !folio_test_dirty(folio)) >>>               mss->lazyfree += size; >>> + >>> +        /* >>> +         * Count large pages smaller than PMD size to anonymous_thp >>> +         */ >>> +        if (!compound && PageHead(page) && folio_order(folio)) >>> +            mss->anonymous_thp += folio_size(folio); >>>       } >>>         if (folio_test_ksm(folio)) >> >> >> I think we decided to leave this (and /proc/meminfo) be one of the last >> interfaces where this is only concerned with PMD-sized ones: >> >> Documentation/admin-guide/mm/transhuge.rst: >> >> The number of PMD-sized anonymous transparent huge pages currently used by the >> system is available by reading the AnonHugePages field in ``/proc/meminfo``. >> To identify what applications are using PMD-sized anonymous transparent huge >> pages, it is necessary to read ``/proc/PID/smaps`` and count the AnonHugePages >> fields for each mapping. (Note that AnonHugePages only applies to traditional >> PMD-sized THP for historical reasons and should have been called >> AnonHugePmdMapped). >> > > Agreed. If you need per-process metrics for mTHP, we have a python script at > tools/mm/thpmaps which does a fairly good job of parsing pagemap. --help gives > you all the options. > I tried this tool, and it is very powerful and practical IMO. However, thereare two disadvantages: - This tool is heavily dependent on Python and Python libraries. After installing several libraries with the pip command, I was able to get it running. In practice, the environment we need to analyze may be a mobile or embedded environment, where it is very difficult to deploy these libraries. - It seems that this tool only counts file-backed large pages? During the actual test, I mapped a region of anonymous pages and mapped it as large pages, but the tool did not display those large pages. Below is my test file(mTHP related sysfs interface is set to "always" to make sure using large pages): int main() { int i; char *c; unsigned long *p; p = mmap(NULL, SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0); if (!p) { perror("fail to get memory"); exit(-1); } c = (unsigned char *)p; for (i = 0; i < SIZE / 8; i += 8) *(p + i) = 0xffff + i; while (1) sleep(10); return 0; } Thanks, wenchao