mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Akhil P Oommen <akhilpo@oss.qualcomm.com>
To: Rob Clark <robin.clark@oss.qualcomm.com>,
	dri-devel@lists.freedesktop.org
Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org,
	Alexander Koskovich <akoskovich@pm.me>,
	Jie Zhang <jie.zhang@oss.qualcomm.com>,
	Bhaskar Reddy Valluru <bvalluru@qti.qualcomm.com>,
	Nico Angelo Dela Cruz <nicoangelodelacruz@gmail.com>,
	Abhinav Kumar <abhinav.kumar@linux.dev>,
	David Airlie <airlied@gmail.com>,
	Dmitry Baryshkov <lumag@kernel.org>,
	Jessica Zhang <jesszhan0024@gmail.com>,
	Konrad Dybcio <konradybcio@kernel.org>,
	open list <linux-kernel@vger.kernel.org>,
	Marijn Suijten <marijn.suijten@somainline.org>,
	Sean Paul <sean@poorly.run>, Simona Vetter <simona@ffwll.ch>
Subject: Re: [PATCH v6 00/15] drm/msm/a8xx: GPU state capture support
Date: Fri, 6 Nov 2026 03:01:23 +0530	[thread overview]
Message-ID: <e1c19166-9abd-4a35-b532-a3287bfe7607@oss.qualcomm.com> (raw)
In-Reply-To: <20261105203057.66520-1-robin.clark@oss.qualcomm.com>



On 11/6/2026 1:59 AM, Rob Clark wrote:
> This series introduces gen8 devcoredump support.  Compared to previous
> gens, it:
> 
> 1. Switches to generated tables.  Compared to hand modifying headers from
>    kgsl (which were originally generated, then adjusted a bit by hand before
>    adding to kgsl tree.  And then copied to drm/msm and lightly modified
>    some more in the process).
> 
>    In the process, we also switch to generated cp_protect tables.
> 
> 2. Aligns to the "snapshot" format that kgsl/etc use for hw state capture.
>    The non-generation specific bits (SMMU fault info, capturing relevant
>    BOs, etc) still works as before.  Everything gen8 specific gets encoded
>    as "snapshot" sections, ascii85 encoded in the resulting devcoredump
>    file (similar to captured BOs).
> 
> 3. Try to make it easier to at least compare kgsl snapshot code with
>    upstream, for porting fixes/etc.  State capture is tedious and mind-
>    numbing, and the last thing you want to do when debugging a GPU hang
>    is going down the rabbit hole of having to first debug gpu state
>    capture.
> 
>    However, I don't love kgsl_snapshot_add_section().  It does avoid
>    duplicating snapshot header stuff everywhere.  But the ergonomics
>    are not great.  So instead I went with "align with what I wish kgsl
>    looked like..
> 
> The mesa/crashdec side of this is at:
> 
>    https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/45304
> 
> I'd appreciate tested-by's on Hawi, Maili, Milos, and Pakala, since I

I will help with Hawi and Maili.

-Akhil

