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 v15 1/5] drm/xe/guc: Prepare GuC register list and update ADS size for error capture
Date: Thu, 8 Aug 2024 22:58:16 +0000	[thread overview]
Message-ID: <c372106eefd3469dafa39c88cbc25c47358b72dc.camel@intel.com> (raw)
In-Reply-To: <20240806145704.165231-2-zhanjun.dong@intel.com>

On Tue, 2024-08-06 at 07:57 -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.
> 
> Then, populate GuC ADS with the lists of registers we want
> GuC to report back to host on engine reset events. This list
> should include global, engine-class and engine-instance
> registers for every engine-class type on the current hardware.
> 
> Ensure we allocate a persistent store for the register lists
> that are populated into ADS so that we don't need to allocate
> memory during GT resets when GuC is reloaded and ADS population
> happens again.
> 
> Signed-off-by: Zhanjun Dong <zhanjun.dong@intel.com>
> Reviewed-by: Alan Previn <alan.previn.teres.alexis@intel.com> #rev11

alan: took a look at this patch again since some changes come in after rev11
all LGTM but i believe u missed one comment syling gap that Michal requested in rev12.
see below - i'll give you a conditional RB once u fix that:

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

alan:snip


> diff --git a/drivers/gpu/drm/xe/xe_guc_capture_types.h b/drivers/gpu/drm/xe/xe_guc_capture_types.h
> new file mode 100644
> index 000000000000..839148c9fa0f
> --- /dev/null
> +++ b/drivers/gpu/drm/xe/xe_guc_capture_types.h
> @@ -0,0 +1,55 @@
> +/* SPDX-License-Identifier: MIT */
> +/*
> + * Copyright © 2021-2024 Intel Corporation
> + */
> +
> +#ifndef _XE_GUC_CAPTURE_TYPES_H
> +#define _XE_GUC_CAPTURE_TYPES_H
> +
> +#include <linux/types.h>
> +#include "regs/xe_reg_defs.h"
> +
> +struct xe_guc;
> +
> +/**
> + * struct __guc_mmio_reg_descr - GuC mmio register descriptor
> + *
> + * xe_guc_capture module uses these structures to define a register
> + * (offsets, names, flags,...) that are used at the ADS regisration
> + * time as well as during runtime processing and reporting of error-
> + * capture states generated by GuC just prior to engine reset events.
> + */
> +struct __guc_mmio_reg_descr {
> +       /** @reg: the register */
> +       struct xe_reg reg;
> +       /** @flags: Flags for the register */
> +       u32 flags;
> +       /** @mask: The mask to apply */
> +       u32 mask;
> +       /** @regname: Name of the register */
> +       const char *regname;
> +};
> +
> +/**
> + * struct __guc_mmio_reg_descr_group - The group of register descriptor
> + *
> + * xe_guc_capture module uses these structures to maintain static
> + * tables (per unique platform) that consists of lists of registers
> + * (offsets, names, flags,...) that are used at the ADS regisration
> + * time as well as during runtime processing and reporting of error-
> + * capture states generated by GuC just prior to engine reset events.
> + */
> +struct __guc_mmio_reg_descr_group {
> +       /** @list: The register list */
> +       const struct __guc_mmio_reg_descr *list;
> +       /** @num_regs: Count of registers in the list */
> +       u32 num_regs;
> +       /** @owner: PF/VF owner */
> +       u32 owner; /* see enum guc_capture_list_index_type */
> +       /** @type: GuC capture register type */
> +       u32 type; /* see enum guc_state_capture_type */
> +       /** @engine: The engine class */
> +       u32 engine; /* see enum guc_capture_list_class_type */
alan: conditonal rb: re-quote from Michal in rev12: ix comments (keep in one block)
(the last 3 above, owner, type and engine).

alan:snip

  reply	other threads:[~2024-08-08 22:58 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-06 14:56 [PATCH v15 0/5] drm/xe/guc: Add GuC based register capture for error capture Zhanjun Dong
2024-08-06 14:57 ` [PATCH v15 1/5] drm/xe/guc: Prepare GuC register list and update ADS size " Zhanjun Dong
2024-08-08 22:58   ` Teres Alexis, Alan Previn [this message]
2024-08-06 14:57 ` [PATCH v15 2/5] drm/xe/guc: Add XE_LP steered register lists Zhanjun Dong
2024-08-06 14:57 ` [PATCH v15 3/5] drm/xe/guc: Add capture size check in GuC log buffer Zhanjun Dong
2024-08-08 19:05   ` Teres Alexis, Alan Previn
2024-08-06 14:57 ` [PATCH v15 4/5] drm/xe/guc: Extract GuC error capture lists Zhanjun Dong
2024-08-06 14:57 ` [PATCH v15 5/5] drm/xe/guc: Plumb GuC-capture into dev coredump Zhanjun Dong
2024-08-06 15:02 ` ✓ CI.Patch_applied: success for drm/xe/guc: Add GuC based register capture for error capture (rev15) Patchwork
2024-08-06 15:03 ` ✗ CI.checkpatch: warning " Patchwork
2024-08-06 15:04 ` ✓ CI.KUnit: success " Patchwork
2024-08-06 15:16 ` ✓ CI.Build: " Patchwork
2024-08-06 15:20 ` ✓ CI.Hooks: " Patchwork
2024-08-06 15:22 ` ✓ CI.checksparse: " Patchwork
2024-08-06 15:42 ` ✓ CI.BAT: " Patchwork
2024-08-06 17:37 ` ✗ CI.FULL: failure " 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=c372106eefd3469dafa39c88cbc25c47358b72dc.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