diff mbox series

[v2] drm/i915/guc: Enable PXP GuC autoteardown flow

Message ID 20240906174038.1468026-1-John.C.Harrison@Intel.com (mailing list archive)
State New, archived
Headers show
Series [v2] drm/i915/guc: Enable PXP GuC autoteardown flow | expand

Commit Message

John Harrison Sept. 6, 2024, 5:40 p.m. UTC
From: Juston Li <juston.li@intel.com>

This feature flag enables GuC autoteardown which allows for a grace
period before session teardown.

Also add a HAS_PXP() helper to share with the other place that wants
to check.

Signed-off-by: Juston Li <juston.li@intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
---
 drivers/gpu/drm/i915/gt/uc/intel_guc.c      | 8 ++++++++
 drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 1 +
 drivers/gpu/drm/i915/i915_drv.h             | 3 +++
 drivers/gpu/drm/i915/pxp/intel_pxp.c        | 2 +-
 4 files changed, 13 insertions(+), 1 deletion(-)

Comments

Teres Alexis, Alan Previn Sept. 6, 2024, 5:52 p.m. UTC | #1
LGTM:

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

On Fri, 2024-09-06 at 10:40 -0700, John.C.Harrison@Intel.com wrote:
> From: Juston Li <juston.li@intel.com>
> 
> This feature flag enables GuC autoteardown which allows for a grace
> period before session teardown.
> 
> Also add a HAS_PXP() helper to share with the other place that wants
> to check.
> 
> Signed-off-by: Juston Li <juston.li@intel.com>
> Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
> ---
>  drivers/gpu/drm/i915/gt/uc/intel_guc.c      | 8 ++++++++
>  drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h | 1 +
>  drivers/gpu/drm/i915/i915_drv.h             | 3 +++
>  drivers/gpu/drm/i915/pxp/intel_pxp.c        | 2 +-
>  4 files changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> index 097fc6bd1285e..5949ff0b0161f 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
> @@ -239,8 +239,16 @@ static u32 guc_ctl_debug_flags(struct intel_guc *guc)
>  
>  static u32 guc_ctl_feature_flags(struct intel_guc *guc)
>  {
> +       struct intel_gt *gt = guc_to_gt(guc);
>         u32 flags = 0;
>  
> +       /*
> +        * Enable PXP GuC autoteardown flow.
> +        * NB: MTL does things differently.
> +        */
> +       if (HAS_PXP(gt->i915) && !IS_METEORLAKE(gt->i915))
> +               flags |= GUC_CTL_ENABLE_GUC_PXP_CTL;
> +
>         if (!intel_guc_submission_is_used(guc))
>                 flags |= GUC_CTL_DISABLE_SCHEDULER;
>  
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
> index 263c9c3f6a034..4ce6e2332a63f 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
> @@ -105,6 +105,7 @@
>  #define   GUC_WA_ENABLE_TSC_CHECK_ON_RC6       BIT(22)
>  
>  #define GUC_CTL_FEATURE                        2
> +#define   GUC_CTL_ENABLE_GUC_PXP_CTL   BIT(1)
>  #define   GUC_CTL_ENABLE_SLPC          BIT(2)
>  #define   GUC_CTL_DISABLE_SCHEDULER    BIT(14)
>  
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 39f6614a0a99a..faeba9732422f 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -693,6 +693,9 @@ IS_SUBPLATFORM(const struct drm_i915_private *i915,
>  
>  #define HAS_RPS(i915)  (INTEL_INFO(i915)->has_rps)
>  
> +#define HAS_PXP(i915) \
> +       (IS_ENABLED(CONFIG_DRM_I915_PXP) && INTEL_INFO(i915)->has_pxp)
> +
>  #define HAS_HECI_PXP(i915) \
>         (INTEL_INFO(i915)->has_heci_pxp)
>  
> diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.c b/drivers/gpu/drm/i915/pxp/intel_pxp.c
> index 75278e78ca90e..5e0bf776aac0f 100644
> --- a/drivers/gpu/drm/i915/pxp/intel_pxp.c
> +++ b/drivers/gpu/drm/i915/pxp/intel_pxp.c
> @@ -170,7 +170,7 @@ static struct intel_gt *find_gt_for_required_teelink(struct drm_i915_private *i9
>  
>  static struct intel_gt *find_gt_for_required_protected_content(struct drm_i915_private *i915)
>  {
> -       if (!IS_ENABLED(CONFIG_DRM_I915_PXP) || !INTEL_INFO(i915)->has_pxp)
> +       if (!HAS_PXP(i915))
>                 return NULL;
>  
>         /*
John Harrison Oct. 14, 2024, 7:51 p.m. UTC | #2
On 9/18/2024 12:32, Patchwork wrote:
> Project List - Patchwork *Patch Details*
> *Series:* 	drm/i915/guc: Enable PXP GuC autoteardown flow (rev2)
> *URL:* 	https://patchwork.freedesktop.org/series/138337/
> *State:* 	failure
> *Details:* 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v2/index.html
>
>
>   CI Bug Log - changes from CI_DRM_15437 -> Patchwork_138337v2
>
>
>     Summary
>
> *FAILURE*
>
> Serious unknown changes coming with Patchwork_138337v2 absolutely need 
> to be
> verified manually.
>
> If you think the reported changes have nothing to do with the changes
> introduced in Patchwork_138337v2, please notify your bug team 
> (I915-ci-infra@lists.freedesktop.org) to allow them
> to document this new failure mode, which will reduce false positives 
> in CI.
>
> External URL: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v2/index.html
>
>
>     Participating hosts (38 -> 36)
>
> Additional (2): fi-kbl-8809g bat-mtlp-6
> Missing (4): bat-mtlp-8 fi-elk-e7500 fi-snb-2520m fi-bsw-n3050
>
>
>     Possible new issues
>
> Here are the unknown changes that may have been introduced in 
> Patchwork_138337v2:
>
>
>       IGT changes
>
>
>         Possible regressions
>
>   * igt@i915_selftest@live@memory_region:
>       o bat-arls-1: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15437/bat-arls-1/igt@i915_selftest@live@memory_region.html>
>         -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v2/bat-arls-1/igt@i915_selftest@live@memory_region.html>
>
Known issue:
https://gitlab.freedesktop.org/drm/intel/issues/10341

John.
John Harrison Oct. 14, 2024, 7:52 p.m. UTC | #3
On 9/26/2024 18:54, Patchwork wrote:
> Project List - Patchwork *Patch Details*
> *Series:* 	drm/i915/guc: Enable PXP GuC autoteardown flow (rev3)
> *URL:* 	https://patchwork.freedesktop.org/series/138337/
> *State:* 	failure
> *Details:* 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/index.html
>
>
>   CI Bug Log - changes from CI_DRM_15449_full -> Patchwork_138337v3_full
>
>
>     Summary
>
> *FAILURE*
>
> Serious unknown changes coming with Patchwork_138337v3_full absolutely 
> need to be
> verified manually.
>
> If you think the reported changes have nothing to do with the changes
> introduced in Patchwork_138337v3_full, please notify your bug team 
> (I915-ci-infra@lists.freedesktop.org) to allow them
> to document this new failure mode, which will reduce false positives 
> in CI.
>
>
>     Participating hosts (8 -> 8)
>
> Additional (1): shard-tglu-1
> Missing (1): shard-snb-0
>
>
>     Possible new issues
>
> Here are the unknown changes that may have been introduced in 
> Patchwork_138337v3_full:
>
>
>       IGT changes
>
>
>         Possible regressions
>
>  *
>
>     igt@gem_exec_balancer@waits:
>
>       o shard-glk: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15449/shard-glk8/igt@gem_exec_balancer@waits.html>
>         -> INCOMPLETE
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-glk3/igt@gem_exec_balancer@waits.html>
>  *
>
>     igt@kms_cursor_crc@cursor-onscreen-512x512:
>
>       o shard-tglu: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-tglu-8/igt@kms_cursor_crc@cursor-onscreen-512x512.html>
>         +26 other tests skip
>  *
>
>     igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt:
>
>       o shard-dg2: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-dg2-10/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-mmap-gtt.html>
>         +2 other tests skip
>  *
>
>     igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc:
>
>       o shard-dg1: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-dg1-17/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-mmap-wc.html>
>         +3 other tests skip
>  *
>
>     igt@kms_pipe_crc_basic@disable-crc-after-crtc:
>
>       o shard-tglu: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15449/shard-tglu-3/igt@kms_pipe_crc_basic@disable-crc-after-crtc.html>
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-tglu-8/igt@kms_pipe_crc_basic@disable-crc-after-crtc.html>
>         +14 other tests skip
>  *
>
>     igt@kms_psr2_sf@fbc-primary-plane-update-sf-dmg-area:
>
>       o shard-rkl: NOTRUN -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-rkl-4/igt@kms_psr2_sf@fbc-primary-plane-update-sf-dmg-area.html>
>         +4 other tests skip
>
>
>         Warnings
>
>  *
>
>     igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels:
>
>       o shard-tglu: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15449/shard-tglu-3/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html>
>         (i915#1769
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769>
>         / i915#3555
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555>)
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-tglu-8/igt@kms_atomic_transition@plane-all-modeset-transition-fencing-internal-panels.html>
>  *
>
>     igt@kms_big_fb@4-tiled-64bpp-rotate-180:
>
>       o shard-tglu: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15449/shard-tglu-3/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html>
>         (i915#5286
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286>)
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-tglu-8/igt@kms_big_fb@4-tiled-64bpp-rotate-180.html>
>         +1 other test skip
>  *
>
>     igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs:
>
>       o shard-tglu: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15449/shard-tglu-3/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs.html>
>         (i915#6095
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095>)
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-tglu-8/igt@kms_ccs@bad-rotation-90-4-tiled-mtl-rc-ccs.html>
>         +1 other test skip
>  *
>
>     igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs:
>
>       o shard-tglu: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15449/shard-tglu-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html>
>         (i915#12042
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12042>)
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-tglu-8/igt@kms_ccs@crc-primary-rotation-180-4-tiled-lnl-ccs.html>
>  *
>
>     igt@kms_content_protection@lic-type-1:
>
>       o shard-tglu: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15449/shard-tglu-3/igt@kms_content_protection@lic-type-1.html>
>         (i915#6944
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6944>
>         / i915#9424
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424>)
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-tglu-8/igt@kms_content_protection@lic-type-1.html>
>  *
>
>     igt@kms_cursor_crc@cursor-onscreen-32x32:
>
>       o shard-tglu: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15449/shard-tglu-3/igt@kms_cursor_crc@cursor-onscreen-32x32.html>
>         (i915#3555
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555>)
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-tglu-8/igt@kms_cursor_crc@cursor-onscreen-32x32.html>
>  *
>
>     igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc:
>
>       o shard-dg2: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15449/shard-dg2-2/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc.html>
>         (i915#5354
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354>)
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-dg2-10/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-wc.html>
>  *
>
>     igt@kms_vrr@lobf:
>
>       o shard-tglu: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15449/shard-tglu-3/igt@kms_vrr@lobf.html>
>         (i915#11920
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920>)
>         -> SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v3/shard-tglu-8/igt@kms_vrr@lobf.html>
>
This is a MTL/ARL only change which means no effect on any of the above 
systems.

John.
John Harrison Oct. 14, 2024, 7:55 p.m. UTC | #4
On 10/12/2024 08:34, Patchwork wrote:
> Project List - Patchwork *Patch Details*
> *Series:* 	drm/i915/guc: Enable PXP GuC autoteardown flow (rev4)
> *URL:* 	https://patchwork.freedesktop.org/series/138337/
> *State:* 	failure
> *Details:* 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v4/index.html
>
>
>   CI Bug Log - changes from CI_DRM_15519_full -> Patchwork_138337v4_full
>
>
>     Summary
>
> *FAILURE*
>
> Serious unknown changes coming with Patchwork_138337v4_full absolutely 
> need to be
> verified manually.
>
> If you think the reported changes have nothing to do with the changes
> introduced in Patchwork_138337v4_full, please notify your bug team 
> (I915-ci-infra@lists.freedesktop.org) to allow them
> to document this new failure mode, which will reduce false positives 
> in CI.
>
>
>     Participating hosts (10 -> 8)
>
> Missing (2): shard-dg2-set2 shard-glk-0
>
>
>     Possible new issues
>
> Here are the unknown changes that may have been introduced in 
> Patchwork_138337v4_full:
>
>
>       IGT changes
>
>
>         Possible regressions
>
>   * igt@gem_exec_balancer@nop:
>       o shard-mtlp: PASS
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15519/shard-mtlp-3/igt@gem_exec_balancer@nop.html>
>         -> DMESG-WARN
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v4/shard-mtlp-2/igt@gem_exec_balancer@nop.html>
>
Slow TLB invalidation processing (in both cases the completion message 
was received a fraction of a second after the timeout fired). Not 
related to PXP.

>  *
>
>
>         Warnings
>
>   * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf:
>       o shard-mtlp: SKIP
>         <https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15519/shard-mtlp-2/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf.html>
>         (i915#12316
>         <https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12316>)
>         -> FAIL
>         <https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_138337v4/shard-mtlp-3/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-sf.html>
>
Unstable display test, not related to PXP.

John.
diff mbox series

Patch

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
index 097fc6bd1285e..5949ff0b0161f 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.c
@@ -239,8 +239,16 @@  static u32 guc_ctl_debug_flags(struct intel_guc *guc)
 
 static u32 guc_ctl_feature_flags(struct intel_guc *guc)
 {
+	struct intel_gt *gt = guc_to_gt(guc);
 	u32 flags = 0;
 
+	/*
+	 * Enable PXP GuC autoteardown flow.
+	 * NB: MTL does things differently.
+	 */
+	if (HAS_PXP(gt->i915) && !IS_METEORLAKE(gt->i915))
+		flags |= GUC_CTL_ENABLE_GUC_PXP_CTL;
+
 	if (!intel_guc_submission_is_used(guc))
 		flags |= GUC_CTL_DISABLE_SCHEDULER;
 
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
index 263c9c3f6a034..4ce6e2332a63f 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_fwif.h
@@ -105,6 +105,7 @@ 
 #define   GUC_WA_ENABLE_TSC_CHECK_ON_RC6	BIT(22)
 
 #define GUC_CTL_FEATURE			2
+#define   GUC_CTL_ENABLE_GUC_PXP_CTL	BIT(1)
 #define   GUC_CTL_ENABLE_SLPC		BIT(2)
 #define   GUC_CTL_DISABLE_SCHEDULER	BIT(14)
 
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 39f6614a0a99a..faeba9732422f 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -693,6 +693,9 @@  IS_SUBPLATFORM(const struct drm_i915_private *i915,
 
 #define HAS_RPS(i915)	(INTEL_INFO(i915)->has_rps)
 
+#define HAS_PXP(i915) \
+	(IS_ENABLED(CONFIG_DRM_I915_PXP) && INTEL_INFO(i915)->has_pxp)
+
 #define HAS_HECI_PXP(i915) \
 	(INTEL_INFO(i915)->has_heci_pxp)
 
diff --git a/drivers/gpu/drm/i915/pxp/intel_pxp.c b/drivers/gpu/drm/i915/pxp/intel_pxp.c
index 75278e78ca90e..5e0bf776aac0f 100644
--- a/drivers/gpu/drm/i915/pxp/intel_pxp.c
+++ b/drivers/gpu/drm/i915/pxp/intel_pxp.c
@@ -170,7 +170,7 @@  static struct intel_gt *find_gt_for_required_teelink(struct drm_i915_private *i9
 
 static struct intel_gt *find_gt_for_required_protected_content(struct drm_i915_private *i915)
 {
-	if (!IS_ENABLED(CONFIG_DRM_I915_PXP) || !INTEL_INFO(i915)->has_pxp)
+	if (!HAS_PXP(i915))
 		return NULL;
 
 	/*