From patchwork Fri Jun 16 14:50:42 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jeremy Linton X-Patchwork-Id: 105750 Delivered-To: patch@linaro.org Received: by 10.140.91.77 with SMTP id y71csp1342460qgd; Fri, 16 Jun 2017 07:50:54 -0700 (PDT) X-Received: by 10.101.83.197 with SMTP id z5mr2275187pgr.256.1497624654135; Fri, 16 Jun 2017 07:50:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497624654; cv=none; d=google.com; s=arc-20160816; b=AQa1dGanEELv+Di7HKWL9nvZIRqlUj0QaTDp8msGceb60Z15/78ZEYvTy4/Huy6EP7 RoznsObm0R4JGwccBrf7bgz/R2PychFJ7KYUFEKvbJpHn/lqofVQhsKsXjPxhdYjBP1i a/fzU5A1P3Ncmo5PIoHB5/tyo0GNglShNhO/4mCMgSLpzF2qHBUM7sVQ79m2EaztFxsV Vna6rfyrtBBHsh6dbZrW0V7s57yaqWG5MRsm6K4SLK6vGpL/Md0yqsWELPVxXkMGRrma BYpjzj9aBbCL5sPriOeqvLLkx3AkIPTBjvimz0gQsk6XLRThgIoESP+x2QDkZHq9k4RS iU7g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=uhAPKWr0s+uNX81avbL/xMASvZzRvAitNiWv/tWEAMU=; b=dAIzv8iTfBmb1mwjz1xcfa5MIF17ah5ZkZcYlxgkHw4F9yqgIscCFIV4fbpArcCsLK znwAbwXv/n1Do/ZhrfeHJwccpwUnp9Jk2mSQt5QCtYcPh3VfbgethfOYBSJcS66kmXVF 6cb2QPLDIJywF8x25//a2rRJqgBRy7h8QiaReqr0MYyxRUfHzeFtHCePO7lWmvdsLv6y Y4b6dkxO/8wp/oj6m0dROHzmZCEnXNU2X3oINAIrKQ8Os3KIYfpa/MTWkkCbKHoQoPwA 8jbZirgfoMK1zHqI7q2ypOVOuhYkKhbpMptGUsT5XBZ0SIqH1CcwpxdD44eHzSxjJTnp 0ZNg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r21si2202397pgo.321.2017.06.16.07.50.53; Fri, 16 Jun 2017 07:50:54 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754399AbdFPOuu (ORCPT + 25 others); Fri, 16 Jun 2017 10:50:50 -0400 Received: from foss.arm.com ([217.140.101.70]:58350 "EHLO foss.arm.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754370AbdFPOus (ORCPT ); Fri, 16 Jun 2017 10:50:48 -0400 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 06987344; Fri, 16 Jun 2017 07:50:43 -0700 (PDT) Received: from beelzebub.ast.arm.com (beelzebub.austin.arm.com [10.118.12.119]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id C98FC3F581; Fri, 16 Jun 2017 07:50:42 -0700 (PDT) From: Jeremy Linton To: rostedt@goodmis.org Cc: linux-kernel@vger.kernel.org Subject: [PATCH] tracing: Cleanup trace sample file Date: Fri, 16 Jun 2017 09:50:42 -0500 Message-Id: <20170616145042.24292-1-jeremy.linton@arm.com> X-Mailer: git-send-email 2.9.4 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Support for TRACE_DEFINE_SIZEOF() has been added to the kernel. Lets document the use of the new macro and correct a couple of minor spelling mistakes. Signed-off-by: Jeremy Linton --- samples/trace_events/trace-events-sample.h | 38 +++++++++++++++++++----------- 1 file changed, 24 insertions(+), 14 deletions(-) -- 2.9.4 diff --git a/samples/trace_events/trace-events-sample.h b/samples/trace_events/trace-events-sample.h index 76a75ab..0b45272 100644 --- a/samples/trace_events/trace-events-sample.h +++ b/samples/trace_events/trace-events-sample.h @@ -95,7 +95,7 @@ * __entry->bar.x = y; * __array: There are three fields (type, name, size). The type is the - * type of elements in teh array, the name is the name of the array. + * type of elements in the array, the name is the name of the array. * size is the number of items in the array (not the total size). * * __array( char, foo, 10) is the same as saying: char foo[10]; @@ -112,7 +112,7 @@ * type is the type of the element, name is the name of the array. * The size is different than __array. It is not a static number, * but the algorithm to figure out the length of the array for the - * specific instance of tracepoint. Again, size is the numebr of + * specific instance of tracepoint. Again, size is the number of * items in the array, not the total length in bytes. * * __dynamic_array( int, foo, bar) is similar to: int foo[bar]; @@ -125,9 +125,9 @@ * Notice, that "__entry" is not needed here. * * __string: This is a special kind of __dynamic_array. It expects to - * have a nul terminated character array passed to it (it allows + * have a null terminated character array passed to it (it allows * for NULL too, which would be converted into "(null)"). __string - * takes two paramenter (name, src), where name is the name of + * takes two parameter (name, src), where name is the name of * the string saved, and src is the string to copy into the * ring buffer. * @@ -225,26 +225,36 @@ TRACE_DEFINE_ENUM(TRACE_SAMPLE_FOO); TRACE_DEFINE_ENUM(TRACE_SAMPLE_BAR); TRACE_DEFINE_ENUM(TRACE_SAMPLE_ZOO); +/* + * The same problem as above applies to sizeof(), so there is also + * a macro to solve that problem. In the case show below, foo_bar/format + * contains a string "__print_array(...,sizeof(phys_addr_t))" for which + * the sizeof() result varies depending on the kernel. Adding the following + * macro decodes the size before transferring it to user space. + */ + +TRACE_DEFINE_SIZEOF(phys_addr_t); + TRACE_EVENT(foo_bar, - TP_PROTO(const char *foo, int bar, const int *lst, + TP_PROTO(const char *foo, int bar, const phys_addr_t *lst, const char *string, const struct cpumask *mask), TP_ARGS(foo, bar, lst, string, mask), TP_STRUCT__entry( - __array( char, foo, 10 ) - __field( int, bar ) - __dynamic_array(int, list, __length_of(lst)) - __string( str, string ) - __bitmask( cpus, num_possible_cpus() ) + __array( char, foo, 10 ) + __field( int, bar ) + __dynamic_array(phys_addr_t, list, __length_of(lst) ) + __string( str, string ) + __bitmask( cpus, num_possible_cpus() ) ), TP_fast_assign( strlcpy(__entry->foo, foo, 10); __entry->bar = bar; memcpy(__get_dynamic_array(list), lst, - __length_of(lst) * sizeof(int)); + __length_of(lst) * sizeof(phys_addr_t)); __assign_str(str, string); __assign_bitmask(cpus, cpumask_bits(mask), num_possible_cpus()); ), @@ -291,8 +301,8 @@ TRACE_EVENT(foo_bar, * This prints out the array that is defined by __array in a nice format. */ __print_array(__get_dynamic_array(list), - __get_dynamic_array_len(list) / sizeof(int), - sizeof(int)), + __get_dynamic_array_len(list) / sizeof(phys_addr_t), + sizeof(phys_addr_t)), __get_str(str), __get_bitmask(cpus)) ); @@ -444,7 +454,7 @@ DECLARE_EVENT_CLASS(foo_template, /* * Here's a better way for the previous samples (except, the first - * exmaple had more fields and could not be used here). + * example had more fields and could not be used here). */ DEFINE_EVENT(foo_template, foo_with_template_simple, TP_PROTO(const char *foo, int bar),