> don't have these devices at-hand to test myself.  To test devcoredump,
> you can use the msm_recovery test in igt.. or just:
> 
>   cat /sys/kernel/debug/dri/*/gpu > /dev/null
> 
> NOTE: I'm still tracking down some descrepancies compared to kgsl.  I
>       think at least we should be matching on the excluded access-
>       protected regs, so hopefully collecting a devcoredump doesn't
>       make things go boom.  Tested on glymur (windows fw) and on
>       kaanapali MTP (android fw).
> 
> NOTE: Uses $codename for generated file/table names, rather than continue
>       to perpetuate the equally meaningless gen8_x_y naming from kgsl into 
>       upstream.  At least the codenames are familiar upstream and this
>       removes an extra level of name translation.
> 
> v6:
> - Fix gx_is_on() check
> - Only capture preemption records if preemption is enabled
> - Link to v5: https://lore.kernel.org/all/20261102220405.30730-1-robin.clark@oss.qualcomm.com/
> 
> v5:
> - Fix inverted IS_ERR_OR_NULL() check
> - Drop IFPC fixes (moved to their own series)
> - Link to v4: https://lore.kernel.org/all/20261030211928.45761-1-robin.clark@oss.qualcomm.com/
> 
> v4:
> - Drop RB_GC_GMEM_PROTECT from nonctx list, now that we are computing
>   the value directly
> - Add missing 'break' in switch
> - Move RBBM_MISC_STATUS read to after we check GX is on
> - Rename sysprof_setup
> - Add cleanup.h support for disabling IFPC, and use it in debugfs
>   snapshot path
> - Collect tags
> - Link to v3: https://lore.kernel.org/all/20261029201730.151754-1-robin.clark@oss.qualcomm.com/
> 
> v3:
> - Drop generated nonctx list for now
> - Exclude access protected registers
> - Shuffle around some debugbus blocks to match kgsl
> - Use CP_PROTECT_PIPE regs to pickup the extra spans if we exceed the
>   64 CP_PROTECT_GLOBAL regs
> - Inhibit IFPC for gpu debugfs dump
> - Fix cx_dbgc capture
> - Misc other small fixes
> - Link to v2: https://lore.kernel.org/all/20261021204244.67160-1-robin.clark@oss.qualcomm.com/
> 
> v2:
> - Fix incorrect protect list for Kaanapali
> - Use __free() for snapshot_sect finalization
> - Fix missing early return error path in gen8_snapshot_mempool()
> - Fix aperture setting in gen8_legacy_snapshot_mvc()
> - Fix first_slice in gen8_snapshot_mempool()
> - Remove GBIF regs in generated nonctx list
> - Link to v1: https://lore.kernel.org/all/20261020204728.28844-1-robin.clark@oss.qualcomm.com/
> 
> Rob Clark (15):
>   drm/msm: Import adreno_snapshot.h
>   drm/msm/a8xx: Export aperture helpers
>   drm/msm/a8xx: Add a8xx_aperture_acquire_raw()
>   drm/msm/a8xx: Export slice helper
>   drm/msm/a8xx: Add missing a850 ifpc reglist entries
>   drm/msm/a8xx: Allow nonctx reglist to include GMU regs
>   drm/msm/a8xx: Stop getting GMEM_PROTECT from nonctx list
>   drm/msm/adreno: Fix PROTECT span length
>   drm/msm/adreno: add temporary __maybe_unused
>   drm/msm/a8xx: Import generated headers
>   drm/msm/a8xx: devcoredump state capture support
>   drm/msm/a8xx: Add all CP_PROTECT_PIPE to pwrup reglist
>   drm/msm/a8xx: Use CP_PROTECT_PIPE regs
>   drm/msm/a8xx: Switch to generated protect regs
>   drm/msm/adreno: Remove temporary __maybe_unused
> 
>  drivers/gpu/drm/msm/Makefile                  |    4 +-
>  drivers/gpu/drm/msm/adreno/a6xx_gpu.c         |    7 +
>  drivers/gpu/drm/msm/adreno/a6xx_gpu.h         |   14 +-
>  drivers/gpu/drm/msm/adreno/a8xx_catalog.c     |  404 +--
>  drivers/gpu/drm/msm/adreno/a8xx_gpu.c         |   65 +-
>  drivers/gpu/drm/msm/adreno/a8xx_gpu_state.c   | 1403 ++++++++++
>  .../gpu/drm/msm/adreno/adreno_gen8_snapshot.h |  576 ++++
>  drivers/gpu/drm/msm/adreno/adreno_gpu.h       |    2 +
>  drivers/gpu/drm/msm/adreno/adreno_snapshot.h  |  530 ++++
>  .../drm/msm/adreno/catalog/adreno_glymur.h    | 2307 ++++++++++++++++
>  .../gpu/drm/msm/adreno/catalog/adreno_hawi.h  | 2387 +++++++++++++++++
>  .../drm/msm/adreno/catalog/adreno_kaanapali.h | 2317 ++++++++++++++++
>  .../gpu/drm/msm/adreno/catalog/adreno_maili.h | 1882 +++++++++++++
>  .../gpu/drm/msm/adreno/catalog/adreno_milos.h | 1977 ++++++++++++++
>  .../drm/msm/adreno/catalog/adreno_pakala.h    | 2161 +++++++++++++++
>  drivers/gpu/drm/msm/registers/adreno/a6xx.xml |    4 +
>  16 files changed, 15718 insertions(+), 322 deletions(-)
>  create mode 100644 drivers/gpu/drm/msm/adreno/a8xx_gpu_state.c
>  create mode 100644 drivers/gpu/drm/msm/adreno/adreno_gen8_snapshot.h
>  create mode 100644 drivers/gpu/drm/msm/adreno/adreno_snapshot.h
>  create mode 100644 drivers/gpu/drm/msm/adreno/catalog/adreno_glymur.h
>  create mode 100644 drivers/gpu/drm/msm/adreno/catalog/adreno_hawi.h
>  create mode 100644 drivers/gpu/drm/msm/adreno/catalog/adreno_kaanapali.h
>  create mode 100644 drivers/gpu/drm/msm/adreno/catalog/adreno_maili.h
>  create mode 100644 drivers/gpu/drm/msm/adreno/catalog/adreno_milos.h
>  create mode 100644 drivers/gpu/drm/msm/adreno/catalog/adreno_pakala.h
> 


      parent reply	other threads:[~2026-11-05 21:31 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-11-05 20:29 Rob Clark
2026-11-05 20:29 ` [PATCH v6 01/15] drm/msm: Import adreno_snapshot.h Rob Clark
2026-11-05 20:29 ` [PATCH v6 02/15] drm/msm/a8xx: Export aperture helpers Rob Clark
2026-11-05 21:32   ` Akhil P Oommen
2026-11-05 20:29 ` [PATCH v6 03/15] drm/msm/a8xx: Add a8xx_aperture_acquire_raw() Rob Clark
2026-11-05 21:38   ` Akhil P Oommen
2026-11-05 20:29 ` [PATCH v6 04/15] drm/msm/a8xx: Export slice helper Rob Clark
2026-11-05 21:38   ` Akhil P Oommen
2026-11-05 20:29 ` [PATCH v6 05/15] drm/msm/a8xx: Add missing a850 ifpc reglist entries Rob Clark
2026-11-05 21:39   ` Akhil P Oommen
2026-11-05 20:29 ` [PATCH v6 06/15] drm/msm/a8xx: Allow nonctx reglist to include GMU regs Rob Clark
2026-11-05 21:44   ` Akhil P Oommen
2026-11-05 20:29 ` [PATCH v6 07/15] drm/msm/a8xx: Stop getting GMEM_PROTECT from nonctx list Rob Clark
2026-11-05 21:58   ` Akhil P Oommen
2026-11-05 20:29 ` [PATCH v6 08/15] drm/msm/adreno: Fix PROTECT span length Rob Clark
2026-11-05 22:00   ` Akhil P Oommen
2026-11-05 20:29 ` [PATCH v6 09/15] drm/msm/adreno: add temporary __maybe_unused Rob Clark
2026-11-05 20:29 ` [PATCH v6 10/15] drm/msm/a8xx: Import generated headers Rob Clark
2026-11-05 20:29 ` [PATCH v6 11/15] drm/msm/a8xx: devcoredump state capture support Rob Clark
2026-11-05 20:29 ` [PATCH v6 12/15] drm/msm/a8xx: Add all CP_PROTECT_PIPE to pwrup reglist Rob Clark
2026-11-05 20:29 ` [PATCH v6 13/15] drm/msm/a8xx: Use CP_PROTECT_PIPE regs Rob Clark
2026-11-05 20:29 ` [PATCH v6 14/15] drm/msm/a8xx: Switch to generated protect regs Rob Clark
2026-11-05 20:29 ` [PATCH v6 15/15] drm/msm/adreno: Remove temporary __maybe_unused Rob Clark
2026-11-05 21:31 ` Akhil P Oommen [this message]

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=e1c19166-9abd-4a35-b532-a3287bfe7607@oss.qualcomm.com \
    --to=akhilpo@oss.qualcomm.com \
    --cc=abhinav.kumar@linux.dev \
    --cc=airlied@gmail.com \
    --cc=akoskovich@pm.me \
    --cc=bvalluru@qti.qualcomm.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=freedreno@lists.freedesktop.org \
    --cc=jesszhan0024@gmail.com \
    --cc=jie.zhang@oss.qualcomm.com \
    --cc=konradybcio@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lumag@kernel.org \
    --cc=marijn.suijten@somainline.org \
    --cc=nicoangelodelacruz@gmail.com \
    --cc=robin.clark@oss.qualcomm.com \
    --cc=sean@poorly.run \
    --cc=simona@ffwll.ch \
    /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

all inboxes | Powered by JetHome®