From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753633AbbHaO6i (ORCPT ); Mon, 31 Aug 2015 10:58:38 -0400 Received: from smtprelay0103.hostedemail.com ([216.40.44.103]:33479 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753245AbbHaO6h (ORCPT ); Mon, 31 Aug 2015 10:58:37 -0400 X-Session-Marker: 726F737465647440676F6F646D69732E6F7267 X-Spam-Summary: 2,0,0,,d41d8cd98f00b204,rostedt@goodmis.org,:::::::::::::::,RULES_HIT:41:355:379:541:599:800:960:973:988:989:1260:1277:1311:1313:1314:1345:1359:1437:1515:1516:1518:1534:1542:1593:1594:1711:1730:1747:1777:1792:2198:2199:2393:2553:2559:2562:2731:3138:3139:3140:3141:3142:3354:3622:3865:3866:3867:3868:3870:3871:3872:3873:3874:5007:6119:6261:6691:7875:8957:10004:10400:10848:10967:11026:11232:11473:11658:11914:12043:12291:12296:12438:12517:12519:12555:12683:12740:13161:13229:21080,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:none,Custom_rules:0:0:0 X-HE-Tag: pigs17_10bf1af5a5328 X-Filterd-Recvd-Size: 3750 Date: Mon, 31 Aug 2015 10:58:34 -0400 From: Steven Rostedt To: Vlastimil Babka Cc: Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Joonsoo Kim , Ingo Molnar , Mel Gorman , David Rientjes Subject: Re: [PATCH 2/3] mm, compaction: export tracepoints zone names to userspace Message-ID: <20150831105834.34a5e69e@gandalf.local.home> In-Reply-To: <1440689044-2922-2-git-send-email-vbabka@suse.cz> References: <1440689044-2922-1-git-send-email-vbabka@suse.cz> <1440689044-2922-2-git-send-email-vbabka@suse.cz> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.28; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 27 Aug 2015 17:24:03 +0200 Vlastimil Babka wrote: > Some compaction tracepoints use zone->name to print which zone is being > compacted. This works for in-kernel printing, but not userspace trace printing > of raw captured trace such as via trace-cmd report. > > This patch uses zone_idx() instead of zone->name as the raw value, and when > printing, converts the zone_type to string using the appropriate EM() macros > and some ugly tricks to overcome the problem that half the values depend on > CONFIG_ options and one does not simply use #ifdef inside of #define. > > trace-cmd output before: > transhuge-stres-4235 [000] 453.149280: mm_compaction_finished: node=0 > zone=ffffffff81815d7a order=9 ret=partial > > after: > transhuge-stres-4235 [000] 453.149280: mm_compaction_finished: node=0 > zone=Normal order=9 ret=partial > > Signed-off-by: Vlastimil Babka > Cc: Joonsoo Kim > Cc: Steven Rostedt > Cc: Ingo Molnar > Cc: Mel Gorman > Cc: David Rientjes > --- > include/trace/events/compaction.h | 38 ++++++++++++++++++++++++++++++++------ > 1 file changed, 32 insertions(+), 6 deletions(-) > > diff --git a/include/trace/events/compaction.h b/include/trace/events/compaction.h > index 1275a55..8daa8fa 100644 > --- a/include/trace/events/compaction.h > +++ b/include/trace/events/compaction.h > @@ -18,6 +18,31 @@ > EM( COMPACT_NO_SUITABLE_PAGE, "no_suitable_page") \ > EMe(COMPACT_NOT_SUITABLE_ZONE, "not_suitable_zone") > > +#ifdef CONFIG_ZONE_DMA > +#define IFDEF_ZONE_DMA(X) X > +#else > +#define IFDEF_ZONE_DMA(X) > +#endif > + > +#ifdef CONFIG_ZONE_DMA32 > +#define IFDEF_ZONE_DMA32(X) X > +#else > +#define IFDEF_ZONE_DMA32(X) > +#endif > + > +#ifdef CONFIG_ZONE_HIGHMEM_ > +#define IFDEF_ZONE_HIGHMEM(X) X > +#else > +#define IFDEF_ZONE_HIGHMEM(X) > +#endif > + > +#define ZONE_TYPE \ > + IFDEF_ZONE_DMA( EM (ZONE_DMA, "DMA")) \ > + IFDEF_ZONE_DMA32( EM (ZONE_DMA32, "DMA32")) \ > + EM (ZONE_NORMAL, "Normal") \ > + IFDEF_ZONE_HIGHMEM( EM (ZONE_HIGHMEM,"HighMem")) \ > + EMe(ZONE_MOVABLE,"Movable") > + Hmm, have you tried to compile this with CONFIG_ZONE_HIGHMEM disabled, and CONFIG_ZONE_DMA and/or CONFIG_ZONE_DMA32 enabled? The EMe() macro must come last, as it doesn't have the ending comma and the __print_symbolic() can fail to compile due to it. -- Steve > /* > * First define the enums in the above macros to be exported to userspace > * via TRACE_DEFINE_ENUM(). > @@ -28,6 +53,7 @@