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 E87EFC4332F for ; Sun, 6 Nov 2022 18:23:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3976080008; Sun, 6 Nov 2022 13:23:21 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 33CA480007; Sun, 6 Nov 2022 13:23:21 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2521A80008; Sun, 6 Nov 2022 13:23:21 -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 15EE780007 for ; Sun, 6 Nov 2022 13:23:21 -0500 (EST) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id E1405AB17F for ; Sun, 6 Nov 2022 18:23:20 +0000 (UTC) X-FDA: 80103839760.24.4FF2D9E Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf18.hostedemail.com (Postfix) with ESMTP id 82AA31C0002 for ; Sun, 6 Nov 2022 18:23:19 +0000 (UTC) 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 dfw.source.kernel.org (Postfix) with ESMTPS id 8C3F560CF7; Sun, 6 Nov 2022 18:23:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 444BAC433D6; Sun, 6 Nov 2022 18:23:17 +0000 (UTC) Date: Sun, 6 Nov 2022 13:23:15 -0500 From: Steven Rostedt To: Hyeonggon Yoo <42.hyeyoo@gmail.com> Cc: linux-mm@kvack.org, Andrew Morton , Christoph Lameter , Pekka Enberg , David Rientjes , Vlastimil Babka , Naoya Horiguchi , Miaohe Lin , Matthew Wilcox , Minchan Kim , Mel Gorman , Andrea Arcangeli , Dan Williams , Hugh Dickins , Muchun Song , David Hildenbrand , Masami Hiramatsu , Andrey Konovalov , Marco Elver , Vasily Averin , NeilBrown Subject: Re: [RFC v2 2/3] mm: introduce show_page_types() to provide human-readable page_type Message-ID: <20221106132315.27f45759@rorschach.local.home> In-Reply-To: <20221106140355.294845-3-42.hyeyoo@gmail.com> References: <20221106140355.294845-1-42.hyeyoo@gmail.com> <20221106140355.294845-3-42.hyeyoo@gmail.com> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; spf=pass (imf18.hostedemail.com: domain of "SRS0=fKmf=3G=goodmis.org=rostedt@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=fKmf=3G=goodmis.org=rostedt@kernel.org"; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1667758999; a=rsa-sha256; cv=none; b=yM05iD4HHPSz1edaac/stf8HiXsRBJGBS9TOFS+/jJ1KbdvodtLxOJjnOZiDbCmlOSGJoz rXsLr70WewwfKu04wmkr5+VdItMm3WjkT9d2TkiTsKKmWzy0RnhLmXQchstDtz5AC5NMEh UeBHq5w3sV9CXBrJRWsIhjAj/pbVM1w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1667758999; 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; bh=Motu6bmeeVXDtXBUswARzQEqGxOdhmV1zz4aRKDq7oY=; b=8PvLfVOwsJsaG1Vr4RDCunhedGqEDBVTZiUnDQTU3b352Iq5W16+FyosW3ZWhtarQsjmF/ yX3F9bfl1riNljo72umpKhATcBnMZTI0VF6mVPgPvV5Ab57MEA+qkOdcJAjkERBVmvJyjz ZV5sXtOtCnQ8q4IMZ4WRF8hWdWpVGRw= X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 82AA31C0002 Authentication-Results: imf18.hostedemail.com; dkim=none; spf=pass (imf18.hostedemail.com: domain of "SRS0=fKmf=3G=goodmis.org=rostedt@kernel.org" designates 139.178.84.217 as permitted sender) smtp.mailfrom="SRS0=fKmf=3G=goodmis.org=rostedt@kernel.org"; dmarc=none X-Stat-Signature: 6631pqr95nauztdz1hx9fthn3jibjk8d X-Rspam-User: X-HE-Tag: 1667758999-284076 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 Sun, 6 Nov 2022 23:03:54 +0900 Hyeonggon Yoo <42.hyeyoo@gmail.com> wrote: > Some page flags are not actually set in 'flags' field. To provide > better understanding of tracepoint output, introduce show_page_types() > that shows page flags from page_type. > > Cc: Steven Rostedt > Cc: Masami Hiramatsu > Cc: Andrew Morton > Cc: Andrey Konovalov > Cc: Marco Elver > Cc: Vasily Averin > Cc: NeilBrown > Signed-off-by: Hyeonggon Yoo <42.hyeyoo@gmail.com> > --- > include/trace/events/mmflags.h | 12 ++++++++++++ > include/trace/events/page_ref.h | 10 ++++++++-- > 2 files changed, 20 insertions(+), 2 deletions(-) > > diff --git a/include/trace/events/mmflags.h b/include/trace/events/mmflags.h > index 72c11a16f771..a8dfb98a4dd6 100644 > --- a/include/trace/events/mmflags.h > +++ b/include/trace/events/mmflags.h > @@ -136,6 +136,18 @@ IF_HAVE_PG_SKIP_KASAN_POISON(PG_skip_kasan_poison, "skip_kasan_poison") > __def_pageflag_names \ > ) : "none" > > +#define __def_pagetype_names \ > + {PG_slab, "slab" }, \ > + {PG_offline, "offline" }, \ > + {PG_guard, "guard" }, \ > + {PG_table, "table" }, \ > + {PG_buddy, "buddy" } > + > +#define show_page_types(page_type) \ > + page_type_has_type(page_type) ? \ > + __print_flags((~page_type), "|", __def_pagetype_names) \ > + : "none" > + > #if defined(CONFIG_X86) > #define __VM_ARCH_SPECIFIC_1 {VM_PAT, "pat" } > #elif defined(CONFIG_PPC) > diff --git a/include/trace/events/page_ref.h b/include/trace/events/page_ref.h > index 8a99c1cd417b..b00d23e90e93 100644 > --- a/include/trace/events/page_ref.h > +++ b/include/trace/events/page_ref.h > @@ -21,6 +21,7 @@ DECLARE_EVENT_CLASS(page_ref_mod_template, > __field(unsigned long, flags) > __field(int, count) > __field(int, mapcount) > + __field(unsigned int, page_type) Be careful were you add int fields for 64 bit machines. The above is going to add 4 bytes of nothing in the ring buffer for each event. Please try to keep ints together by 2s, especially between long and pointer fields. > __field(void *, mapping) > __field(int, mt) > __field(int, val) > @@ -31,14 +32,16 @@ DECLARE_EVENT_CLASS(page_ref_mod_template, > __entry->flags = page->flags; > __entry->count = page_ref_count(page); > __entry->mapcount = page_mapcount(page); > + __entry->page_type = page->page_type; > __entry->mapping = page->mapping; > __entry->mt = get_pageblock_migratetype(page); > __entry->val = v; > ), > > - TP_printk("pfn=0x%lx flags=%s count=%d mapcount=%d mapping=%p mt=%d val=%d", > + TP_printk("pfn=0x%lx flags=%s page_type=%s count=%d mapcount=%d mapping=%p mt=%d val=%d", > __entry->pfn, > show_page_flags(__entry->flags & PAGEFLAGS_MASK), > + show_page_types(__entry->page_type & PAGE_TYPE_MASK), > __entry->count, > __entry->mapcount, __entry->mapping, __entry->mt, > __entry->val) > @@ -69,6 +72,7 @@ DECLARE_EVENT_CLASS(page_ref_mod_and_test_template, > __field(unsigned long, flags) > __field(int, count) > __field(int, mapcount) > + __field(unsigned int, page_type) Here too. -- Steve > __field(void *, mapping) > __field(int, mt) > __field(int, val) > @@ -80,15 +84,17 @@ DECLARE_EVENT_CLASS(page_ref_mod_and_test_template, > __entry->flags = page->flags; > __entry->count = page_ref_count(page); > __entry->mapcount = page_mapcount(page); > + __entry->page_type = page->page_type; > __entry->mapping = page->mapping; > __entry->mt = get_pageblock_migratetype(page); > __entry->val = v; > __entry->ret = ret; > ), > > - TP_printk("pfn=0x%lx flags=%s count=%d mapcount=%d mapping=%p mt=%d val=%d ret=%d", > + TP_printk("pfn=0x%lx flags=%s page_type=%s count=%d mapcount=%d mapping=%p mt=%d val=%d ret=%d", > __entry->pfn, > show_page_flags(__entry->flags & PAGEFLAGS_MASK), > + show_page_types(__entry->page_type & PAGE_TYPE_MASK), > __entry->count, > __entry->mapcount, __entry->mapping, __entry->mt, > __entry->val, __entry->ret)