* [PATCH v2] drm/i915/slpc: Use platform limits for min/max frequency
@ 2022-10-13 15:55 ` Vinay Belgaumkar
0 siblings, 0 replies; 10+ messages in thread
From: Vinay Belgaumkar @ 2022-10-13 15:55 UTC (permalink / raw)
To: intel-gfx, dri-devel; +Cc: Vinay Belgaumkar, Nirmoy Das
GuC will set the min/max frequencies to theoretical max on
ATS-M. This will break kernel ABI, so limit min/max frequency
to RP0(platform max) instead.
Also modify the SLPC selftest to update the min frequency
when we have a server part so that we can iterate between
platform min and max.
v2: Check softlimits instead of platform limits(Riana)
Bug: https://gitlab.freedesktop.org/drm/intel/-/issues/7030
Acked-by: Nirmoy Das <nirmoy.das@intel.com>
Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
---
drivers/gpu/drm/i915/gt/selftest_slpc.c | 40 +++++++++++++------
drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 29 ++++++++++++++
.../gpu/drm/i915/gt/uc/intel_guc_slpc_types.h | 3 ++
3 files changed, 60 insertions(+), 12 deletions(-)
diff --git a/drivers/gpu/drm/i915/gt/selftest_slpc.c b/drivers/gpu/drm/i915/gt/selftest_slpc.c
index 4c6e9257e593..e42bc215e54d 100644
--- a/drivers/gpu/drm/i915/gt/selftest_slpc.c
+++ b/drivers/gpu/drm/i915/gt/selftest_slpc.c
@@ -234,6 +234,7 @@ static int run_test(struct intel_gt *gt, int test_type)
enum intel_engine_id id;
struct igt_spinner spin;
u32 slpc_min_freq, slpc_max_freq;
+ u32 saved_min_freq;
int err = 0;
if (!intel_uc_uses_guc_slpc(>->uc))
@@ -252,20 +253,35 @@ static int run_test(struct intel_gt *gt, int test_type)
return -EIO;
}
- /*
- * FIXME: With efficient frequency enabled, GuC can request
- * frequencies higher than the SLPC max. While this is fixed
- * in GuC, we level set these tests with RPn as min.
- */
- err = slpc_set_min_freq(slpc, slpc->min_freq);
- if (err)
- return err;
+ if (slpc_min_freq == slpc_max_freq) {
+ /* Server parts will have min/max clamped to RP0 */
+ if (slpc->min_is_rpmax) {
+ err = slpc_set_min_freq(slpc, slpc->min_freq);
+ if (err) {
+ pr_err("Unable to update min freq on server part");
+ return err;
+ }
- if (slpc->min_freq == slpc->rp0_freq) {
- pr_err("Min/Max are fused to the same value\n");
- return -EINVAL;
+ } else {
+ pr_err("Min/Max are fused to the same value\n");
+ return -EINVAL;
+ }
+ } else {
+ /*
+ * FIXME: With efficient frequency enabled, GuC can request
+ * frequencies higher than the SLPC max. While this is fixed
+ * in GuC, we level set these tests with RPn as min.
+ */
+ err = slpc_set_min_freq(slpc, slpc->min_freq);
+ if (err)
+ return err;
}
+ saved_min_freq = slpc_min_freq;
+
+ /* New temp min freq = RPn */
+ slpc_min_freq = slpc->min_freq;
+
intel_gt_pm_wait_for_idle(gt);
intel_gt_pm_get(gt);
for_each_engine(engine, gt, id) {
@@ -347,7 +363,7 @@ static int run_test(struct intel_gt *gt, int test_type)
/* Restore min/max frequencies */
slpc_set_max_freq(slpc, slpc_max_freq);
- slpc_set_min_freq(slpc, slpc_min_freq);
+ slpc_set_min_freq(slpc, saved_min_freq);
if (igt_flush_test(gt->i915))
err = -EIO;
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
index fdd895f73f9f..11613d373a49 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
@@ -263,6 +263,7 @@ int intel_guc_slpc_init(struct intel_guc_slpc *slpc)
slpc->max_freq_softlimit = 0;
slpc->min_freq_softlimit = 0;
+ slpc->min_is_rpmax = false;
slpc->boost_freq = 0;
atomic_set(&slpc->num_waiters, 0);
@@ -588,6 +589,31 @@ static int slpc_set_softlimits(struct intel_guc_slpc *slpc)
return 0;
}
+static bool is_slpc_min_freq_rpmax(struct intel_guc_slpc *slpc)
+{
+ int slpc_min_freq;
+
+ if (intel_guc_slpc_get_min_freq(slpc, &slpc_min_freq))
+ return false;
+
+ if (slpc_min_freq > slpc->rp0_freq)
+ return true;
+ else
+ return false;
+}
+
+static void update_server_min_softlimit(struct intel_guc_slpc *slpc)
+{
+ /* For server parts, SLPC min will be at RPMax.
+ * Use min softlimit to clamp it to RP0 instead.
+ */
+ if (is_slpc_min_freq_rpmax(slpc) &&
+ !slpc->min_freq_softlimit) {
+ slpc->min_is_rpmax = true;
+ slpc->min_freq_softlimit = slpc->rp0_freq;
+ }
+}
+
static int slpc_use_fused_rp0(struct intel_guc_slpc *slpc)
{
/* Force SLPC to used platform rp0 */
@@ -647,6 +673,9 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
slpc_get_rp_values(slpc);
+ /* Handle the case where min=max=RPmax */
+ update_server_min_softlimit(slpc);
+
/* Set SLPC max limit to RP0 */
ret = slpc_use_fused_rp0(slpc);
if (unlikely(ret)) {
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
index 73d208123528..a6ef53b04e04 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
@@ -19,6 +19,9 @@ struct intel_guc_slpc {
bool supported;
bool selected;
+ /* Indicates this is a server part */
+ bool min_is_rpmax;
+
/* platform frequency limits */
u32 min_freq;
u32 rp0_freq;
--
2.35.1
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [Intel-gfx] [PATCH v2] drm/i915/slpc: Use platform limits for min/max frequency
2022-10-13 15:55 ` Vinay Belgaumkar
(?)
@ 2022-10-13 17:13 ` Tauro, Riana
-1 siblings, 0 replies; 10+ messages in thread
From: Tauro, Riana @ 2022-10-13 17:13 UTC (permalink / raw)
To: Vinay Belgaumkar, intel-gfx, dri-devel, Nirmoy Das
On 10/13/2022 9:25 PM, Vinay Belgaumkar wrote:
> GuC will set the min/max frequencies to theoretical max on
> ATS-M. This will break kernel ABI, so limit min/max frequency
> to RP0(platform max) instead.
>
> Also modify the SLPC selftest to update the min frequency
> when we have a server part so that we can iterate between
> platform min and max.
>
> v2: Check softlimits instead of platform limits(Riana)
>
> Bug: https://gitlab.freedesktop.org/drm/intel/-/issues/7030
>
> Acked-by: Nirmoy Das <nirmoy.das@intel.com>
> Signed-off-by: Vinay Belgaumkar <vinay.belgaumkar@intel.com>
Reviewed-by: Riana Tauro <riana.tauro@intel.com>
> ---
> drivers/gpu/drm/i915/gt/selftest_slpc.c | 40 +++++++++++++------
> drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c | 29 ++++++++++++++
> .../gpu/drm/i915/gt/uc/intel_guc_slpc_types.h | 3 ++
> 3 files changed, 60 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gt/selftest_slpc.c b/drivers/gpu/drm/i915/gt/selftest_slpc.c
> index 4c6e9257e593..e42bc215e54d 100644
> --- a/drivers/gpu/drm/i915/gt/selftest_slpc.c
> +++ b/drivers/gpu/drm/i915/gt/selftest_slpc.c
> @@ -234,6 +234,7 @@ static int run_test(struct intel_gt *gt, int test_type)
> enum intel_engine_id id;
> struct igt_spinner spin;
> u32 slpc_min_freq, slpc_max_freq;
> + u32 saved_min_freq;
> int err = 0;
>
> if (!intel_uc_uses_guc_slpc(>->uc))
> @@ -252,20 +253,35 @@ static int run_test(struct intel_gt *gt, int test_type)
> return -EIO;
> }
>
> - /*
> - * FIXME: With efficient frequency enabled, GuC can request
> - * frequencies higher than the SLPC max. While this is fixed
> - * in GuC, we level set these tests with RPn as min.
> - */
> - err = slpc_set_min_freq(slpc, slpc->min_freq);
> - if (err)
> - return err;
> + if (slpc_min_freq == slpc_max_freq) {
> + /* Server parts will have min/max clamped to RP0 */
> + if (slpc->min_is_rpmax) {
> + err = slpc_set_min_freq(slpc, slpc->min_freq);
> + if (err) {
> + pr_err("Unable to update min freq on server part");
> + return err;
> + }
>
> - if (slpc->min_freq == slpc->rp0_freq) {
> - pr_err("Min/Max are fused to the same value\n");
> - return -EINVAL;
> + } else {
> + pr_err("Min/Max are fused to the same value\n");
> + return -EINVAL;
> + }
> + } else {
> + /*
> + * FIXME: With efficient frequency enabled, GuC can request
> + * frequencies higher than the SLPC max. While this is fixed
> + * in GuC, we level set these tests with RPn as min.
> + */
> + err = slpc_set_min_freq(slpc, slpc->min_freq);
> + if (err)
> + return err;
> }
>
> + saved_min_freq = slpc_min_freq;
> +
> + /* New temp min freq = RPn */
> + slpc_min_freq = slpc->min_freq;
> +
> intel_gt_pm_wait_for_idle(gt);
> intel_gt_pm_get(gt);
> for_each_engine(engine, gt, id) {
> @@ -347,7 +363,7 @@ static int run_test(struct intel_gt *gt, int test_type)
>
> /* Restore min/max frequencies */
> slpc_set_max_freq(slpc, slpc_max_freq);
> - slpc_set_min_freq(slpc, slpc_min_freq);
> + slpc_set_min_freq(slpc, saved_min_freq);
>
> if (igt_flush_test(gt->i915))
> err = -EIO;
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> index fdd895f73f9f..11613d373a49 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> @@ -263,6 +263,7 @@ int intel_guc_slpc_init(struct intel_guc_slpc *slpc)
>
> slpc->max_freq_softlimit = 0;
> slpc->min_freq_softlimit = 0;
> + slpc->min_is_rpmax = false;
>
> slpc->boost_freq = 0;
> atomic_set(&slpc->num_waiters, 0);
> @@ -588,6 +589,31 @@ static int slpc_set_softlimits(struct intel_guc_slpc *slpc)
> return 0;
> }
>
> +static bool is_slpc_min_freq_rpmax(struct intel_guc_slpc *slpc)
> +{
> + int slpc_min_freq;
> +
> + if (intel_guc_slpc_get_min_freq(slpc, &slpc_min_freq))
> + return false;
> +
> + if (slpc_min_freq > slpc->rp0_freq)
> + return true;
> + else
> + return false;
> +}
> +
> +static void update_server_min_softlimit(struct intel_guc_slpc *slpc)
> +{
> + /* For server parts, SLPC min will be at RPMax.
> + * Use min softlimit to clamp it to RP0 instead.
> + */
> + if (is_slpc_min_freq_rpmax(slpc) &&
> + !slpc->min_freq_softlimit) {
> + slpc->min_is_rpmax = true;
> + slpc->min_freq_softlimit = slpc->rp0_freq;
> + }
> +}
> +
> static int slpc_use_fused_rp0(struct intel_guc_slpc *slpc)
> {
> /* Force SLPC to used platform rp0 */
> @@ -647,6 +673,9 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
>
> slpc_get_rp_values(slpc);
>
> + /* Handle the case where min=max=RPmax */
> + update_server_min_softlimit(slpc);
> +
> /* Set SLPC max limit to RP0 */
> ret = slpc_use_fused_rp0(slpc);
> if (unlikely(ret)) {
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
> index 73d208123528..a6ef53b04e04 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
> @@ -19,6 +19,9 @@ struct intel_guc_slpc {
> bool supported;
> bool selected;
>
> + /* Indicates this is a server part */
> + bool min_is_rpmax;
> +
> /* platform frequency limits */
> u32 min_freq;
> u32 rp0_freq;
^ permalink raw reply [flat|nested] 10+ messages in thread* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/slpc: Use platform limits for min/max frequency (rev2)
2022-10-13 15:55 ` Vinay Belgaumkar
(?)
(?)
@ 2022-10-13 17:34 ` Patchwork
-1 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2022-10-13 17:34 UTC (permalink / raw)
To: Belgaumkar, Vinay; +Cc: intel-gfx
== Series Details ==
Series: drm/i915/slpc: Use platform limits for min/max frequency (rev2)
URL : https://patchwork.freedesktop.org/series/109632/
State : warning
== Summary ==
Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/slpc: Use platform limits for min/max frequency (rev2)
2022-10-13 15:55 ` Vinay Belgaumkar
` (2 preceding siblings ...)
(?)
@ 2022-10-13 18:44 ` Patchwork
-1 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2022-10-13 18:44 UTC (permalink / raw)
To: Belgaumkar, Vinay; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 10947 bytes --]
== Series Details ==
Series: drm/i915/slpc: Use platform limits for min/max frequency (rev2)
URL : https://patchwork.freedesktop.org/series/109632/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12242 -> Patchwork_109632v2
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/index.html
Participating hosts (45 -> 47)
------------------------------
Additional (4): fi-cml-u2 bat-atsm-1 fi-tgl-u2 fi-pnv-d510
Missing (2): fi-ilk-m540 fi-hsw-4200u
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_109632v2:
### IGT changes ###
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@gem_exec_suspend@basic-s0@smem:
- {fi-tgl-mst}: [DMESG-WARN][1] ([i915#1982] / [i915#5122]) -> [DMESG-WARN][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/fi-tgl-mst/igt@gem_exec_suspend@basic-s0@smem.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-tgl-mst/igt@gem_exec_suspend@basic-s0@smem.html
* igt@i915_selftest@live@requests:
- {bat-atsm-1}: NOTRUN -> [INCOMPLETE][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/bat-atsm-1/igt@i915_selftest@live@requests.html
* igt@kms_chamelium@dp-crc-fast:
- {bat-atsm-1}: NOTRUN -> [SKIP][4] +67 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/bat-atsm-1/igt@kms_chamelium@dp-crc-fast.html
Known issues
------------
Here are the changes found in Patchwork_109632v2 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_fence@basic-busy@bcs0:
- fi-cml-u2: NOTRUN -> [SKIP][5] ([i915#1208]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-cml-u2/igt@gem_exec_fence@basic-busy@bcs0.html
* igt@gem_exec_suspend@basic-s0@smem:
- fi-cml-u2: NOTRUN -> [DMESG-WARN][6] ([i915#5122])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-cml-u2/igt@gem_exec_suspend@basic-s0@smem.html
* igt@gem_huc_copy@huc-copy:
- fi-tgl-u2: NOTRUN -> [SKIP][7] ([i915#2190])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-tgl-u2/igt@gem_huc_copy@huc-copy.html
- fi-cml-u2: NOTRUN -> [SKIP][8] ([i915#2190])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-cml-u2/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@parallel-random-engines:
- fi-cml-u2: NOTRUN -> [SKIP][9] ([i915#4613]) +3 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-cml-u2/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@kms_chamelium@dp-crc-fast:
- fi-cml-u2: NOTRUN -> [SKIP][10] ([fdo#109284] / [fdo#111827]) +7 similar issues
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-cml-u2/igt@kms_chamelium@dp-crc-fast.html
* igt@kms_chamelium@hdmi-edid-read:
- fi-tgl-u2: NOTRUN -> [SKIP][11] ([fdo#109284] / [fdo#111827]) +7 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-tgl-u2/igt@kms_chamelium@hdmi-edid-read.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor:
- fi-cml-u2: NOTRUN -> [SKIP][12] ([i915#4213])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-cml-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html
- fi-tgl-u2: NOTRUN -> [SKIP][13] ([i915#4103])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-tgl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html
* igt@kms_force_connector_basic@force-load-detect:
- fi-cml-u2: NOTRUN -> [SKIP][14] ([fdo#109285])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-cml-u2/igt@kms_force_connector_basic@force-load-detect.html
- fi-tgl-u2: NOTRUN -> [SKIP][15] ([fdo#109285])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-tgl-u2/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_frontbuffer_tracking@basic:
- fi-cfl-8109u: [PASS][16] -> [DMESG-WARN][17] ([i915#62]) +14 similar issues
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-cfl-8109u/igt@kms_frontbuffer_tracking@basic.html
* igt@kms_psr@primary_page_flip:
- fi-pnv-d510: NOTRUN -> [SKIP][18] ([fdo#109271]) +43 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-pnv-d510/igt@kms_psr@primary_page_flip.html
* igt@kms_setmode@basic-clone-single-crtc:
- fi-cml-u2: NOTRUN -> [SKIP][19] ([i915#3555])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-cml-u2/igt@kms_setmode@basic-clone-single-crtc.html
- fi-tgl-u2: NOTRUN -> [SKIP][20] ([i915#3555])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-tgl-u2/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-userptr:
- fi-cml-u2: NOTRUN -> [SKIP][21] ([fdo#109295] / [i915#3301])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-cml-u2/igt@prime_vgem@basic-userptr.html
* igt@runner@aborted:
- fi-cml-u2: NOTRUN -> [FAIL][22] ([i915#4312])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-cml-u2/igt@runner@aborted.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s3@lmem0:
- {bat-dg2-11}: [DMESG-WARN][23] ([i915#6816]) -> [PASS][24]
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/bat-dg2-11/igt@gem_exec_suspend@basic-s3@lmem0.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/bat-dg2-11/igt@gem_exec_suspend@basic-s3@lmem0.html
* igt@i915_module_load@reload:
- {bat-rpls-2}: [DMESG-WARN][25] ([i915#5537]) -> [PASS][26]
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/bat-rpls-2/igt@i915_module_load@reload.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/bat-rpls-2/igt@i915_module_load@reload.html
* igt@i915_pm_rpm@basic-rte:
- {bat-rplp-1}: [DMESG-WARN][27] ([i915#7077]) -> [PASS][28]
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/bat-rplp-1/igt@i915_pm_rpm@basic-rte.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/bat-rplp-1/igt@i915_pm_rpm@basic-rte.html
* igt@i915_selftest@live@reset:
- {bat-rpls-1}: [DMESG-FAIL][29] ([i915#4983]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/bat-rpls-1/igt@i915_selftest@live@reset.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/bat-rpls-1/igt@i915_selftest@live@reset.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions:
- fi-bsw-kefka: [FAIL][31] ([i915#6298]) -> [PASS][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html
* igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-dp-3:
- {bat-dg2-11}: [FAIL][33] ([i915#6818]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-dp-3.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/bat-dg2-11/igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-dp-3.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1208]: https://gitlab.freedesktop.org/drm/intel/issues/1208
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122
[i915#5278]: https://gitlab.freedesktop.org/drm/intel/issues/5278
[i915#5537]: https://gitlab.freedesktop.org/drm/intel/issues/5537
[i915#62]: https://gitlab.freedesktop.org/drm/intel/issues/62
[i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6816]: https://gitlab.freedesktop.org/drm/intel/issues/6816
[i915#6818]: https://gitlab.freedesktop.org/drm/intel/issues/6818
[i915#7077]: https://gitlab.freedesktop.org/drm/intel/issues/7077
Build changes
-------------
* Linux: CI_DRM_12242 -> Patchwork_109632v2
CI-20190529: 20190529
CI_DRM_12242: 075a81b1efd29300194bdf7877e08b6dbe3079d9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7012: ca6f5bdd537d26692c4b1ca011b8c4f227d95703 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_109632v2: 075a81b1efd29300194bdf7877e08b6dbe3079d9 @ git://anongit.freedesktop.org/gfx-ci/linux
### Linux commits
0b7128ef3e9d drm/i915/slpc: Use platform limits for min/max frequency
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/index.html
[-- Attachment #2: Type: text/html, Size: 11862 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread* [Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/slpc: Use platform limits for min/max frequency (rev2)
2022-10-13 15:55 ` Vinay Belgaumkar
` (3 preceding siblings ...)
(?)
@ 2022-10-13 21:00 ` Patchwork
-1 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2022-10-13 21:00 UTC (permalink / raw)
To: Belgaumkar, Vinay; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 23200 bytes --]
== Series Details ==
Series: drm/i915/slpc: Use platform limits for min/max frequency (rev2)
URL : https://patchwork.freedesktop.org/series/109632/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_12242_full -> Patchwork_109632v2_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_109632v2_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_109632v2_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (9 -> 9)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_109632v2_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_exec_schedule@deep@vcs0:
- shard-skl: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl1/igt@gem_exec_schedule@deep@vcs0.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl5/igt@gem_exec_schedule@deep@vcs0.html
Known issues
------------
Here are the changes found in Patchwork_109632v2_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_eio@reset-stress:
- shard-tglb: [PASS][3] -> [FAIL][4] ([i915#5784])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-tglb5/igt@gem_eio@reset-stress.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-tglb3/igt@gem_eio@reset-stress.html
* igt@gem_exec_balancer@parallel-keep-in-fence:
- shard-iclb: [PASS][5] -> [SKIP][6] ([i915#4525]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb2/igt@gem_exec_balancer@parallel-keep-in-fence.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb3/igt@gem_exec_balancer@parallel-keep-in-fence.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-apl: [PASS][7] -> [FAIL][8] ([i915#2842])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl8/igt@gem_exec_fair@basic-pace-share@rcs0.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-apl3/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_lmem_swapping@heavy-random:
- shard-skl: NOTRUN -> [SKIP][9] ([fdo#109271] / [i915#4613]) +1 similar issue
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl1/igt@gem_lmem_swapping@heavy-random.html
* igt@gem_userptr_blits@dmabuf-sync:
- shard-skl: NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#3323])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl4/igt@gem_userptr_blits@dmabuf-sync.html
* igt@gen9_exec_parse@allowed-single:
- shard-apl: [PASS][11] -> [DMESG-WARN][12] ([i915#5566] / [i915#716])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl1/igt@gen9_exec_parse@allowed-single.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-apl7/igt@gen9_exec_parse@allowed-single.html
- shard-glk: [PASS][13] -> [DMESG-WARN][14] ([i915#5566] / [i915#716])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-glk3/igt@gen9_exec_parse@allowed-single.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-glk5/igt@gen9_exec_parse@allowed-single.html
* igt@i915_pipe_stress@stress-xrgb8888-untiled:
- shard-apl: NOTRUN -> [FAIL][15] ([i915#7036])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-apl1/igt@i915_pipe_stress@stress-xrgb8888-untiled.html
- shard-skl: NOTRUN -> [FAIL][16] ([i915#7036])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl6/igt@i915_pipe_stress@stress-xrgb8888-untiled.html
* igt@i915_pm_rpm@fences:
- shard-iclb: [PASS][17] -> [INCOMPLETE][18] ([i915#7057])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb8/igt@i915_pm_rpm@fences.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb7/igt@i915_pm_rpm@fences.html
* igt@i915_suspend@basic-s2idle-without-i915:
- shard-skl: [PASS][19] -> [DMESG-WARN][20] ([i915#1982])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl1/igt@i915_suspend@basic-s2idle-without-i915.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl5/igt@i915_suspend@basic-s2idle-without-i915.html
* igt@kms_addfb_basic@legacy-format:
- shard-tglb: [PASS][21] -> [INCOMPLETE][22] ([i915#6987])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-tglb5/igt@kms_addfb_basic@legacy-format.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-tglb3/igt@kms_addfb_basic@legacy-format.html
* igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs:
- shard-skl: NOTRUN -> [SKIP][23] ([fdo#109271] / [i915#3886]) +2 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl1/igt@kms_ccs@pipe-a-missing-ccs-buffer-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_rc_ccs_cc:
- shard-apl: NOTRUN -> [SKIP][24] ([fdo#109271] / [i915#3886]) +2 similar issues
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-apl1/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html
- shard-glk: NOTRUN -> [SKIP][25] ([fdo#109271] / [i915#3886])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-glk8/igt@kms_ccs@pipe-a-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-bad-rotation-90-4_tiled_dg2_rc_ccs_cc:
- shard-apl: NOTRUN -> [SKIP][26] ([fdo#109271]) +52 similar issues
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-apl1/igt@kms_ccs@pipe-b-bad-rotation-90-4_tiled_dg2_rc_ccs_cc.html
* igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs:
- shard-glk: NOTRUN -> [SKIP][27] ([fdo#109271]) +27 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-glk8/igt@kms_ccs@pipe-c-crc-sprite-planes-basic-4_tiled_dg2_rc_ccs.html
* igt@kms_chamelium@hdmi-hpd-storm:
- shard-apl: NOTRUN -> [SKIP][28] ([fdo#109271] / [fdo#111827]) +3 similar issues
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-apl1/igt@kms_chamelium@hdmi-hpd-storm.html
- shard-glk: NOTRUN -> [SKIP][29] ([fdo#109271] / [fdo#111827])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-glk8/igt@kms_chamelium@hdmi-hpd-storm.html
* igt@kms_chamelium@hdmi-hpd-with-enabled-mode:
- shard-skl: NOTRUN -> [SKIP][30] ([fdo#109271] / [fdo#111827]) +6 similar issues
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl6/igt@kms_chamelium@hdmi-hpd-with-enabled-mode.html
* igt@kms_color@ctm-0-25:
- shard-skl: NOTRUN -> [SKIP][31] ([fdo#109271] / [i915#3546])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl1/igt@kms_color@ctm-0-25.html
* igt@kms_cursor_legacy@flip-vs-cursor@varying-size:
- shard-iclb: [PASS][32] -> [FAIL][33] ([i915#2346]) +2 similar issues
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb6/igt@kms_cursor_legacy@flip-vs-cursor@varying-size.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor@varying-size.html
* igt@kms_fbcon_fbt@psr-suspend:
- shard-skl: NOTRUN -> [FAIL][34] ([i915#4767])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl4/igt@kms_fbcon_fbt@psr-suspend.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-skl: [PASS][35] -> [FAIL][36] ([i915#79]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl1/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl6/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1:
- shard-skl: [PASS][37] -> [FAIL][38] ([i915#2122])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl10/igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl7/igt@kms_flip@plain-flip-fb-recreate-interruptible@c-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode:
- shard-iclb: NOTRUN -> [SKIP][39] ([i915#2587] / [i915#2672]) +2 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb1/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][40] ([i915#2672] / [i915#3555])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][41] ([i915#2672]) +7 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-default-mode.html
* igt@kms_frontbuffer_tracking@fbcpsr-suspend:
- shard-skl: NOTRUN -> [SKIP][42] ([fdo#109271]) +147 similar issues
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl1/igt@kms_frontbuffer_tracking@fbcpsr-suspend.html
* igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-dp-1:
- shard-apl: NOTRUN -> [FAIL][43] ([i915#4573]) +2 similar issues
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-apl1/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-a-dp-1.html
* igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-b-edp-1:
- shard-skl: NOTRUN -> [FAIL][44] ([i915#4573]) +2 similar issues
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl6/igt@kms_plane_alpha_blend@alpha-opaque-fb@pipe-b-edp-1.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1:
- shard-iclb: [PASS][45] -> [SKIP][46] ([i915#5235]) +2 similar issues
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb5/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb2/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-skl: NOTRUN -> [SKIP][47] ([fdo#109271] / [i915#658]) +2 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl4/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@psr2_primary_page_flip:
- shard-iclb: [PASS][48] -> [SKIP][49] ([fdo#109441]) +2 similar issues
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb2/igt@kms_psr@psr2_primary_page_flip.html
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb3/igt@kms_psr@psr2_primary_page_flip.html
* igt@kms_writeback@writeback-invalid-parameters:
- shard-skl: NOTRUN -> [SKIP][50] ([fdo#109271] / [i915#2437])
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl1/igt@kms_writeback@writeback-invalid-parameters.html
* igt@perf@blocking:
- shard-skl: [PASS][51] -> [FAIL][52] ([i915#1542])
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl6/igt@perf@blocking.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl5/igt@perf@blocking.html
* igt@sysfs_clients@create:
- shard-apl: NOTRUN -> [SKIP][53] ([fdo#109271] / [i915#2994])
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-apl1/igt@sysfs_clients@create.html
- shard-skl: NOTRUN -> [SKIP][54] ([fdo#109271] / [i915#2994])
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl6/igt@sysfs_clients@create.html
#### Possible fixes ####
* igt@gem_exec_balancer@parallel-contexts:
- shard-iclb: [SKIP][55] ([i915#4525]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb8/igt@gem_exec_balancer@parallel-contexts.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb2/igt@gem_exec_balancer@parallel-contexts.html
* igt@gem_exec_fair@basic-none-share@rcs0:
- shard-tglb: [FAIL][57] ([i915#2842]) -> [PASS][58] +2 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-tglb3/igt@gem_exec_fair@basic-none-share@rcs0.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-tglb7/igt@gem_exec_fair@basic-none-share@rcs0.html
* igt@gem_exec_fair@basic-throttle@rcs0:
- shard-glk: [FAIL][59] ([i915#2842]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-glk3/igt@gem_exec_fair@basic-throttle@rcs0.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-glk5/igt@gem_exec_fair@basic-throttle@rcs0.html
* igt@gen9_exec_parse@allowed-all:
- shard-skl: [DMESG-WARN][61] ([i915#5566] / [i915#716]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl10/igt@gen9_exec_parse@allowed-all.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl6/igt@gen9_exec_parse@allowed-all.html
- shard-apl: [DMESG-WARN][63] ([i915#5566] / [i915#716]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl2/igt@gen9_exec_parse@allowed-all.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-apl1/igt@gen9_exec_parse@allowed-all.html
* igt@i915_pm_dc@dc9-dpms:
- shard-iclb: [SKIP][65] ([i915#4281]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb3/igt@i915_pm_dc@dc9-dpms.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb8/igt@i915_pm_dc@dc9-dpms.html
* igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic:
- shard-skl: [FAIL][67] ([i915#2346]) -> [PASS][68]
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl6/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl5/igt@kms_cursor_legacy@flip-vs-cursor-crc-atomic.html
* igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
- shard-glk: [FAIL][69] ([i915#2346]) -> [PASS][70] +1 similar issue
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2:
- shard-glk: [FAIL][71] ([i915#2122]) -> [PASS][72]
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-glk8/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-glk6/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
* igt@kms_flip@busy-flip@c-edp1:
- shard-skl: [FAIL][73] -> [PASS][74] +1 similar issue
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl5/igt@kms_flip@busy-flip@c-edp1.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl10/igt@kms_flip@busy-flip@c-edp1.html
* igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode:
- shard-iclb: [SKIP][75] ([i915#3555]) -> [PASS][76]
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-downscaling@pipe-a-default-mode.html
* igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1:
- shard-apl: [DMESG-WARN][77] ([i915#180]) -> [PASS][78]
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-apl3/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-apl1/igt@kms_hdr@bpc-switch-suspend@pipe-a-dp-1.html
* igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-edp-1:
- shard-iclb: [SKIP][79] ([i915#5235]) -> [PASS][80] +2 similar issues
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb2/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-edp-1.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb5/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-5@pipe-c-edp-1.html
* igt@kms_psr@psr2_primary_blt:
- shard-iclb: [SKIP][81] ([fdo#109441]) -> [PASS][82] +1 similar issue
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb8/igt@kms_psr@psr2_primary_blt.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb2/igt@kms_psr@psr2_primary_blt.html
* igt@perf@stress-open-close:
- shard-glk: [INCOMPLETE][83] ([i915#5213]) -> [PASS][84]
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-glk1/igt@perf@stress-open-close.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-glk8/igt@perf@stress-open-close.html
#### Warnings ####
* igt@i915_pm_sseu@full-enable:
- shard-skl: [FAIL][85] ([i915#3524]) -> [FAIL][86] ([i915#7084])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-skl5/igt@i915_pm_sseu@full-enable.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-skl10/igt@i915_pm_sseu@full-enable.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf:
- shard-iclb: [SKIP][87] ([i915#658]) -> [SKIP][88] ([i915#2920])
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb8/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-fully-sf.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf:
- shard-iclb: [SKIP][89] ([i915#2920]) -> [SKIP][90] ([i915#658]) +1 similar issue
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb3/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area:
- shard-iclb: [SKIP][91] ([i915#2920]) -> [SKIP][92] ([fdo#111068] / [i915#658])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12242/shard-iclb2/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/shard-iclb1/igt@kms_psr2_sf@overlay-plane-update-sf-dmg-area.html
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1542]: https://gitlab.freedesktop.org/drm/intel/issues/1542
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
[i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3524]: https://gitlab.freedesktop.org/drm/intel/issues/3524
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#4573]: https://gitlab.freedesktop.org/drm/intel/issues/4573
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
[i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6987]: https://gitlab.freedesktop.org/drm/intel/issues/6987
[i915#7036]: https://gitlab.freedesktop.org/drm/intel/issues/7036
[i915#7057]: https://gitlab.freedesktop.org/drm/intel/issues/7057
[i915#7084]: https://gitlab.freedesktop.org/drm/intel/issues/7084
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
Build changes
-------------
* Linux: CI_DRM_12242 -> Patchwork_109632v2
CI-20190529: 20190529
CI_DRM_12242: 075a81b1efd29300194bdf7877e08b6dbe3079d9 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7012: ca6f5bdd537d26692c4b1ca011b8c4f227d95703 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_109632v2: 075a81b1efd29300194bdf7877e08b6dbe3079d9 @ git://anongit.freedesktop.org/gfx-ci/linux
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_109632v2/index.html
[-- Attachment #2: Type: text/html, Size: 28144 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [Intel-gfx] [PATCH v2] drm/i915/slpc: Use platform limits for min/max frequency
2022-10-13 15:55 ` Vinay Belgaumkar
@ 2022-10-13 22:28 ` Dixit, Ashutosh
-1 siblings, 0 replies; 10+ messages in thread
From: Dixit, Ashutosh @ 2022-10-13 22:28 UTC (permalink / raw)
To: Vinay Belgaumkar; +Cc: intel-gfx, dri-devel, Rodrigo Vivi
On Thu, 13 Oct 2022 08:55:24 -0700, Vinay Belgaumkar wrote:
>
Hi Vinay,
> GuC will set the min/max frequencies to theoretical max on
> ATS-M. This will break kernel ABI, so limit min/max frequency
> to RP0(platform max) instead.
Isn't what we are calling "theoretical max" or "RPmax" really just -1U
(0xFFFFFFFF)? Though I have heard this is not a max value but -1U indicates
FW default values unmodified by host SW, which would mean frequencies are
fully controlled by FW (min == max == -1U). But if this were the case I
don't know why this would be the case only for server, why doesn't FW set
these for clients too to indicate it is fully in control?
So the question what does -1U actually represent? Is it the RPmax value or
does -1U represent "FW defaults"?
Also this concept of using -1U as "FW defaults" is present in Level0/OneAPI
(and likely in firmware) but we seem to have blocked in the i915 ABI.
I understand we may not be able to make such changes at present but this
provides some context for the review comments below.
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> index fdd895f73f9f..11613d373a49 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> @@ -263,6 +263,7 @@ int intel_guc_slpc_init(struct intel_guc_slpc *slpc)
>
> slpc->max_freq_softlimit = 0;
> slpc->min_freq_softlimit = 0;
> + slpc->min_is_rpmax = false;
>
> slpc->boost_freq = 0;
> atomic_set(&slpc->num_waiters, 0);
> @@ -588,6 +589,31 @@ static int slpc_set_softlimits(struct intel_guc_slpc *slpc)
> return 0;
> }
>
> +static bool is_slpc_min_freq_rpmax(struct intel_guc_slpc *slpc)
> +{
> + int slpc_min_freq;
> +
> + if (intel_guc_slpc_get_min_freq(slpc, &slpc_min_freq))
> + return false;
> +
> + if (slpc_min_freq > slpc->rp0_freq)
> or >=.
If what we are calling "rpmax" really -1U then why don't we just check for
-1U here?
u32 slpc_min_freq;
if (slpc_min_freq == -1U)
> + return true;
> + else
> + return false;
> +}
> +
> +static void update_server_min_softlimit(struct intel_guc_slpc *slpc)
> +{
> + /* For server parts, SLPC min will be at RPMax.
> + * Use min softlimit to clamp it to RP0 instead.
> + */
> + if (is_slpc_min_freq_rpmax(slpc) &&
> + !slpc->min_freq_softlimit) {
> + slpc->min_is_rpmax = true;
> + slpc->min_freq_softlimit = slpc->rp0_freq;
Isn't it safer to use a platform check such as IS_ATSM or IS_XEHPSDV (or
even #define IS_SERVER()) to set min freq to RP0 rather than this -1U value
from FW? What if -1U means "FW defaults" and FW starts setting this on
client products tomorrow?
Also, we need to set gt->defaults.min_freq here.
Thanks.
--
Ashutosh
> + }
> +}
> +
> static int slpc_use_fused_rp0(struct intel_guc_slpc *slpc)
> {
> /* Force SLPC to used platform rp0 */
> @@ -647,6 +673,9 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
>
> slpc_get_rp_values(slpc);
>
> + /* Handle the case where min=max=RPmax */
> + update_server_min_softlimit(slpc);
> +
> /* Set SLPC max limit to RP0 */
> ret = slpc_use_fused_rp0(slpc);
> if (unlikely(ret)) {
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
> index 73d208123528..a6ef53b04e04 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
> @@ -19,6 +19,9 @@ struct intel_guc_slpc {
> bool supported;
> bool selected;
>
> + /* Indicates this is a server part */
> + bool min_is_rpmax;
> +
> /* platform frequency limits */
> u32 min_freq;
> u32 rp0_freq;
> --
> 2.35.1
>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2] drm/i915/slpc: Use platform limits for min/max frequency
@ 2022-10-13 22:28 ` Dixit, Ashutosh
0 siblings, 0 replies; 10+ messages in thread
From: Dixit, Ashutosh @ 2022-10-13 22:28 UTC (permalink / raw)
To: Vinay Belgaumkar; +Cc: intel-gfx, Riana Tauro, dri-devel, Rodrigo Vivi
On Thu, 13 Oct 2022 08:55:24 -0700, Vinay Belgaumkar wrote:
>
Hi Vinay,
> GuC will set the min/max frequencies to theoretical max on
> ATS-M. This will break kernel ABI, so limit min/max frequency
> to RP0(platform max) instead.
Isn't what we are calling "theoretical max" or "RPmax" really just -1U
(0xFFFFFFFF)? Though I have heard this is not a max value but -1U indicates
FW default values unmodified by host SW, which would mean frequencies are
fully controlled by FW (min == max == -1U). But if this were the case I
don't know why this would be the case only for server, why doesn't FW set
these for clients too to indicate it is fully in control?
So the question what does -1U actually represent? Is it the RPmax value or
does -1U represent "FW defaults"?
Also this concept of using -1U as "FW defaults" is present in Level0/OneAPI
(and likely in firmware) but we seem to have blocked in the i915 ABI.
I understand we may not be able to make such changes at present but this
provides some context for the review comments below.
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> index fdd895f73f9f..11613d373a49 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
> @@ -263,6 +263,7 @@ int intel_guc_slpc_init(struct intel_guc_slpc *slpc)
>
> slpc->max_freq_softlimit = 0;
> slpc->min_freq_softlimit = 0;
> + slpc->min_is_rpmax = false;
>
> slpc->boost_freq = 0;
> atomic_set(&slpc->num_waiters, 0);
> @@ -588,6 +589,31 @@ static int slpc_set_softlimits(struct intel_guc_slpc *slpc)
> return 0;
> }
>
> +static bool is_slpc_min_freq_rpmax(struct intel_guc_slpc *slpc)
> +{
> + int slpc_min_freq;
> +
> + if (intel_guc_slpc_get_min_freq(slpc, &slpc_min_freq))
> + return false;
> +
> + if (slpc_min_freq > slpc->rp0_freq)
> or >=.
If what we are calling "rpmax" really -1U then why don't we just check for
-1U here?
u32 slpc_min_freq;
if (slpc_min_freq == -1U)
> + return true;
> + else
> + return false;
> +}
> +
> +static void update_server_min_softlimit(struct intel_guc_slpc *slpc)
> +{
> + /* For server parts, SLPC min will be at RPMax.
> + * Use min softlimit to clamp it to RP0 instead.
> + */
> + if (is_slpc_min_freq_rpmax(slpc) &&
> + !slpc->min_freq_softlimit) {
> + slpc->min_is_rpmax = true;
> + slpc->min_freq_softlimit = slpc->rp0_freq;
Isn't it safer to use a platform check such as IS_ATSM or IS_XEHPSDV (or
even #define IS_SERVER()) to set min freq to RP0 rather than this -1U value
from FW? What if -1U means "FW defaults" and FW starts setting this on
client products tomorrow?
Also, we need to set gt->defaults.min_freq here.
Thanks.
--
Ashutosh
> + }
> +}
> +
> static int slpc_use_fused_rp0(struct intel_guc_slpc *slpc)
> {
> /* Force SLPC to used platform rp0 */
> @@ -647,6 +673,9 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
>
> slpc_get_rp_values(slpc);
>
> + /* Handle the case where min=max=RPmax */
> + update_server_min_softlimit(slpc);
> +
> /* Set SLPC max limit to RP0 */
> ret = slpc_use_fused_rp0(slpc);
> if (unlikely(ret)) {
> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
> index 73d208123528..a6ef53b04e04 100644
> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
> @@ -19,6 +19,9 @@ struct intel_guc_slpc {
> bool supported;
> bool selected;
>
> + /* Indicates this is a server part */
> + bool min_is_rpmax;
> +
> /* platform frequency limits */
> u32 min_freq;
> u32 rp0_freq;
> --
> 2.35.1
>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [Intel-gfx] [PATCH v2] drm/i915/slpc: Use platform limits for min/max frequency
2022-10-13 22:28 ` Dixit, Ashutosh
@ 2022-10-14 0:24 ` Belgaumkar, Vinay
-1 siblings, 0 replies; 10+ messages in thread
From: Belgaumkar, Vinay @ 2022-10-14 0:24 UTC (permalink / raw)
To: Dixit, Ashutosh; +Cc: intel-gfx, dri-devel, Rodrigo Vivi
On 10/13/2022 3:28 PM, Dixit, Ashutosh wrote:
> On Thu, 13 Oct 2022 08:55:24 -0700, Vinay Belgaumkar wrote:
> Hi Vinay,
>
>> GuC will set the min/max frequencies to theoretical max on
>> ATS-M. This will break kernel ABI, so limit min/max frequency
>> to RP0(platform max) instead.
> Isn't what we are calling "theoretical max" or "RPmax" really just -1U
> (0xFFFFFFFF)? Though I have heard this is not a max value but -1U indicates
> FW default values unmodified by host SW, which would mean frequencies are
> fully controlled by FW (min == max == -1U). But if this were the case I
> don't know why this would be the case only for server, why doesn't FW set
> these for clients too to indicate it is fully in control?
FW sets max to -1U for client products(we already pull it down to RP0).
It additionally makes min=max for server parts.
>
> So the question what does -1U actually represent? Is it the RPmax value or
> does -1U represent "FW defaults"?
>
> Also this concept of using -1U as "FW defaults" is present in Level0/OneAPI
> (and likely in firmware) but we seem to have blocked in the i915 ABI.
>
> I understand we may not be able to make such changes at present but this
> provides some context for the review comments below.
>
>> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>> index fdd895f73f9f..11613d373a49 100644
>> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>> @@ -263,6 +263,7 @@ int intel_guc_slpc_init(struct intel_guc_slpc *slpc)
>>
>> slpc->max_freq_softlimit = 0;
>> slpc->min_freq_softlimit = 0;
>> + slpc->min_is_rpmax = false;
>>
>> slpc->boost_freq = 0;
>> atomic_set(&slpc->num_waiters, 0);
>> @@ -588,6 +589,31 @@ static int slpc_set_softlimits(struct intel_guc_slpc *slpc)
>> return 0;
>> }
>>
>> +static bool is_slpc_min_freq_rpmax(struct intel_guc_slpc *slpc)
>> +{
>> + int slpc_min_freq;
>> +
>> + if (intel_guc_slpc_get_min_freq(slpc, &slpc_min_freq))
>> + return false;
>> +
>> + if (slpc_min_freq > slpc->rp0_freq)
>> or >=.
> If what we are calling "rpmax" really -1U then why don't we just check for
> -1U here?
>
> u32 slpc_min_freq;
>
> if (slpc_min_freq == -1U)
That'll work similarly too. Only time slpc_min_freq is greater than rp0
is for a server part.
>
>> + return true;
>> + else
>> + return false;
>> +}
>> +
>> +static void update_server_min_softlimit(struct intel_guc_slpc *slpc)
>> +{
>> + /* For server parts, SLPC min will be at RPMax.
>> + * Use min softlimit to clamp it to RP0 instead.
>> + */
>> + if (is_slpc_min_freq_rpmax(slpc) &&
>> + !slpc->min_freq_softlimit) {
>> + slpc->min_is_rpmax = true;
>> + slpc->min_freq_softlimit = slpc->rp0_freq;
> Isn't it safer to use a platform check such as IS_ATSM or IS_XEHPSDV (or
> even #define IS_SERVER()) to set min freq to RP0 rather than this -1U value
> from FW? What if -1U means "FW defaults" and FW starts setting this on
> client products tomorrow?
We are not checking for -1 specifically, but only if FW has set min >
RP0 as an indicator. Also, might be worth having IS_SERVER at some point
if there are other places we need this info as well.
>
> Also, we need to set gt->defaults.min_freq here.
yes, need to add that.
Thanks,
Vinay.
>
> Thanks.
> --
> Ashutosh
>
>
>> + }
>> +}
>> +
>> static int slpc_use_fused_rp0(struct intel_guc_slpc *slpc)
>> {
>> /* Force SLPC to used platform rp0 */
>> @@ -647,6 +673,9 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
>>
>> slpc_get_rp_values(slpc);
>>
>> + /* Handle the case where min=max=RPmax */
>> + update_server_min_softlimit(slpc);
>> +
>> /* Set SLPC max limit to RP0 */
>> ret = slpc_use_fused_rp0(slpc);
>> if (unlikely(ret)) {
>> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
>> index 73d208123528..a6ef53b04e04 100644
>> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
>> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
>> @@ -19,6 +19,9 @@ struct intel_guc_slpc {
>> bool supported;
>> bool selected;
>>
>> + /* Indicates this is a server part */
>> + bool min_is_rpmax;
>> +
>> /* platform frequency limits */
>> u32 min_freq;
>> u32 rp0_freq;
>> --
>> 2.35.1
>>
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2] drm/i915/slpc: Use platform limits for min/max frequency
@ 2022-10-14 0:24 ` Belgaumkar, Vinay
0 siblings, 0 replies; 10+ messages in thread
From: Belgaumkar, Vinay @ 2022-10-14 0:24 UTC (permalink / raw)
To: Dixit, Ashutosh; +Cc: intel-gfx, Riana Tauro, dri-devel, Rodrigo Vivi
On 10/13/2022 3:28 PM, Dixit, Ashutosh wrote:
> On Thu, 13 Oct 2022 08:55:24 -0700, Vinay Belgaumkar wrote:
> Hi Vinay,
>
>> GuC will set the min/max frequencies to theoretical max on
>> ATS-M. This will break kernel ABI, so limit min/max frequency
>> to RP0(platform max) instead.
> Isn't what we are calling "theoretical max" or "RPmax" really just -1U
> (0xFFFFFFFF)? Though I have heard this is not a max value but -1U indicates
> FW default values unmodified by host SW, which would mean frequencies are
> fully controlled by FW (min == max == -1U). But if this were the case I
> don't know why this would be the case only for server, why doesn't FW set
> these for clients too to indicate it is fully in control?
FW sets max to -1U for client products(we already pull it down to RP0).
It additionally makes min=max for server parts.
>
> So the question what does -1U actually represent? Is it the RPmax value or
> does -1U represent "FW defaults"?
>
> Also this concept of using -1U as "FW defaults" is present in Level0/OneAPI
> (and likely in firmware) but we seem to have blocked in the i915 ABI.
>
> I understand we may not be able to make such changes at present but this
> provides some context for the review comments below.
>
>> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>> index fdd895f73f9f..11613d373a49 100644
>> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc.c
>> @@ -263,6 +263,7 @@ int intel_guc_slpc_init(struct intel_guc_slpc *slpc)
>>
>> slpc->max_freq_softlimit = 0;
>> slpc->min_freq_softlimit = 0;
>> + slpc->min_is_rpmax = false;
>>
>> slpc->boost_freq = 0;
>> atomic_set(&slpc->num_waiters, 0);
>> @@ -588,6 +589,31 @@ static int slpc_set_softlimits(struct intel_guc_slpc *slpc)
>> return 0;
>> }
>>
>> +static bool is_slpc_min_freq_rpmax(struct intel_guc_slpc *slpc)
>> +{
>> + int slpc_min_freq;
>> +
>> + if (intel_guc_slpc_get_min_freq(slpc, &slpc_min_freq))
>> + return false;
>> +
>> + if (slpc_min_freq > slpc->rp0_freq)
>> or >=.
> If what we are calling "rpmax" really -1U then why don't we just check for
> -1U here?
>
> u32 slpc_min_freq;
>
> if (slpc_min_freq == -1U)
That'll work similarly too. Only time slpc_min_freq is greater than rp0
is for a server part.
>
>> + return true;
>> + else
>> + return false;
>> +}
>> +
>> +static void update_server_min_softlimit(struct intel_guc_slpc *slpc)
>> +{
>> + /* For server parts, SLPC min will be at RPMax.
>> + * Use min softlimit to clamp it to RP0 instead.
>> + */
>> + if (is_slpc_min_freq_rpmax(slpc) &&
>> + !slpc->min_freq_softlimit) {
>> + slpc->min_is_rpmax = true;
>> + slpc->min_freq_softlimit = slpc->rp0_freq;
> Isn't it safer to use a platform check such as IS_ATSM or IS_XEHPSDV (or
> even #define IS_SERVER()) to set min freq to RP0 rather than this -1U value
> from FW? What if -1U means "FW defaults" and FW starts setting this on
> client products tomorrow?
We are not checking for -1 specifically, but only if FW has set min >
RP0 as an indicator. Also, might be worth having IS_SERVER at some point
if there are other places we need this info as well.
>
> Also, we need to set gt->defaults.min_freq here.
yes, need to add that.
Thanks,
Vinay.
>
> Thanks.
> --
> Ashutosh
>
>
>> + }
>> +}
>> +
>> static int slpc_use_fused_rp0(struct intel_guc_slpc *slpc)
>> {
>> /* Force SLPC to used platform rp0 */
>> @@ -647,6 +673,9 @@ int intel_guc_slpc_enable(struct intel_guc_slpc *slpc)
>>
>> slpc_get_rp_values(slpc);
>>
>> + /* Handle the case where min=max=RPmax */
>> + update_server_min_softlimit(slpc);
>> +
>> /* Set SLPC max limit to RP0 */
>> ret = slpc_use_fused_rp0(slpc);
>> if (unlikely(ret)) {
>> diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
>> index 73d208123528..a6ef53b04e04 100644
>> --- a/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
>> +++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_slpc_types.h
>> @@ -19,6 +19,9 @@ struct intel_guc_slpc {
>> bool supported;
>> bool selected;
>>
>> + /* Indicates this is a server part */
>> + bool min_is_rpmax;
>> +
>> /* platform frequency limits */
>> u32 min_freq;
>> u32 rp0_freq;
>> --
>> 2.35.1
>>
^ permalink raw reply [flat|nested] 10+ messages in thread