Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Teres Alexis, Alan Previn" <alan.previn.teres.alexis@intel.com>
To: "Dong, Zhanjun" <zhanjun.dong@intel.com>,
	"intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>
Subject: Re: [PATCH v16 1/7] drm/xe/guc: Prepare GuC register list and update ADS size for error capture
Date: Tue, 27 Aug 2024 20:30:54 +0000	[thread overview]
Message-ID: <907851009fed50c370824f2cafc332f127841ef1.camel@intel.com> (raw)
In-Reply-To: <20240820021142.436536-2-zhanjun.dong@intel.com>

So i only have a few nits since the difference between v15 vs v16 of Patch#1
is limited to the inclusion of the additional variables in the register list
(to aid with for print-formatting of output), as well as the separation of
list for lpg vs hpg.

However, lets ensure we circle back with confirmation that the register
list ordering is not impacting the debug tool. For now I'm providing the
conditional-rb pending that ordering - just need a reply on this.
thanks again for the perseverence.


Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com>


On Mon, 2024-08-19 at 19:11 -0700, Zhanjun Dong wrote:
> Add referenced registers defines and list of registers.
> Update GuC ADS size allocation to include space for
> the lists of error state capture register descriptors.
> 
> 
alan:snip

> diff --git a/drivers/gpu/drm/xe/xe_guc_capture.c b/drivers/gpu/drm/xe/xe_guc_capture.c
> new file mode 100644
> index 000000000000..0e75d1553730
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_guc_capture.c
> @@ -0,0 +1,508 @@
> +// SPDX-License-Identifier: MIT
> +/*
> 
alan:snip
> +
> +/*
> + * Define all device tables of GuC error capture register lists
> + * NOTE:
> + *     For engine-registers, GuC only needs the register offsets
> + *     from the engine-mmio-base
> + *
> + *     64 bit registers need 2 entries for low 32 bit register and high 32 bit
> + *     register, for example:
> + *       Register           data_type       flags   mask    Register name
> + *     { XXX_REG_LO(0),  REG_64BIT_LOW_DW,    0,      0,      NULL},
> + *     { XXX_REG_HI(0),  REG_64BIT_HI_DW,,    0,      0,      "XXX_REG"},
> + *     1. data_type: Indicate is hi/low 32 bit for a 64 bit register
> + *     2. Register name: null for incompleted define
> + *     A 64 bit register define requires 2 consecutive entries.
alan:nit: this sentence above should be combined as part of "1."
> + */
> +#define COMMON_XELP_BASE_GLOBAL \
> +       { FORCEWAKE_GT,                 REG_32BIT,      0,      0,      "FORCEWAKE_GT"}
> +
> +#define COMMON_BASE_ENGINE_INSTANCE \
alan: please ensure you have 3d-umd folks confirm that the change in
ordering of the register printout is not an issue - since we are now
using the same list for both exec-list and guc... and the ordering is
will be aligned for obht the guc-ads-reg-list registration as well as
the dev-core-dump-register-dump printout (which is what we prefer to
ensure no dulicated lists for exec-list vs guc). If you already confirmed
with them offline, please reply on this. I would expect UMD's scripts
are flexible since they have to handle different gen products with slightly
different lists - but best to be thorough. Thanks in advance.

