From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753597AbbDUNHi (ORCPT ); Tue, 21 Apr 2015 09:07:38 -0400 Received: from smtprelay0104.hostedemail.com ([216.40.44.104]:44128 "EHLO smtprelay.hostedemail.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750960AbbDUNHg (ORCPT ); Tue, 21 Apr 2015 09:07:36 -0400 X-Session-Marker: 726F737465647440676F6F646D69732E6F7267 X-Spam-Summary: 30,2,0,,d41d8cd98f00b204,rostedt@goodmis.org,:::::::,RULES_HIT:41:355:379:541:599:800:960:973:988:989:1260:1277:1311:1313:1314:1345:1359:1431:1437:1515:1516:1518:1534:1541:1593:1594:1711:1730:1747:1777:1792:2194:2199:2393:2553:2559:2562:2901:3138:3139:3140:3141:3142:3354:3622:3865:3866:3867:3868:3871:3872:3873:3874:5007:6261:7514:7875:7903:8603:9036:10010:10400:10848:10967:11026:11232:11473:11658:11914:12296:12517:12519:12740:13069:13138:13231:13311:13357:21060: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:1:0 X-HE-Tag: shock83_5f316ba259f09 X-Filterd-Recvd-Size: 2804 Date: Tue, 21 Apr 2015 09:07:33 -0400 From: Steven Rostedt To: David Ahern Cc: Arnaldo Carvalho de Melo , Namhyung Kim , LKML Subject: Re: perf/tracepoints access to interpreted strings Message-ID: <20150421090733.3a6cc742@gandalf.local.home> In-Reply-To: <55356F20.2090706@gmail.com> References: <552E8FB8.6010005@gmail.com> <20150415180927.GR16027@kernel.org> <20150420164616.4227fae9@gandalf.local.home> <20150420212535.GS11111@kernel.org> <55356F20.2090706@gmail.com> X-Mailer: Claws Mail 3.11.1 (GTK+ 2.24.25; 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 Mon, 20 Apr 2015 15:26:56 -0600 David Ahern wrote: > On 4/20/15 3:25 PM, Arnaldo Carvalho de Melo wrote: > > Em Mon, Apr 20, 2015 at 04:46:16PM -0400, Steven Rostedt escreveu: > >> On Wed, 15 Apr 2015 15:09:27 -0300 > >> Arnaldo Carvalho de Melo wrote: > >>> If it is strictly an enum, i.e. no holes and just by looking at the > >>> "format" file above I don't see how it could have holes, albeit enums > >>> may have, we can as well have this: > > > >>> const char *perf_evsel__enum(struct perf_evsel *evsel, > >>> struct perf_sample *sample, > >>> const char *enum_name); > > > >>> That would return an array of strings that you could directly access, > >>> indexing using some of the fields. > > > >>> I.e. internally we would see the tracepoint format file as: > > > >>> field:enum action vec; offset:12; size:4; signed:0; > > > >>> enum: action: TIMER, NET_TX, NET_RX, BLOCK, BLOCK_IOPOLL, TASKLET, SCHED, HRTIMER, RCU > > > >> Note, with the new TRACE_DEFINE_ENUM() that was already added to > >> Linus's tree, that print_fmt now looks like: > > > >> print fmt: "vec=%u [action=%s]", REC->vec, __print_symbolic(REC->vec, > >> { 0, "HI" }, { 1, "TIMER" }, { 2, "NET_TX" }, { 3, "NET_RX" }, { 4, "BLOCK" }, > >> { 5, "BLOCK_IOPOLL" }, { 6, "TASKLET" }, { 7, "SCHED" }, { 8, "HRTIMER" }, > >> { 9, "RCU" }) > > > > That is better, indeed, covers holes :-) > > Seems to me that means 2 different implementations are needed ... old > and new. Why? The above is the way most trace points use __print_symbolic(). It's just when a tracepoint uses enums instead of defines or hard coded numbers do the useless enum name pops up. Any parse should be expecting numbers, not enum names. -- Steve