From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Matthew Auld <matthew.auld@intel.com>
Cc: <intel-xe@lists.freedesktop.org>,
Matthew Brost <matthew.brost@intel.com>,
<stable@vger.kernel.org>
Subject: Re: [PATCH] drm/xe: handle flat ccs during hibernation on igpu
Date: Tue, 12 Nov 2024 12:51:15 -0500 [thread overview]
Message-ID: <ZzOVk1GGJEFagvdD@intel.com> (raw)
In-Reply-To: <20241112162827.116523-2-matthew.auld@intel.com>
On Tue, Nov 12, 2024 at 04:28:28PM +0000, Matthew Auld wrote:
> Starting from LNL, CCS has moved over to flat CCS model where there is
> now dedicated memory reserved for storing compression state. On
> platforms like LNL this reserved memory lives inside graphics stolen
> memory, which is not treated like normal RAM and is therefore skipped by
> the core kernel when creating the hibernation image. Currently if
> something was compressed and we enter hibernation all the corresponding
> CCS state is lost on such HW, resulting in corrupted memory. To fix this
> evict user buffers from TT -> SYSTEM to ensure we take a snapshot of the
> raw CCS state when entering hibernation, where upon resuming we can
> restore the raw CCS state back when next validating the buffer. This has
> been confirmed to fix display corruption on LNL when coming back from
> hibernation.
>
> Fixes: cbdc52c11c9b ("drm/xe/xe2: Support flat ccs")
> Link: https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/3409
> Signed-off-by: Matthew Auld <matthew.auld@intel.com>
> Cc: Matthew Brost <matthew.brost@intel.com>
> Cc: <stable@vger.kernel.org> # v6.8+
> ---
> drivers/gpu/drm/xe/xe_bo_evict.c | 13 ++++++++++++-
> 1 file changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/xe/xe_bo_evict.c b/drivers/gpu/drm/xe/xe_bo_evict.c
> index b01bc20eb90b..8fb2be061003 100644
> --- a/drivers/gpu/drm/xe/xe_bo_evict.c
> +++ b/drivers/gpu/drm/xe/xe_bo_evict.c
> @@ -35,10 +35,21 @@ int xe_bo_evict_all(struct xe_device *xe)
> int ret;
>
> /* User memory */
> - for (mem_type = XE_PL_VRAM0; mem_type <= XE_PL_VRAM1; ++mem_type) {
> + for (mem_type = XE_PL_TT; mem_type <= XE_PL_VRAM1; ++mem_type) {
> struct ttm_resource_manager *man =
> ttm_manager_type(bdev, mem_type);
>
> + /*
> + * On igpu platforms with flat CCS we need to ensure we save and restore any CCS
> + * state since this state lives inside graphics stolen memory which doesn't survive
> + * hibernation.
> + *
> + * This can be further improved by only evicting objects that we know have actually
> + * used a compression enabled PAT index.
yeap, but for now let's keep it simple...
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> + */
> + if (mem_type == XE_PL_TT && (IS_DGFX(xe) || !xe_device_has_flat_ccs(xe)))
> + continue;
> +
> if (man) {
> ret = ttm_resource_manager_evict_all(bdev, man);
> if (ret)
> --
> 2.47.0
>
next prev parent reply other threads:[~2024-11-12 17:51 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-12 16:28 [PATCH] drm/xe: handle flat ccs during hibernation on igpu Matthew Auld
2024-11-12 17:51 ` Rodrigo Vivi [this message]
2024-11-13 7:14 ` ✓ CI.Patch_applied: success for " Patchwork
2024-11-13 7:14 ` ✓ CI.checkpatch: " Patchwork
2024-11-13 7:16 ` ✓ CI.KUnit: " Patchwork
2024-11-13 7:27 ` ✓ CI.Build: " Patchwork
2024-11-13 7:29 ` ✓ CI.Hooks: " Patchwork
2024-11-13 7:31 ` ✓ CI.checksparse: " Patchwork
2024-11-13 7:50 ` ✓ CI.BAT: " Patchwork
2024-11-13 9:26 ` ✗ 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=ZzOVk1GGJEFagvdD@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=matthew.auld@intel.com \
--cc=matthew.brost@intel.com \
--cc=stable@vger.kernel.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.