All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ezequiel Garcia <ezequiel@collabora.com>
To: Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	hverkuil@xs4all.nl, p.zabel@pengutronix.de, mchehab@kernel.org,
	shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com,
	gregkh@linuxfoundation.org, mripard@kernel.org,
	paul.kocialkowski@bootlin.com, wens@csie.org,
	jernej.skrabec@siol.net, emil.l.velikov@gmail.com,
	andrzej.p@collabora.com, jc@kynesim.co.uk,
	jernej.skrabec@gmail.com, nicolas@ndufresne.ca
Cc: kernel@pengutronix.de, linux-imx@nxp.com,
	linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 1/8] media: hantro: Trace hevc hw cycles performance register
Date: Fri, 18 Jun 2021 15:58:46 -0300	[thread overview]
Message-ID: <418311dac48d3a29b4fe9e363f7d4e82c360f586.camel@collabora.com> (raw)
In-Reply-To: <20210618131526.566762-2-benjamin.gaignard@collabora.com>

Hi Benjamin,

On Fri, 2021-06-18 at 15:15 +0200, Benjamin Gaignard wrote:
> After each hevc decoded frame trace the hardware performance.
> It provides the number of hw cycles spend per decoded macroblock.
> 

Please add some documentation about how these are supposed
to be used. It will be easier to discuss after seeing
things in actiion.

A good place for the documentation would be:

https://www.kernel.org/doc/html/latest/admin-guide/media/v4l-drivers.html

[..]
> @@ -22,6 +23,21 @@ static inline void hantro_write_addr(struct hantro_dev *vpu,
>         vdpu_write(vpu, addr & 0xffffffff, offset);
>  }
>  
> +void hantro_g2_hevc_dec_done(struct hantro_ctx *ctx)

I'm worried about the runtime cost this would have.

I see other drivers (i915, panfrost) seem to have an ioctl
to enable the perf counters.

Perhaps we don't need an ioctl, but a module param would be enough
for now.

