From: Jeremy Linton <jeremy.linton@arm.com>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-kernel@vger.kernel.org, acme@redhat.com,
namhyung@kernel.org, kapileshwar.singh@arm.com,
scottwood@freescale.com, hekuang@huawei.com
Subject: Re: [RFC/PATCH] perf: Add sizeof operator support
Date: Fri, 17 Jun 2016 13:57:44 -0500 [thread overview]
Message-ID: <57644828.3000000@arm.com> (raw)
In-Reply-To: <20160617125042.24c554a7@gandalf.local.home>
On 06/17/2016 11:50 AM, Steven Rostedt wrote:
> On Fri, 17 Jun 2016 11:32:08 -0500
> Jeremy Linton <jeremy.linton@arm.com> wrote:
>
>
>>>> +
>>>> + if (strcmp(token, "__u64") == 0) {
>>>> + if (asprintf(&arg->atom.atom, "%zd", sizeof(__u64)) < 0)
>>>> + goto out_free_atom;
>>>> + } else if (strcmp(token, "__u32") == 0) {
>>>> + if (asprintf(&arg->atom.atom, "%zd", sizeof(__u32)) < 0)
>>>> + goto out_free_atom;
>>>
>>> What events are doing sizeof(__u64) and sizeof(__u32)?
>>>
>>> First, that's useless, as sizeof(__u64) will always be 8, and
>>> sizeof(__u32) will always be 4.
>>>
>>> What exactly is this fixing?
>>
>> It starts to fix things like:
>>
>> kmem:mm_page_alloc
>> Warning: [kmem:mm_page_alloc] function sizeof not defined
>
> I don't see any sizeof() calls in my format files. And still, its
> useless to add sizeof() for __u64 and __u32 unless perhaps a type is a
> macro defined to that.
>
> Ah, this is arm64 (as I don't see it in x86).
>
> No the real fix is to nuke the sizeof(__u64) in the TP_printk(), it's
> useless because it will always be 8.
That is the simple case, initially I was going to just hand code some of
the sizeofs in the kernel, but then I started noticing more complex
cases, and why I RFCed this patch.
For example, on x64/xen there are fair number with sizeof(pXXval_t),
IIRC I've also seen a fair number of sizeof(struct page *). Some, but I
dont think all of these case be determined from the field sizes like
this one:
[root@X tracing]# cat events/xen/xen_mmu_set_pte/format
name: xen_mmu_set_pte
ID: 45
format:
field:unsigned short common_type; offset:0; size:2;
signed:0;
field:unsigned char common_flags; offset:2; size:1;
signed:0;
field:unsigned char common_preempt_count; offset:3;
size:1; signed:0;
field:int common_pid; offset:4; size:4; signed:1;
field:pte_t * ptep; offset:8; size:8; signed:0;
field:pteval_t pteval; offset:16; size:8; signed:0;
print fmt: "ptep %p pteval %0*llx (raw %0*llx)", REC->ptep,
(int)sizeof(pteval_t) * 2, (unsigned long
long)pte_val(native_make_pte(REC->pteval)), (int)sizeof(pteval_t) * 2,
(unsigned long long)REC->pteval
next prev parent reply other threads:[~2016-06-17 18:57 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-14 16:38 [RFC/PATCH] perf: Add sizeof operator support Jeremy Linton
2016-06-17 16:17 ` Steven Rostedt
2016-06-17 16:32 ` Jeremy Linton
2016-06-17 16:50 ` Steven Rostedt
2016-06-17 18:57 ` Jeremy Linton [this message]
2016-06-17 19:08 ` Steven Rostedt
2016-06-20 0:29 ` Namhyung Kim
2017-04-30 22:06 ` Jon Masters
2017-05-02 11:47 ` Jeremy Linton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=57644828.3000000@arm.com \
--to=jeremy.linton@arm.com \
--cc=acme@redhat.com \
--cc=hekuang@huawei.com \
--cc=kapileshwar.singh@arm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=namhyung@kernel.org \
--cc=rostedt@goodmis.org \
--cc=scottwood@freescale.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.