i2c: add tracepoints for I2C slave events
authorJae Hyun Yoo <quic_jaehyoo@quicinc.com>
Fri, 18 Mar 2022 20:41:33 +0000 (13:41 -0700)
committerWolfram Sang <wsa@kernel.org>
Sat, 19 Mar 2022 23:11:05 +0000 (00:11 +0100)
commitd714fb25e755ad96b699993fac47f48c4d6cebe9
tree22bfadf68977db34ed737f3809b5a249ae448f1d
parent3364c0ef8732694084f8238ffd9c62819209fd7f
i2c: add tracepoints for I2C slave events

I2C slave events tracepoints can be enabled by:

echo 1 > /sys/kernel/tracing/events/i2c_slave/enable

and logs in /sys/kernel/tracing/trace will look like:

... i2c_slave: i2c-0 a=010 ret=0 WR_REQ []
... i2c_slave: i2c-0 a=010 ret=0 WR_RCV [02]
... i2c_slave: i2c-0 a=010 ret=0 WR_RCV [0c]
... i2c_slave: i2c-0 a=010 ret=0   STOP []
... i2c_slave: i2c-0 a=010 ret=0 RD_REQ [04]
... i2c_slave: i2c-0 a=010 ret=0 RD_PRO [b4]
... i2c_slave: i2c-0 a=010 ret=0  STOP []

formatted as:

i2c-<adapter_nr>
a=<addr>
ret=<ret> <- callback return value
<event>
[<data>]

trace printings can be selected by adding a filter like:

echo adapter_nr==1 >/sys/kernel/tracing/events/i2c_slave/filter

Signed-off-by: Jae Hyun Yoo <quic_jaehyoo@quicinc.com>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/i2c-core-slave.c
include/linux/i2c.h
include/trace/events/i2c_slave.h [new file with mode: 0644]