lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Sun, 11 Feb 2018 18:50:04 +0800
From:   "Du, Changbin" <changbin.du@...el.com>
To:     Steven Rostedt <rostedt@...dmis.org>
Cc:     changbin.du@...el.com, mingo@...hat.com,
        linux-kernel@...r.kernel.org
Subject: Re: [PATCH] tracing/power: Don't share template for cpu_idle and
 cpu_frequency

On Fri, Feb 09, 2018 at 09:44:58PM -0500, Steven Rostedt wrote:
> On Sat, 10 Feb 2018 09:37:04 +0800
> changbin.du@...el.com wrote:
> 
> > From: Changbin Du <changbin.du@...el.com>
> > 
> > The type of state is signed int, convert it to unsigned int looks weird.
> > (-1 become 4294967295)
> >    932.123 power:cpu_idle:state=1 cpu_id=0)
> >    932.125 power:cpu_idle:state=4294967295 cpu_id=0)
> >    932.132 power:cpu_idle:state=1 cpu_id=0)
> >    932.133 power:cpu_idle:state=4294967295 cpu_id=0)
> > 
> > Similarly for cpu_frequency as "state=%lu cpu_id=%lu". User need to read
> > the code to understand what 'state' means.
> > 
> > No functional change in this patch.
> 
> That's not true. You split a class into two TRACE_EVENTS. Each
> TRACE_EVENT adds approximately 5k of code and data. A DEFINE_EVENT()
> adds around 300 bytes. There's better ways to do this,
> 
> Please don't add this patch.
> 
> -- Steve

Steve, How abount DEFINE_EVENT_PRINT as below?

diff --git a/include/trace/events/power.h b/include/trace/events/power.h
index 908977d..e71ce98 100644
--- a/include/trace/events/power.h
+++ b/include/trace/events/power.h
@@ -14,12 +14,12 @@

 DECLARE_EVENT_CLASS(cpu,

-       TP_PROTO(unsigned int state, unsigned int cpu_id),
+       TP_PROTO(int state, unsigned int cpu_id),

        TP_ARGS(state, cpu_id),

        TP_STRUCT__entry(
-               __field(        u32,            state           )
+               __field(        s32,            state           )
                __field(        u32,            cpu_id          )
        ),

@@ -28,13 +28,12 @@ DECLARE_EVENT_CLASS(cpu,
                __entry->cpu_id = cpu_id;
        ),

-       TP_printk("state=%lu cpu_id=%lu", (unsigned long)__entry->state,
-                 (unsigned long)__entry->cpu_id)
+       TP_printk("state=%d cpu_id=%u", __entry->state, __entry->cpu_id)
 );

 DEFINE_EVENT(cpu, cpu_idle,

-       TP_PROTO(unsigned int state, unsigned int cpu_id),
+       TP_PROTO(int state, unsigned int cpu_id),

        TP_ARGS(state, cpu_id)
 );
@@ -141,11 +140,13 @@ TRACE_EVENT(pstate_sample,
                { PM_EVENT_RESTORE, "restore" }, \
                { PM_EVENT_RECOVER, "recover" })

-DEFINE_EVENT(cpu, cpu_frequency,
+DEFINE_EVENT_PRINT(cpu, cpu_frequency,

-       TP_PROTO(unsigned int frequency, unsigned int cpu_id),
+       TP_PROTO(int state, unsigned int cpu_id),

-       TP_ARGS(frequency, cpu_id)
+       TP_ARGS(state, cpu_id),
+
+       TP_printk("frequency=%u cpu_id=%lu", __entry->state, __entry->cpu_id)
 );

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