[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20180406105309.b50ea1a21d2cbd9b0e39dbfd@kernel.org>
Date: Fri, 6 Apr 2018 10:53:09 +0900
From: Masami Hiramatsu <mhiramat@...nel.org>
To: Tom Zanussi <tom.zanussi@...ux.intel.com>
Cc: rostedt@...dmis.org, tglx@...utronix.de, namhyung@...nel.org,
vedang.patel@...el.com, bigeasy@...utronix.de,
joel.opensrc@...il.com, joelaf@...gle.com,
mathieu.desnoyers@...icios.com, baohong.liu@...el.com,
rajvi.jingar@...el.com, julia@...com, fengguang.wu@...el.com,
linux-kernel@...r.kernel.org, linux-rt-users@...r.kernel.org
Subject: Re: [PATCH 3/4] tracing: Add action comparisons when testing
matching hist triggers
Hi Tom,
On Thu, 05 Apr 2018 18:34:13 -0500
Tom Zanussi <tom.zanussi@...ux.intel.com> wrote:
> Hi Masami,
>
> On Thu, 2018-04-05 at 12:50 +0900, Masami Hiramatsu wrote:
>
> [...]
>
> > Can you print out the error with which event we should see? e.g.
> >
> > ERROR: Variable already defined at sched_wakeup: ts0
> >
>
> How about printing the event name along with the last command, for any
> error? :
>
> ERROR: Variable already defined: ts0
> Last command: [sched:sched_wakeup] keys=pid:ts0=common_timestamp.usecs if comm=="cyclictest"
Hmm, is the Last command shows the last command on sched_wakeup ? or sched_switch??
[...]
> Before:
>
> # echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="cyclictest"' >> /sys/kernel/debug/tracing/events/sched/sched_wakeup/trigger
>
> # echo '!hist:keys=next_pid:ts0=common_timestamp.usecs if comm=="cyclictest"' >> /sys/kernel/debug/tracing/events/sched/sched_switch/trigger
>
> And other commands making us think we cleared everything out so the
> below error is a surprise
>
> # echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="cyclictest"' >> /sys/kernel/debug/tracing/events/sched/sched_wakeup/trigger
> -su: echo: write error: Invalid argument
No, my senario is different.
Your senario tries
1) define ts0 on sched_wakeup
2) remove ts0 from sched_switch (but silently failed)
3) re-define ts0 on sched_wakeup and get an error
In this case, user can dump sched_wakeup/trigger and see there is already ts0 defined.
My senario is a bit different
1) define ts0 on sched_wakeup
2) remove ts0 from sched_switch (but silently failed)
3) re-define ts0 on *sched_switch* and get an error
The 3rd operation failed on "sched_switch" not on "sched_wakeup". In this case we will totally lost where the ts0 defined.
That's why I have asked you to show "where the ts0 is defined" at error line.
Anyway, I think it is a good chance to introduce <tracefs>/error_log file, since we have too many non-critical errors on operations. I feel that checking hist file by errors on trigger file is not a bit intuitive.
# cat /sys/kernel/debug/tracing/error_log
ERROR(events/sched/sched_switch/trigger): Variable already defined: ts0@...ed:sched_wakeup
Command: keys=pid:ts0=common_timestamp.usecs if comm=="cyclictest"
This can be used from probe events too :)
e.g.
ERROR(kprobe_events): Unsupported type: uint8
Command: p vfs_read arg1=%di:uint8
Any thought?
Thank you,
--
Masami Hiramatsu <mhiramat@...nel.org>
Powered by blists - more mailing lists