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
>
prev 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®