RE: [PATCH] cxl/mbox: Fix debug message print

From: Dan Williams
Date: Mon Jul 31 2023 - 18:13:15 EST


Ira Weiny wrote:
> The handle value used to report an event being cleared by dev_dbg() is
> incorrect due to a post increment of the payload handle index.
>
> Delay the increment of the index until after the print. Also add the
> debugging for event processing which was useful in finding this bug.
>
> To: Davidlohr Bueso <dave@xxxxxxxxxxxx>
> To: Jonathan Cameron <jonathan.cameron@xxxxxxxxxx>
> To: Dave Jiang <dave.jiang@xxxxxxxxx>
> To: Alison Schofield <alison.schofield@xxxxxxxxx>
> To: Vishal Verma <vishal.l.verma@xxxxxxxxx>
> To: Dan Williams <dan.j.williams@xxxxxxxxx>

Is this some new process recommendation to use "To:", I would only
expect Cc: for maintainers.

> Cc: Jonathan Cameron <Jonathan.Cameron@xxxxxxxxxx>

Jonathan gets listed twice because?

> Cc: linux-cxl@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx

I assume this is because b4 takes its address from the patch itself?

It just feels a bit too noisy.

> Signed-off-by: Ira Weiny <ira.weiny@xxxxxxxxx>
> ---
> NOTE: This does fix a bug in the patch referenced below. However, I
> don't think that warrants back porting because this is only a debug
> print.

I don't think that's a reason not to flag for backport. Smaller things
than this have been backported, and if it saves someone getting confused
in the field its worth it.

>
> Fixes: 6ebe28f9ec72 ("cxl/mem: Read, trace, and clear events on driver load")
> ---
> drivers/cxl/core/mbox.c | 9 +++++++--
> 1 file changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/cxl/core/mbox.c b/drivers/cxl/core/mbox.c
> index d6d067fbee97..f052d5f174ee 100644
> --- a/drivers/cxl/core/mbox.c
> +++ b/drivers/cxl/core/mbox.c
> @@ -882,9 +882,10 @@ static int cxl_clear_event_record(struct cxl_memdev_state *mds,
> */
> i = 0;
> for (cnt = 0; cnt < total; cnt++) {
> - payload->handles[i++] = get_pl->records[cnt].hdr.handle;
> + payload->handles[i] = get_pl->records[cnt].hdr.handle;
> dev_dbg(mds->cxlds.dev, "Event log '%d': Clearing %u\n", log,
> le16_to_cpu(payload->handles[i]));
> + i++;
>
> if (i == max_handles) {
> payload->nr_recs = i;
> @@ -946,9 +947,13 @@ static void cxl_mem_get_records_log(struct cxl_memdev_state *mds,
> if (!nr_rec)
> break;
>
> - for (i = 0; i < nr_rec; i++)
> + for (i = 0; i < nr_rec; i++) {
> + dev_dbg(dev, "Event log %d: processing handle %u\n",
> + type,
> + le16_to_cpu(payload->records[i].hdr.handle));
> cxl_event_trace_record(cxlmd, type,
> &payload->records[i]);

This looks unrelated to the fix.

> + }
>
> if (payload->flags & CXL_GET_EVENT_FLAG_OVERFLOW)
> trace_cxl_overflow(cxlmd, type, payload);
>
> ---
> base-commit: 5d0c230f1de8c7515b6567d9afba1f196fb4e2f4
> change-id: 20230731-cxl-fix-clear-event-debug-print-3b57da0e956c
>
> Best regards,
> --
> Ira Weiny <ira.weiny@xxxxxxxxx>
>