> +       { RING_HWSTAM(0),               REG_32BIT,      0,      0,      "HWSTAM"}, \
> +       { RING_HWS_PGA(0),              REG_32BIT,      0,      0,      "RING_HWS_PGA"}, \
> +       { RING_HEAD(0),                 REG_32BIT,      0,      0,      "RING_HEAD"}, \
> +       { RING_TAIL(0),                 REG_32BIT,      0,      0,      "RING_TAIL"}, \
> +       { RING_CTL(0),                  REG_32BIT,      0,      0,      "RING_CTL"}, \
> +       { RING_MI_MODE(0),              REG_32BIT,      0,      0,      "RING_MI_MODE"}, \
> +       { RING_MODE(0),                 REG_32BIT,      0,      0,      "RING_MODE"}, \
> +       { RING_ESR(0),                  REG_32BIT,      0,      0,      "RING_ESR"}, \
> +       { RING_EMR(0),                  REG_32BIT,      0,      0,      "RING_EMR"}, \
> +       { RING_EIR(0),                  REG_32BIT,      0,      0,      "RING_EIR"}, \
> +       { RING_IMR(0),                  REG_32BIT,      0,      0,      "RING_IMR"}, \
> +       { RING_IPEHR(0),                REG_32BIT,      0,      0,      "IPEHR"}, \
alan:snip

> +/* Render / Compute Per-Engine-Instance */
alan:nit: if i understand correctly, this comment should say "Engine-Class", not "Per-Engine-Instance"
> +static const struct __guc_mmio_reg_descr xe_rc_class_regs[] = {
> +       COMMON_XELP_RC_CLASS,
> +       COMMON_XELP_RC_CLASS_INSTDONE,
> +};
> +
> +/* Render / Compute Per-Engine-Instance for xehpg */
alan:nit: same as last, comment should say this is for class, not per-instance.
> +static const struct __guc_mmio_reg_descr xe_hpg_rc_class_regs[] = {
> +       COMMON_XELP_RC_CLASS,
> +};
alan:snip




  reply	other threads:[~2024-08-27 20:31 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-20  2:11 [PATCH v16 0/7] drm/xe/guc: Add GuC based register capture for error capture Zhanjun Dong
2024-08-20  2:11 ` [PATCH v16 1/7] drm/xe/guc: Prepare GuC register list and update ADS size " Zhanjun Dong
2024-08-27 20:30   ` Teres Alexis, Alan Previn [this message]
2024-08-27 22:29     ` Dong, Zhanjun
2024-08-20  2:11 ` [PATCH v16 2/7] drm/xe/guc: Add XE_LP steered register lists Zhanjun Dong
2024-08-20  2:11 ` [PATCH v16 3/7] drm/xe/guc: Add capture size check in GuC log buffer Zhanjun Dong
2024-08-27 22:02   ` Teres Alexis, Alan Previn
2024-08-27 22:27     ` Dong, Zhanjun
2024-08-20  2:11 ` [PATCH v16 4/7] drm/xe/guc: Extract GuC error capture lists Zhanjun Dong
2024-08-20  2:11 ` [PATCH v16 5/7] drm/xe/guc: Move xe_lrc_snapshot to header file Zhanjun Dong
2024-08-27 20:40   ` Teres Alexis, Alan Previn
2024-08-20  2:11 ` [PATCH v16 6/7] drm/xe/guc: Add dss conversion from group/instance ID Zhanjun Dong
2024-08-22  2:20   ` Teres Alexis, Alan Previn
2024-08-20  2:11 ` [PATCH v16 7/7] drm/xe/guc: Plumb GuC-capture into dev coredump Zhanjun Dong
2024-08-20  2:17 ` ✓ CI.Patch_applied: success for drm/xe/guc: Add GuC based register capture for error capture (rev16) Patchwork
2024-08-20  2:17 ` ✗ CI.checkpatch: warning " Patchwork
2024-08-20  2:18 ` ✓ CI.KUnit: success " Patchwork
2024-08-20  2:30 ` ✓ CI.Build: " Patchwork
2024-08-20  2:32 ` ✓ CI.Hooks: " Patchwork
2024-08-20  2:34 ` ✓ CI.checksparse: " Patchwork
2024-08-20  2:57 ` ✗ CI.BAT: failure " Patchwork
2024-08-20 10:32 ` ✗ CI.FULL: " Patchwork

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=907851009fed50c370824f2cafc332f127841ef1.camel@intel.com \
    --to=alan.previn.teres.alexis@intel.com \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=zhanjun.dong@intel.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox