Re: [PATCH v6] platform/chrome: cros_ec: Add trace event to trace EC commands

From: Enric Balletbo i Serra
Date: Tue Apr 23 2019 - 06:02:26 EST




On 16/4/19 23:03, Raul E Rangel wrote:
> This is useful to see which EC commands are being executed and when.
>
> To enable:
>
> echo 1 > /sys/kernel/debug/tracing/events/cros_ec/enable
>
> Example:
>
> /* cros_ec_cmd: version: 0, command: EC_CMD_GET_VERSION */
> /* cros_ec_cmd: version: 0, command: EC_CMD_GET_PROTOCOL_INFO */
> /* cros_ec_cmd: version: 1, command: EC_CMD_GET_CMD_VERSIONS */
> /* cros_ec_cmd: version: 1, command: EC_CMD_USB_PD_CONTROL */
>
> Signed-off-by: Raul E Rangel <rrangel@xxxxxxxxxxxx>
> Reviewed-by: Ross Zwisler <zwisler@xxxxxxxxxx>
> Reviewed-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
> ---
> I did not add cros_ec_commands.h as an include to cros_ec_trace.c.
> It's not strictly required because the macro doesn't get evaluated until
> after cros_ec_trace.h has been included. That transitively brings in
> cros_ec_ommands.h. I did try it, but since cros_ec_commands.h doesn't
> include linux/types.h it fails to find uint32_t. I could have included
> both headers, but since they aren't required I just skipped it.
>
> My reasoning for not putting EC_CMDS in the cros_ec_trace.h was that I
> didn't want to clutter the file. I think it's visually easier to find
> all the trace events without having to parse through all the
> implementation details.
>
> Changes in v6:
> - Added script to generate the EC_CMDS trace symbols. They were
> originally sorted by value, now they are sorted by declaration order.
> There is one duplicate: EC_CMD_PORT80_LAST_BOOT and
> EC_CMD_PORT80_READ. They both resolve to the same value. Not sure if
> this is a bug in the cros_ec_commands.h file or not. Anyway it doesn't
> hurt anything.
> - Changed the example in the commit
>
> Changes in v5:
> - Rebased on upstream/master. It turns out upstream/master is missing a
> lot of changes to cros_ec_commands.h.
> - Replace SYM with SYMBOL in macro name.
>
> Changes in v4:
> - Use the full command name so go to definition continues to work in my
> editor.
>
> Changes in v3:
> - Use a macro to avoid duplicating the ec command names.
>
> Changes in v2:
> - Changed comment style to match other cros_ec files.
> - Fixed commit tag.
>
> drivers/platform/chrome/Makefile | 5 +-
> drivers/platform/chrome/cros_ec_proto.c | 4 +
> drivers/platform/chrome/cros_ec_trace.c | 124 ++++++++++++++++++++++++
> drivers/platform/chrome/cros_ec_trace.h | 51 ++++++++++
> 4 files changed, 183 insertions(+), 1 deletion(-)
> create mode 100644 drivers/platform/chrome/cros_ec_trace.c
> create mode 100644 drivers/platform/chrome/cros_ec_trace.h
>

Tweaked a bit the commit message and applied for 5.2

Thanks,
Enric