> +{
> +       const struct hantro_hevc_dec_ctrls *ctrls = &ctx->hevc_dec.ctrls;
> +       const struct v4l2_ctrl_hevc_sps *sps = ctrls->sps;
> +       struct hantro_dev *vpu = ctx->dev;
> +       u32 hw_cycles = 0;
> +       u32 mbs = (sps->pic_width_in_luma_samples *
> +                  sps->pic_height_in_luma_samples) >> 8;
> +
> +       if (mbs)
> +               hw_cycles = vdpu_read(vpu, G2_HW_PERFORMANCE) / mbs;
> +
> +       trace_hantro_hevc_perf(ctx, hw_cycles);
> +}
> +
> 
[..]
> +
> +TRACE_EVENT(hantro_hevc_perf,
> +       TP_PROTO(struct hantro_ctx *ctx, u32 hw_cycles),
> +
> +       TP_ARGS(ctx, hw_cycles),
> +
> +       TP_STRUCT__entry(
> +               __field(int, minor)
> +               __field(u32, hw_cycles)
> +       ),
> +
> +       TP_fast_assign(
> +               __entry->minor = ctx->fh.vdev->minor;

Tracking performance per minor doesn't seem useful,
we'd like to track per-fd (i.e. per context).

Thanks,
Ezequiel


WARNING: multiple messages have this Message-ID (diff)
From: Ezequiel Garcia <ezequiel@collabora.com>
To: Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	hverkuil@xs4all.nl, p.zabel@pengutronix.de, mchehab@kernel.org,
	shawnguo@kernel.org,  s.hauer@pengutronix.de, festevam@gmail.com,
	gregkh@linuxfoundation.org,  mripard@kernel.org,
	paul.kocialkowski@bootlin.com, wens@csie.org,
	 jernej.skrabec@siol.net, emil.l.velikov@gmail.com,
	andrzej.p@collabora.com, jc@kynesim.co.uk,
	jernej.skrabec@gmail.com, nicolas@ndufresne.ca
Cc: kernel@pengutronix.de, linux-imx@nxp.com,
	linux-media@vger.kernel.org,  linux-rockchip@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 1/8] media: hantro: Trace hevc hw cycles performance register
Date: Fri, 18 Jun 2021 15:58:46 -0300	[thread overview]
Message-ID: <418311dac48d3a29b4fe9e363f7d4e82c360f586.camel@collabora.com> (raw)
In-Reply-To: <20210618131526.566762-2-benjamin.gaignard@collabora.com>

Hi Benjamin,

On Fri, 2021-06-18 at 15:15 +0200, Benjamin Gaignard wrote:
> After each hevc decoded frame trace the hardware performance.
> It provides the number of hw cycles spend per decoded macroblock.
> 

Please add some documentation about how these are supposed
to be used. It will be easier to discuss after seeing
things in actiion.

A good place for the documentation would be:

https://www.kernel.org/doc/html/latest/admin-guide/media/v4l-drivers.html

[..]
> @@ -22,6 +23,21 @@ static inline void hantro_write_addr(struct hantro_dev *vpu,
>         vdpu_write(vpu, addr & 0xffffffff, offset);
>  }
>  
> +void hantro_g2_hevc_dec_done(struct hantro_ctx *ctx)

I'm worried about the runtime cost this would have.

I see other drivers (i915, panfrost) seem to have an ioctl
to enable the perf counters.

Perhaps we don't need an ioctl, but a module param would be enough
for now.

> +{
> +       const struct hantro_hevc_dec_ctrls *ctrls = &ctx->hevc_dec.ctrls;
> +       const struct v4l2_ctrl_hevc_sps *sps = ctrls->sps;
> +       struct hantro_dev *vpu = ctx->dev;
> +       u32 hw_cycles = 0;
> +       u32 mbs = (sps->pic_width_in_luma_samples *
> +                  sps->pic_height_in_luma_samples) >> 8;
> +
> +       if (mbs)
> +               hw_cycles = vdpu_read(vpu, G2_HW_PERFORMANCE) / mbs;
> +
> +       trace_hantro_hevc_perf(ctx, hw_cycles);
> +}
> +
> 
[..]
> +
> +TRACE_EVENT(hantro_hevc_perf,
> +       TP_PROTO(struct hantro_ctx *ctx, u32 hw_cycles),
> +
> +       TP_ARGS(ctx, hw_cycles),
> +
> +       TP_STRUCT__entry(
> +               __field(int, minor)
> +               __field(u32, hw_cycles)
> +       ),
> +
> +       TP_fast_assign(
> +               __entry->minor = ctx->fh.vdev->minor;

Tracking performance per minor doesn't seem useful,
we'd like to track per-fd (i.e. per context).

Thanks,
Ezequiel


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

WARNING: multiple messages have this Message-ID (diff)
From: Ezequiel Garcia <ezequiel@collabora.com>
To: Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	hverkuil@xs4all.nl, p.zabel@pengutronix.de, mchehab@kernel.org,
	shawnguo@kernel.org,  s.hauer@pengutronix.de, festevam@gmail.com,
	gregkh@linuxfoundation.org,  mripard@kernel.org,
	paul.kocialkowski@bootlin.com, wens@csie.org,
	 jernej.skrabec@siol.net, emil.l.velikov@gmail.com,
	andrzej.p@collabora.com, jc@kynesim.co.uk,
	jernej.skrabec@gmail.com, nicolas@ndufresne.ca
Cc: kernel@pengutronix.de, linux-imx@nxp.com,
	linux-media@vger.kernel.org,  linux-rockchip@lists.infradead.org,
	linux-arm-kernel@lists.infradead.org,
	 linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 1/8] media: hantro: Trace hevc hw cycles performance register
Date: Fri, 18 Jun 2021 15:58:46 -0300	[thread overview]
Message-ID: <418311dac48d3a29b4fe9e363f7d4e82c360f586.camel@collabora.com> (raw)
In-Reply-To: <20210618131526.566762-2-benjamin.gaignard@collabora.com>

Hi Benjamin,

On Fri, 2021-06-18 at 15:15 +0200, Benjamin Gaignard wrote:
> After each hevc decoded frame trace the hardware performance.
> It provides the number of hw cycles spend per decoded macroblock.
> 

Please add some documentation about how these are supposed
to be used. It will be easier to discuss after seeing
things in actiion.

A good place for the documentation would be:

https://www.kernel.org/doc/html/latest/admin-guide/media/v4l-drivers.html

[..]
> @@ -22,6 +23,21 @@ static inline void hantro_write_addr(struct hantro_dev *vpu,
>         vdpu_write(vpu, addr & 0xffffffff, offset);
>  }
>  
> +void hantro_g2_hevc_dec_done(struct hantro_ctx *ctx)

I'm worried about the runtime cost this would have.

I see other drivers (i915, panfrost) seem to have an ioctl
to enable the perf counters.

Perhaps we don't need an ioctl, but a module param would be enough
for now.

> +{
> +       const struct hantro_hevc_dec_ctrls *ctrls = &ctx->hevc_dec.ctrls;
> +       const struct v4l2_ctrl_hevc_sps *sps = ctrls->sps;
> +       struct hantro_dev *vpu = ctx->dev;
> +       u32 hw_cycles = 0;
> +       u32 mbs = (sps->pic_width_in_luma_samples *
> +                  sps->pic_height_in_luma_samples) >> 8;
> +
> +       if (mbs)
> +               hw_cycles = vdpu_read(vpu, G2_HW_PERFORMANCE) / mbs;
> +
> +       trace_hantro_hevc_perf(ctx, hw_cycles);
> +}
> +
> 
[..]
> +
> +TRACE_EVENT(hantro_hevc_perf,
> +       TP_PROTO(struct hantro_ctx *ctx, u32 hw_cycles),
> +
> +       TP_ARGS(ctx, hw_cycles),
> +
> +       TP_STRUCT__entry(
> +               __field(int, minor)
> +               __field(u32, hw_cycles)
> +       ),
> +
> +       TP_fast_assign(
> +               __entry->minor = ctx->fh.vdev->minor;

Tracking performance per minor doesn't seem useful,
we'd like to track per-fd (i.e. per context).

Thanks,
Ezequiel


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-06-18 18:59 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-18 13:15 [PATCH v3 0/8] Additional features for Hantro HEVC Benjamin Gaignard
2021-06-18 13:15 ` Benjamin Gaignard
2021-06-18 13:15 ` Benjamin Gaignard
2021-06-18 13:15 ` [PATCH v3 1/8] media: hantro: Trace hevc hw cycles performance register Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 18:58   ` Ezequiel Garcia [this message]
2021-06-18 18:58     ` Ezequiel Garcia
2021-06-18 18:58     ` Ezequiel Garcia
2021-06-22 12:23     ` Benjamin Gaignard
2021-06-22 12:23       ` Benjamin Gaignard
2021-06-22 12:23       ` Benjamin Gaignard
2021-06-22 12:48       ` Ezequiel Garcia
2021-06-22 12:48         ` Ezequiel Garcia
2021-06-22 12:48         ` Ezequiel Garcia
2021-06-18 13:15 ` [PATCH v3 2/8] media: hantro: Add support of compressed reference buffers Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 13:15 ` [PATCH v3 3/8] media: hantro: hevc: Allow 10-bits encoded streams Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 13:15 ` [PATCH v3 4/8] media: Add P010 video format Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 19:38   ` Ezequiel Garcia
2021-06-18 19:38     ` Ezequiel Garcia
2021-06-18 19:38     ` Ezequiel Garcia
2021-06-22 21:24     ` Nicolas Dufresne
2021-06-22 21:24       ` Nicolas Dufresne
2021-06-22 21:24       ` Nicolas Dufresne
2021-06-22 22:21       ` Ezequiel Garcia
2021-06-22 22:21         ` Ezequiel Garcia
2021-06-22 22:21         ` Ezequiel Garcia
2021-06-25 19:33   ` Nicolas Dufresne
2021-06-25 19:33     ` Nicolas Dufresne
2021-06-25 19:33     ` Nicolas Dufresne
2021-06-28 13:37     ` Benjamin Gaignard
2021-06-28 13:37       ` Benjamin Gaignard
2021-06-28 13:37       ` Benjamin Gaignard
2021-06-18 13:15 ` [PATCH v3 5/8] media: hantro: hevc: Allow to produce 10-bit frames Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-22 13:26   ` Ezequiel Garcia
2021-06-22 13:26     ` Ezequiel Garcia
2021-06-22 13:26     ` Ezequiel Garcia
2021-06-18 13:15 ` [PATCH v3 6/8] media: hantro: enumerate scaled output formats Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 19:24   ` Ezequiel Garcia
2021-06-18 19:24     ` Ezequiel Garcia
2021-06-18 19:24     ` Ezequiel Garcia
2021-06-22 21:45   ` Nicolas Dufresne
2021-06-22 21:45     ` Nicolas Dufresne
2021-06-22 21:45     ` Nicolas Dufresne
2021-06-18 13:15 ` [PATCH v3 7/8] media: hevc: Add scaling matrix control Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 13:15 ` [PATCH v3 8/8] media: hantro: Add scaling lists feature Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-18 13:15   ` Benjamin Gaignard
2021-06-22 12:54 ` [PATCH v3 0/8] Additional features for Hantro HEVC Ezequiel Garcia
2021-06-22 12:54   ` Ezequiel Garcia
2021-06-22 12:54   ` Ezequiel Garcia

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=418311dac48d3a29b4fe9e363f7d4e82c360f586.camel@collabora.com \
    --to=ezequiel@collabora.com \
    --cc=andrzej.p@collabora.com \
    --cc=benjamin.gaignard@collabora.com \
    --cc=emil.l.velikov@gmail.com \
    --cc=festevam@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hverkuil@xs4all.nl \
    --cc=jc@kynesim.co.uk \
    --cc=jernej.skrabec@gmail.com \
    --cc=jernej.skrabec@siol.net \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=mchehab@kernel.org \
    --cc=mripard@kernel.org \
    --cc=nicolas@ndufresne.ca \
    --cc=p.zabel@pengutronix.de \
    --cc=paul.kocialkowski@bootlin.com \
    --cc=s.hauer@pengutronix.de \
    --cc=shawnguo@kernel.org \
    --cc=wens@csie.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.