Received: by 2002:ac0:946b:0:0:0:0:0 with SMTP id j40csp308686imj; Sat, 16 Feb 2019 00:34:47 -0800 (PST) X-Google-Smtp-Source: AHgI3IYFYnj9jWntQ4adhIAycrSZbYDzDtFqN5wMCm+8A6O76FOElxEmUlQm+XMCOE/CzuN/Z33K X-Received: by 2002:a63:c303:: with SMTP id c3mr9145195pgd.268.1550306087145; Sat, 16 Feb 2019 00:34:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1550306087; cv=none; d=google.com; s=arc-20160816; b=X9Xn5uJpAILWA60hnGTX0YygjEkliGh3+pBplU5fOpno+TqI4XJ2rez4oYZkq5XaMc 4ukyIQwEeY7v6KWU1NT92bGRLzle9/w/+vapJKhthFuAcBujzIALYUaVp67u1KWCQMkP LKXe4RP4f/ChAi7TGAvqgUB8pbPgf1RIXaFhOhZGCtBFB8iTewvjwSQwDIG3gp/WXLDy JcOA3VT/OCJjEVT3LC7mt8KLvZCgY7SXDN2lcblcRPqQ+WNjSn50Ot2DWa5kgn0hrcT4 HfqmYbwZlmuUi+yJcCuj0GvKt3E1NEPEPh9Fa4WYGB6DDM0LIWb/RodVcr1ZicTIgisA 751A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :reply-to:references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:dkim-signature; bh=shCZ1iSGYyBc0QtOy4OOg2NHBqv6Cu7B1aYGh3Lj914=; b=pxBcOdNpc11/r7MMYbt7+XPRXBU3+7WIM7iWroHittspRF+nFU+Ldmld7LwRFjztj/ gKqb8fm2/xaVEfv+yMI0/UXpfyXtpVQj9yTT4p17MD7b5fKlgBDed+0Yd24PrDHjz+WW 9/t8TBy//c29Y+CZm9FN4tXq7HAa3bHYfYSVPJgCKcF/plKuPjwHetBnCmpws3Cp/QJw S1Jg9u7//CjjpToDOlPoQZE6Db1jNG/ddTCiG8Dz1KkztevHUKwKqOIvhACUUrnUW/FR X7lEm2gtr4JUFnA1MOgGzd/4y798xlw9mEADNwl0mnp0N3r4QlysSn9LfZZGJsdCTxzN eMeg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sent.com header.s=fm2 header.b=JGI4HvBY; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=7LBY7jFR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sent.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b12si7339734pgj.327.2019.02.16.00.34.31; Sat, 16 Feb 2019 00:34:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@sent.com header.s=fm2 header.b=JGI4HvBY; dkim=pass header.i=@messagingengine.com header.s=fm2 header.b=7LBY7jFR; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sent.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2393545AbfBOWJo (ORCPT + 99 others); Fri, 15 Feb 2019 17:09:44 -0500 Received: from wout2-smtp.messagingengine.com ([64.147.123.25]:53057 "EHLO wout2-smtp.messagingengine.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2393469AbfBOWJm (ORCPT ); Fri, 15 Feb 2019 17:09:42 -0500 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id BCE9F32A2; Fri, 15 Feb 2019 17:09:40 -0500 (EST) Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Fri, 15 Feb 2019 17:09:41 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sent.com; h=from :to:cc:subject:date:message-id:in-reply-to:references:reply-to :mime-version:content-transfer-encoding; s=fm2; bh=shCZ1iSGYyBc0 QtOy4OOg2NHBqv6Cu7B1aYGh3Lj914=; b=JGI4HvBYMMqsmw33Ld98dJrsDB1V9 eA5YY/5aymibWj3GCK2ZBnkSanqlVNR9KcGe5P7tk9qq5GnUifO5nV4HwD6wMY2O TnBHiA/MCr6o2UrwKCfJ1MXqTmx+l5fWXalUKXfMUFPf8VhAtmXWak99iVu9TCmW swFXWRKzblPSqu4RhbrqErajr+wH09P7q2M+A+vYMWc8eDq5sHwSy5Nls1Zj9DMU pLTQ4BJ+KVGl5yZ2h1mNF+O6I8Yb2HQJBTnPEYWC3PrA8UIOZSuddQGia+euS1EN 9Y8hsOSKtNwrR0AbF5AB02bfXkPOSlxpwPs9qRxF6A+N1EtUy0T3cNyrw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:date:from :in-reply-to:message-id:mime-version:references:reply-to:subject :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; bh=shCZ1iSGYyBc0QtOy4OOg2NHBqv6Cu7B1aYGh3Lj914=; b=7LBY7jFR gIXY6xtbU8OGarWtbnuAaiWCo3dFDFVQQca/BX7rdBvGPfSMGieDPVc+0gFJYRs9 Qk8EagwAb2TOX8lPvaaM1i7Zv2S+p9yD+OdQk2WNOEd0l+GygVYDeLLUwRlEcdYK dAKMV/snTNYp0A/YZpwmkWpklS6NzZ+ZLx3EwSwkMkDXYga01k5bYx8CD55L0dOW QtPUJ1HH95ud2bOfeHcsJTQmQJUqSw/NEOwWic2VVNl9VlbYiE7MTxwwVxpe1bxT JMUPhQJNgHOjFbuxVTcIk7lADUi6wNskAEv9KyWnh4lq25C388QU4nqzPjx2Iy5N y3GoeqFHYM4kAw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedtledruddtjedgudehlecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfhuthenuceurghilhhouhhtmecu fedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujfgurhephffvufffkf fojghfrhgggfestdekredtredttdenucfhrhhomhepkghiucgjrghnuceoiihirdihrghn sehsvghnthdrtghomheqnecukfhppedvudeirddvvdekrdduuddvrddvvdenucfrrghrrg hmpehmrghilhhfrhhomhepiihirdihrghnsehsvghnthdrtghomhenucevlhhushhtvghr ufhiiigvpedt X-ME-Proxy: Received: from nvrsysarch5.nvidia.com (thunderhill.nvidia.com [216.228.112.22]) by mail.messagingengine.com (Postfix) with ESMTPA id C30E4E4511; Fri, 15 Feb 2019 17:09:38 -0500 (EST) From: Zi Yan To: linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Dave Hansen , Michal Hocko , "Kirill A . Shutemov" , Andrew Morton , Vlastimil Babka , Mel Gorman , John Hubbard , Mark Hairgrove , Nitin Gupta , David Nellans , Zi Yan Subject: [RFC PATCH 28/31] mm: vmstats: add page promotion stats. Date: Fri, 15 Feb 2019 14:08:53 -0800 Message-Id: <20190215220856.29749-29-zi.yan@sent.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190215220856.29749-1-zi.yan@sent.com> References: <20190215220856.29749-1-zi.yan@sent.com> Reply-To: ziy@nvidia.com MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Zi Yan Count all four types of page promotion. Signed-off-by: Zi Yan --- include/linux/vm_event_item.h | 4 ++++ mm/huge_memory.c | 8 ++++++++ mm/vmstat.c | 4 ++++ 3 files changed, 16 insertions(+) diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index df619262b1b4..f352e5cbfc9c 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -81,6 +81,8 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, THP_SPLIT_PAGE_FAILED, THP_DEFERRED_SPLIT_PAGE, THP_SPLIT_PMD, + THP_PROMOTE_PMD, + THP_PROMOTE_PAGE, #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD THP_FAULT_ALLOC_PUD, THP_FAULT_FALLBACK_PUD, @@ -89,6 +91,8 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, THP_SPLIT_PUD_PAGE_FAILED, THP_ZERO_PUD_PAGE_ALLOC, THP_ZERO_PUD_PAGE_ALLOC_FAILED, + THP_PROMOTE_PUD, + THP_PROMOTE_PUD_PAGE, #endif THP_ZERO_PAGE_ALLOC, THP_ZERO_PAGE_ALLOC_FAILED, diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 67fd1821f4dc..911463c98bcc 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -4403,6 +4403,8 @@ int promote_huge_pmd_address(struct vm_area_struct *vma, unsigned long haddr) out_unlock: anon_vma_unlock_write(vma->anon_vma); out: + if (!ret) + count_vm_event(THP_PROMOTE_PMD); return ret; } @@ -4644,6 +4646,8 @@ int promote_list_to_huge_page(struct page *head, struct list_head *list) put_anon_vma(anon_vma); } out: + if (!ret) + count_vm_event(THP_PROMOTE_PAGE); return ret; } @@ -4842,6 +4846,8 @@ int promote_huge_pud_address(struct vm_area_struct *vma, unsigned long haddr) out_unlock: anon_vma_unlock_write(vma->anon_vma); out: + if (!ret) + count_vm_event(THP_PROMOTE_PUD); return ret; } @@ -5169,6 +5175,8 @@ int promote_list_to_huge_pud_page(struct page *head, struct list_head *list) unlock_page(p); putback_lru_page(p); } + if (!ret) + count_vm_event(THP_PROMOTE_PUD_PAGE); return ret; } diff --git a/mm/vmstat.c b/mm/vmstat.c index 1d185cf748a6..7dd1ff5805ef 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1259,6 +1259,8 @@ const char * const vmstat_text[] = { "thp_split_page_failed", "thp_deferred_split_page", "thp_split_pmd", + "thp_promote_pmd", + "thp_promote_page", #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD "thp_fault_alloc_pud", "thp_fault_fallback_pud", @@ -1267,6 +1269,8 @@ const char * const vmstat_text[] = { "thp_split_pud_page_failed", "thp_zero_pud_page_alloc", "thp_zero_pud_page_alloc_failed", + "thp_promote_pud", + "thp_promote_pud_page", #endif "thp_zero_page_alloc", "thp_zero_page_alloc_failed", -- 2.20.1