Re: [PATCH 2/2] fsi: core: Add trace events for scan and unregister

From: Joel Stanley
Date: Tue May 30 2023 - 21:52:27 EST


On Wed, 12 Apr 2023 at 18:56, Eddie James <eajames@xxxxxxxxxxxxx> wrote:
>
> Add more trace events for the scanning and unregistration
> functions for debug purposes.
>
> Signed-off-by: Eddie James <eajames@xxxxxxxxxxxxx>

Reviewed-by: Joel Stanley <joel@xxxxxxxxx>

> ---
> drivers/fsi/fsi-core.c | 4 ++++
> include/trace/events/fsi.h | 31 +++++++++++++++++++++++++++++++
> 2 files changed, 35 insertions(+)
>
> diff --git a/drivers/fsi/fsi-core.c b/drivers/fsi/fsi-core.c
> index 18d4d68482d7..2dc119ab073c 100644
> --- a/drivers/fsi/fsi-core.c
> +++ b/drivers/fsi/fsi-core.c
> @@ -1220,6 +1220,7 @@ static int fsi_master_scan(struct fsi_master *master)
> {
> int link, rc;
>
> + trace_fsi_master_scan(master, true);
> for (link = 0; link < master->n_links; link++) {
> rc = fsi_master_link_enable(master, link);
> if (rc) {
> @@ -1261,6 +1262,7 @@ static int fsi_master_remove_slave(struct device *dev, void *arg)
>
> static void fsi_master_unscan(struct fsi_master *master)
> {
> + trace_fsi_master_scan(master, false);
> device_for_each_child(&master->dev, NULL, fsi_master_remove_slave);
> }
>
> @@ -1355,6 +1357,8 @@ EXPORT_SYMBOL_GPL(fsi_master_register);
> void fsi_master_unregister(struct fsi_master *master)
> {
> mutex_lock(&master->scan_lock);
> + trace_fsi_master_unregister(master);
> +
> if (master->idx >= 0) {
> ida_simple_remove(&master_ida, master->idx);
> master->idx = -1;
> diff --git a/include/trace/events/fsi.h b/include/trace/events/fsi.h
> index c9a72e8432b8..5ff15126ad9d 100644
> --- a/include/trace/events/fsi.h
> +++ b/include/trace/events/fsi.h
> @@ -122,6 +122,37 @@ TRACE_EVENT(fsi_master_break,
> )
> );
>
> +TRACE_EVENT(fsi_master_scan,
> + TP_PROTO(const struct fsi_master *master, bool scan),
> + TP_ARGS(master, scan),
> + TP_STRUCT__entry(
> + __field(int, master_idx)
> + __field(int, n_links)
> + __field(bool, scan)
> + ),
> + TP_fast_assign(
> + __entry->master_idx = master->idx;
> + __entry->n_links = master->n_links;
> + __entry->scan = scan;
> + ),
> + TP_printk("fsi%d (%d links) %s", __entry->master_idx, __entry->n_links,
> + __entry->scan ? "scan" : "unscan")
> +);
> +
> +TRACE_EVENT(fsi_master_unregister,
> + TP_PROTO(const struct fsi_master *master),
> + TP_ARGS(master),
> + TP_STRUCT__entry(
> + __field(int, master_idx)
> + __field(int, n_links)
> + ),
> + TP_fast_assign(
> + __entry->master_idx = master->idx;
> + __entry->n_links = master->n_links;
> + ),
> + TP_printk("fsi%d (%d links)", __entry->master_idx, __entry->n_links)
> +);
> +
> TRACE_EVENT(fsi_slave_init,
> TP_PROTO(const struct fsi_slave *slave),
> TP_ARGS(slave),
> --
> 2.31.1
>