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 12420C4332F for ; Wed, 9 Nov 2022 06:20:56 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 70D186B0072; Wed, 9 Nov 2022 01:20:56 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6945D6B0073; Wed, 9 Nov 2022 01:20:56 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 53E408E0001; Wed, 9 Nov 2022 01:20:56 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 410306B0072 for ; Wed, 9 Nov 2022 01:20:56 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 18B8D80904 for ; Wed, 9 Nov 2022 06:20:56 +0000 (UTC) X-FDA: 80112905712.30.E1A901A Received: from mail-pg1-f171.google.com (mail-pg1-f171.google.com [209.85.215.171]) by imf02.hostedemail.com (Postfix) with ESMTP id C290280009 for ; Wed, 9 Nov 2022 06:20:47 +0000 (UTC) Received: by mail-pg1-f171.google.com with SMTP id f63so15386506pgc.2 for ; Tue, 08 Nov 2022 22:20:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=Vr9+mrM0Zb3mIFxWu8qfnD7fbFVWetEV2gUzedVtTMA=; b=pumSwGQ554bR+19TVdX8+tS8IhJ1Jf/UgN/3amS54oLJkhylThGoZm5zklEHuVrP1B S0Uazi2vNjTxQUim/Di8H519tttlVEo/dqVCTmCGLCOsXjPtP686NTir9k/4ycxJkIs9 QR3pJxMXnz1zZv5p/1XAzzTu1KN05HimZ9J3dwkzw4a1bbVN39qt6VWnVR/Qtbqm/ylU EXxh9pn2Hqbdqfpb0o9ilz/+vmGZx9uwx3Un93fK6Fc6bSi/PBQLlOixfQlAjfHhAWrO eBwHi7cBEEVbj1qW665KUXiAXMMldncnyqbpbxeuBpkZpV9OeT7pdWosLDCTU6E8f7wh 3NSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Vr9+mrM0Zb3mIFxWu8qfnD7fbFVWetEV2gUzedVtTMA=; b=mZ10Ogydv4o5uFchiyO7ixmPvisIozgv9yB2P+AGUdkxdNhAYPAxhw9GYtI5EVialL nk+V+IvrIvcVh/LRY0hG149t0H/mpHFRtomEwlSjsmC+GjewZ2MIlR+1T0MuSLO5Sy7/ eRLvAqQyXISur6aFEd1mPvWOkzuB2tbK5WkqvWi9Sto20553rePAglKJGl8IYKygoaJL Ed62F2RVwaW+DF0QX649rL69TtlFz4jQBZ+FBP5u5jtJb0e6lut9wxml/32Dy/n9Sh2Q Vd9tjvFYS+FihGCae+gsGtC+4EVLoeQOYVEGPBS+wk+qPNwCx6sBbq8ONT0Z/8zvhOMf FeZw== X-Gm-Message-State: ACrzQf3QxZmj9ul3A5l/ID2m/uOQdd2S2Nz0S3oQy4+feMaSuOFgJN3S xk6vfxCaFVryINFSyYYu3I0= X-Google-Smtp-Source: AMsMyM6sGBIMp+Zh8DMBnd8ArJbJT++DzmWnLoN7uxu+PI2V0ASXhuL/Uzw7qgcKP7cTDwYeRJ8Zsg== X-Received: by 2002:a63:f346:0:b0:46f:6aff:b5ea with SMTP id t6-20020a63f346000000b0046f6affb5eamr49146620pgj.461.1667974790679; Tue, 08 Nov 2022 22:19:50 -0800 (PST) Received: from hyeyoo ([114.29.91.56]) by smtp.gmail.com with ESMTPSA id np8-20020a17090b4c4800b00210039560c0sm347252pjb.49.2022.11.08.22.19.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Nov 2022 22:19:49 -0800 (PST) Date: Wed, 9 Nov 2022 15:19:42 +0900 From: Hyeonggon Yoo <42.hyeyoo@gmail.com> To: Steven Rostedt 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: References: <20221106140355.294845-1-42.hyeyoo@gmail.com> <20221106140355.294845-3-42.hyeyoo@gmail.com> <20221106132315.27f45759@rorschach.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20221106132315.27f45759@rorschach.local.home> ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1667974847; a=rsa-sha256; cv=none; b=fL5jiqw7sL5l8pY3ZVYeaJA2NvYO6lDZEEY3ivg9tsSwKf66sefl4MDfJZAPpZL5Rsr/cf /I+8/9AcJMy0Qy6tn++h5zg+u5h8jqa27o8/NgtyRAv1LU+0472jqJpHa75rMgauV7BDI3 OWntwWio1WTHYePR6hK7Q7FJBRONvFI= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=pumSwGQ5; spf=pass (imf02.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.215.171 as permitted sender) smtp.mailfrom=42.hyeyoo@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=1667974847; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Vr9+mrM0Zb3mIFxWu8qfnD7fbFVWetEV2gUzedVtTMA=; b=AYg94JAVhZruxHmEN/6GOOYGGuyWgeR2quiGSWY+yqIIHYLp1Ldj5cYJ3E7NtCl8DIlAu9 GAtJLihSZireeZNLW2SmkrI/zVncP08vlGVPeySqCi5eEDTt3SW8IqCuEgKoEFThCw5U5R pVH/jJOKcVEnPcNpUamJcQzIb3N3MIE= X-Stat-Signature: zntddym3tcsrib46fhw61u61ehodd715 X-Rspam-User: Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=pumSwGQ5; spf=pass (imf02.hostedemail.com: domain of 42.hyeyoo@gmail.com designates 209.85.215.171 as permitted sender) smtp.mailfrom=42.hyeyoo@gmail.com; dmarc=pass (policy=none) header.from=gmail.com X-Rspamd-Queue-Id: C290280009 X-Rspamd-Server: rspam09 X-HE-Tag: 1667974847-260701 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, Nov 06, 2022 at 01:23:15PM -0500, Steven Rostedt wrote: > 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. Oh, I wasn't aware of it. I think I can use the field 'mapcount' to represent both mapcount and page_type as they have same offset and size within the structure. Just wondering where this constraint came from... > > > __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) > -- Thanks, Hyeonggon