Re: [PATCH V2 1/6] coresight: etb10: Properly set AUX buffer head in snapshot mode

Suzuki K Poulose
2019-05-15T09:45:21Z

Hi Mathieu,

On 14/05/2019 20:40, Mathieu Poirier wrote:
> Unify amongst sink drivers how the AUX ring buffer head is communicated
> to user space. That way the same algorithm in cs_etm_find_snapshot()

I would leave the userspace tool's function name out of the commit description
and the comment below. We could instead say: "That way the same algorithm can be
used by the userspace tool to determine the position and the size of the latest
snapshot data."

> can be used to determine where the latest data is and how much of it
> to access.
>
> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
> ---
> drivers/hwtracing/coresight/coresight-etb10.c | 13 +++++++------
> 1 file changed, 7 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/hwtracing/coresight/coresight-etb10.c b/drivers/hwtracing/coresight/coresight-etb10.c
> index 4ee4c80a4354..60e753b1768d 100644
> --- a/drivers/hwtracing/coresight/coresight-etb10.c
> +++ b/drivers/hwtracing/coresight/coresight-etb10.c
> @@ -548,13 +548,14 @@ static unsigned long etb_update_buffer(struct coresight_device *csdev,
> writel_relaxed(0x0, drvdata->base + ETB_RAM_WRITE_POINTER);
>
> /*
> - * In snapshot mode we have to update the handle->head to point
> - * to the new location.
> + * In snapshot mode we simply increment the head by the number of byte
> + * that were written. User space function cs_etm_find_snapshot() will
> + * figure out how many bytes to get from the AUX buffer based on the
> + * position of the head.
> */
> - if (buf->snapshot) {
> - handle->head = (cur * PAGE_SIZE) + offset;
> - to_read = buf->nr_pages << PAGE_SHIFT;
> - }
> + if (buf->snapshot)
> + handle->head += to_read;
> +
> __etb_enable_hw(drvdata);
> CS_LOCK(drvdata->base);
> out:

Otherwise:

Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>