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 AEED4C04FFE for ; Tue, 14 May 2024 14:50:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 217856B0295; Tue, 14 May 2024 10:50:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1C81C6B0299; Tue, 14 May 2024 10:50:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 041066B0343; Tue, 14 May 2024 10:50:10 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id D9A7A6B0341 for ; Tue, 14 May 2024 10:50:10 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7F6B0812B5 for ; Tue, 14 May 2024 14:50:10 +0000 (UTC) X-FDA: 82117286580.29.B28FCF4 Received: from mail-ed1-f51.google.com (mail-ed1-f51.google.com [209.85.208.51]) by imf11.hostedemail.com (Postfix) with ESMTP id 9ED394001F for ; Tue, 14 May 2024 14:50:08 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=j7fo++SX; spf=pass (imf11.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.51 as permitted sender) smtp.mailfrom=ioworker0@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715698208; 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=8weezbce1chIPNAjmlh4Y40a69OCRhuQpQAgvmJPtVM=; b=KdMOMaMs0xhICtHagmrqxNgFvo3WUlFih4VsI1r212Iq4kve3dlcgUw5V5d1M3qVxjPhpd dXcaVPyZU5TvDOZ00MKLg3AnQGVUBlSR+A4KUlby0eX7POItv1S2mD4Ufs0LSF0QgngSRY J02odsKnRlgKVd1MmFAZJ3GQnmDPUIM= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=j7fo++SX; spf=pass (imf11.hostedemail.com: domain of ioworker0@gmail.com designates 209.85.208.51 as permitted sender) smtp.mailfrom=ioworker0@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715698208; a=rsa-sha256; cv=none; b=Gq85/L3F/9+qFiYniwGdhY1Wf2y4F3w9lCYYai7+nbcKVcoZ1l/8O+7SQIwWhVA98K2LfO v/58sDCTCiU/7kEVyVit90uM/Xw8qTYd1h/ShriSEDesLoGuRDXdCkrHUDOwiSiUnhwwna ixFTzcvP6AvL58eOHd0scQXEfRJphnU= Received: by mail-ed1-f51.google.com with SMTP id 4fb4d7f45d1cf-5731ffcc905so322302a12.2 for ; Tue, 14 May 2024 07:50:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715698207; x=1716303007; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=8weezbce1chIPNAjmlh4Y40a69OCRhuQpQAgvmJPtVM=; b=j7fo++SXNCt3tkjON/6zQAtGNlZG4br3YwISgWA/ASPkFil1E69KwFzgiK5haOquOZ QWhQ23BTO47BfGntSweT8NufwGEuXM0dQtmPX7P/ML8RcCcQEvvwmBkFrlModDquNLqq 4KeAwMuJ9iynr8iUP++jYHDiUmAq4zsAsnxiwW1NzSjwcwLSJhLP/lWfZc2PhK2mSpx8 MCm6XjKC/exYe1wQXD+hZSrrJhwuvYw3f4mp2CIr4iifE2/kHE6fvFy9ZZLPjq4PtSql nNdCPCP+yZtGDJWNULW1zApJkwJ/aPrXDZU91L9WocQTKUC5/YxU8n6LilTUARKkSxmc LVow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715698207; x=1716303007; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=8weezbce1chIPNAjmlh4Y40a69OCRhuQpQAgvmJPtVM=; b=B8zrXiL1OOzNhMuToXsq7oGhE+g92qewyjC+SRcBptOwDJOuWHhHu2PPcI0kzBpWVy LQm+ske8UeqR2+zy8GJ7qzM7JDrR7ST2VC8kIR3+1q5aU/0qRRu7ikX3tLvCl8TREREs sMRDAjYaM7lvdZ2sia3u3SXBgWfE4dcW1oZl2aJXX5Pw3cTFZbiE71OXbwYDwqCr7apN tWwQLuIw/FK7aHJCjlRWu+DWPzIESf28Os3PREh63FP0bGefm1LUnHYU4cMUWhJK5SNg 3eakJ/Btaoc7t25vljHj39TRTpnif19Ex3qGDAkWZQ4TcL3eTORVgSeQM3UGIIRq0Mur pLFA== X-Forwarded-Encrypted: i=1; AJvYcCVFLKmLGz6RJeMgHiTkAIwlIB3tIBXmrif4sti5JWRy/0+aoDdmpR3wdkgqQN2UyGRkHUCuA36wzNu1Nq0Uya4DRXk= X-Gm-Message-State: AOJu0YyCAo8YEqPlDOa2hVOMDoeMc9ApPejWiJd50tgf/25If2CDSb4u srcvuV6oGX57OX8hXfarOJH1JT4h8aeo89Ch5jWbjKnDUlrrtQeW/7KTeafxyF7OQ1sze1BhJTQ 9r5ryN3SZ15VxBCCTnxcWYcgRcLw= X-Google-Smtp-Source: AGHT+IFilomLYc85uAZnrYnzW/q4t2Ff1CPHHNg6/nJRgYwW18yfWpCgFToKCC3HM5O9nkzwLrVTnhCBulJo9/SNy7Q= X-Received: by 2002:a50:cd5d:0:b0:574:f26f:cb63 with SMTP id 4fb4d7f45d1cf-574f26fd504mr17921a12.27.1715698206867; Tue, 14 May 2024 07:50:06 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Lance Yang Date: Tue, 14 May 2024 22:49:55 +0800 Message-ID: Subject: Re: [PATCH v2 7/7] mm: shmem: add mTHP counters for anonymous shmem To: Baolin Wang Cc: akpm@linux-foundation.org, hughd@google.com, willy@infradead.org, david@redhat.com, wangkefeng.wang@huawei.com, ying.huang@intel.com, 21cnbao@gmail.com, ryan.roberts@arm.com, shy828301@gmail.com, ziy@nvidia.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 9ED394001F X-Stat-Signature: qt5d3mjq9uxejtp11iku7wigiprb3rpu X-HE-Tag: 1715698208-341725 X-HE-Meta: U2FsdGVkX1/p+cE9KOvQQ8pffBAxuLxEkyb53sMz4I2fU2uZJNDqafijynKIOLjMj2+fSivmN4qtm+mEwTeitCgl4KqN0uMqetFFSUPbuTfj4Y4fs0pKWKTOCYhuL+j2BBEP0IpSoPpTs2YSWiuPgUIYGcnFY4WjHdmbopcS9IiUF9xG5TnABrUqQKGzwBQxhhkWmk+oy3d5VyiJRnHN0KHmkLGSGSQ9UFG9R/ujQM3dbvTAY0o2tQyk4bxA1eNci1Qxh/nXtH7LuWDQUYbkICDVIe4CP6z+uCb0UFVQeGRJcF6DPg0aUyOu1UYjcObxH+nVHVDscrP9dORwiZIXsmKXgPyTxgJIQyWJkvKpz5IcFZ6QTrvq2HDtxGne2y90iY/q0bp0JTUFiqAeJj21ZLSs8IkrVE499LWtjhdKTI1E74avE187TM7nowvHkfpaNqeCO8JapuHSgGyZZ75uZTMoYskKwgzewHXUts+2xg+UZ7uXv3g9u3be1I4n8necM6hVYaky3qdOoZ3+vN/QOTWi0lvY7d+5hRcEfanWRWtvqC085uBAkcngKHKReuOKtdIJyRq4kjha3mlrLn2Yzkse6GtbTKai8C+ISEv2Mbi4haNn5tId3iwzZVZi8x6LCf0W1SCEHhrXGKkYzUwaCrilcVSJPNAqZ1ci88asJgyru+wQZAgqgKWnIuGTd3NNRTeJ7ZSQ48hU1RB+Q/ACpbtzSXArtwrl9j5bDyYyVPNjelpMbsI1ON6sbUz7ZvusI80l/B2W/xYOcSxJ77lAYBCZVF04ZlFMCnCY0JKzDHIIp5/OtlfuD8qz0dEotvZiOzc/+Q1xEYZdb0o0iNa24fpayJRbgU6p0IwoLdKNsXOsjKNUms3A6pYfOci8eU7tW0R8OI1+iP9T0L0/iLEVbfW+riEsLSXgssC0Gv0R7cM5ba5oOlubWeIaXbvkkNltxmmEKkEoYGdGqbmOntu h64j3iF3 eC9DcMoxCWZtnJOSyCGhKuPLrk98aAbTfgU7PZhg5VI5kkzFc70MxvXF2SkaTvVO6cM+oSUr9dm0BLw54xKO0oeAFY6v4kaj5B3zC57GLZFjtlpz+16OB+qII7D+EZBhP8H8ITY4rKSWwWsfUq+BkiVFhM12w+UPKNYXVfKIPrtZ9yuAKkp4xjEohefkrTEx1CxRdnIqLThMTFqN+LwJEzLYMhP8K9nhgX2kY2FOSwCmQFSb0CPykHbNpaJV2rbRxmykSPf90WTrZLYwjdUllqy5i0O5/MqXnUXZLmCP2nSX3qp0ro88MYJ7/vp676ynZEZts4w5tCLBus4kQzkiAIVhHrl1XsWpUL142VvOUQ8b1+zXDCJTaooCvtQ== 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: Hi Baolin, On Mon, May 13, 2024 at 1:08=E2=80=AFPM Baolin Wang wrote: > > Add mTHP counters for anonymous shmem. > > Signed-off-by: Baolin Wang > --- > include/linux/huge_mm.h | 3 +++ > mm/huge_memory.c | 6 ++++++ > mm/shmem.c | 18 +++++++++++++++--- > 3 files changed, 24 insertions(+), 3 deletions(-) > > diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h > index b5339210268d..e162498fef82 100644 > --- a/include/linux/huge_mm.h > +++ b/include/linux/huge_mm.h > @@ -281,6 +281,9 @@ enum mthp_stat_item { > MTHP_STAT_ANON_FAULT_FALLBACK_CHARGE, > MTHP_STAT_ANON_SWPOUT, > MTHP_STAT_ANON_SWPOUT_FALLBACK, > + MTHP_STAT_FILE_ALLOC, > + MTHP_STAT_FILE_FALLBACK, > + MTHP_STAT_FILE_FALLBACK_CHARGE, > __MTHP_STAT_COUNT > }; > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index d3080a8843f2..fcda6ae604f6 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -555,6 +555,9 @@ DEFINE_MTHP_STAT_ATTR(anon_fault_fallback, MTHP_STAT_= ANON_FAULT_FALLBACK); > DEFINE_MTHP_STAT_ATTR(anon_fault_fallback_charge, MTHP_STAT_ANON_FAULT_F= ALLBACK_CHARGE); > DEFINE_MTHP_STAT_ATTR(anon_swpout, MTHP_STAT_ANON_SWPOUT); > DEFINE_MTHP_STAT_ATTR(anon_swpout_fallback, MTHP_STAT_ANON_SWPOUT_FALLBA= CK); > +DEFINE_MTHP_STAT_ATTR(file_alloc, MTHP_STAT_FILE_ALLOC); > +DEFINE_MTHP_STAT_ATTR(file_fallback, MTHP_STAT_FILE_FALLBACK); > +DEFINE_MTHP_STAT_ATTR(file_fallback_charge, MTHP_STAT_FILE_FALLBACK_CHAR= GE); > > static struct attribute *stats_attrs[] =3D { > &anon_fault_alloc_attr.attr, > @@ -562,6 +565,9 @@ static struct attribute *stats_attrs[] =3D { > &anon_fault_fallback_charge_attr.attr, > &anon_swpout_attr.attr, > &anon_swpout_fallback_attr.attr, > + &file_alloc_attr.attr, > + &file_fallback_attr.attr, > + &file_fallback_charge_attr.attr, > NULL, > }; > > diff --git a/mm/shmem.c b/mm/shmem.c > index 8b020ff09c72..fd2cb2e73a21 100644 > --- a/mm/shmem.c > +++ b/mm/shmem.c > @@ -1786,6 +1786,9 @@ static struct folio *shmem_alloc_and_add_folio(stru= ct vm_fault *vmf, > > if (pages =3D=3D HPAGE_PMD_NR) > count_vm_event(THP_FILE_FALLBACK); > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > + count_mthp_stat(order, MTHP_STAT_FILE_FALLBACK); > +#endif Seems like we don't need these conditional compilation directives here. The THP_FILE_FALLBACK above will result in a compilation error if CONFIG_TRANSPARENT_HUGEPAGE is not defined. So we don't worry about that :) See THP_FILE_FALLBACK in include/linux/vm_event_item.h. > order =3D next_order(&suitable_orders, order); > } > } else { > @@ -1805,9 +1808,15 @@ static struct folio *shmem_alloc_and_add_folio(str= uct vm_fault *vmf, > if (xa_find(&mapping->i_pages, &index, > index + pages - 1, XA_PRESENT)) { > error =3D -EEXIST; > - } else if (pages =3D=3D HPAGE_PMD_NR) { > - count_vm_event(THP_FILE_FALLBACK); > - count_vm_event(THP_FILE_FALLBACK_CHARGE); > + } else if (pages > 1) { > + if (pages =3D=3D HPAGE_PMD_NR) { > + count_vm_event(THP_FILE_FALLBACK); > + count_vm_event(THP_FILE_FALLBACK_CHARGE); > + } > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > + count_mthp_stat(folio_order(folio), MTHP_STAT_FIL= E_FALLBACK); > + count_mthp_stat(folio_order(folio), MTHP_STAT_FIL= E_FALLBACK_CHARGE); > +#endif As above. > } > goto unlock; > } > @@ -2178,6 +2187,9 @@ static int shmem_get_folio_gfp(struct inode *inode,= pgoff_t index, > if (!IS_ERR(folio)) { > if (folio_test_pmd_mappable(folio)) > count_vm_event(THP_FILE_ALLOC); > +#ifdef CONFIG_TRANSPARENT_HUGEPAGE > + count_mthp_stat(folio_order(folio), MTHP_STAT_FIL= E_ALLOC); > +#endif As above. Perhaps we need to define MTHP_STAT_FILE_ALLOC and friends using a same way as THP_FILE_ALLOC, set as '{ BUILD_BUG(); 0; }' If CONFIG_TRANSPARENT_HUGEPAGE is not defined. Likely: #ifndef CONFIG_TRANSPARENT_HUGEPAGE #define MTHP_STAT_FILE_ALLOC ({ BUILD_BUG(); 0; }) ... #endif Thanks, Lance > goto alloced; > } > if (PTR_ERR(folio) =3D=3D -EEXIST) > -- > 2.39.3 >