* [Intel-gfx] [PATCH v1 0/4] Prepare for MTL sagv config patches
@ 2023-04-16 15:54 Vinod Govindapillai
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 1/4] drm/i915: fix the derating percentage for MTL Vinod Govindapillai
` (6 more replies)
0 siblings, 7 replies; 11+ messages in thread
From: Vinod Govindapillai @ 2023-04-16 15:54 UTC (permalink / raw)
To: intel-gfx; +Cc: ville.syrjala
In MTL sagv configuration differs from the previous platforms.
Modify sagv configuration part so that MTL specific code
variation can be added easily and also fix some issues observed
in current sagv configuration,
Vinod Govindapillai (4):
drm/i915: fix the derating percentage for MTL
drm/i915: update the QGV point frequency calculations
drm/i915: store the peak bw per QGV point
drm/i915: extract intel_bw_check_qgv_points()
drivers/gpu/drm/i915/display/intel_bw.c | 246 ++++++++++--------
.../gpu/drm/i915/display/intel_display_core.h | 2 +
2 files changed, 139 insertions(+), 109 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH v1 1/4] drm/i915: fix the derating percentage for MTL
2023-04-16 15:54 [Intel-gfx] [PATCH v1 0/4] Prepare for MTL sagv config patches Vinod Govindapillai
@ 2023-04-16 15:54 ` Vinod Govindapillai
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 2/4] drm/i915: update the QGV point frequency calculations Vinod Govindapillai
` (5 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Vinod Govindapillai @ 2023-04-16 15:54 UTC (permalink / raw)
To: intel-gfx; +Cc: ville.syrjala
Follow the values from bspec for the percentage overhead for
efficiency in MTL BW calculations.
Bspec: 64631
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
drivers/gpu/drm/i915/display/intel_bw.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
index 202321ffbe2a..5fa599b04ca5 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -376,7 +376,7 @@ static const struct intel_sa_info mtl_sa_info = {
.deburst = 32,
.deprogbwlimit = 38, /* GB/s */
.displayrtids = 256,
- .derating = 20,
+ .derating = 10,
};
static int icl_get_bw_info(struct drm_i915_private *dev_priv, const struct intel_sa_info *sa)
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH v1 2/4] drm/i915: update the QGV point frequency calculations
2023-04-16 15:54 [Intel-gfx] [PATCH v1 0/4] Prepare for MTL sagv config patches Vinod Govindapillai
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 1/4] drm/i915: fix the derating percentage for MTL Vinod Govindapillai
@ 2023-04-16 15:54 ` Vinod Govindapillai
2023-04-18 9:25 ` Lisovskiy, Stanislav
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 3/4] drm/i915: store the peak bw per QGV point Vinod Govindapillai
` (4 subsequent siblings)
6 siblings, 1 reply; 11+ messages in thread
From: Vinod Govindapillai @ 2023-04-16 15:54 UTC (permalink / raw)
To: intel-gfx; +Cc: ville.syrjala
From MTL onwwards, pcode locks the QGV point based on peak BW of
the intended QGV point passed by the driver. So the peak BW
calculation must match the value expected by the pcode. Update
the calculations as per the Bspec.
Bspec: 64636
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
drivers/gpu/drm/i915/display/intel_bw.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
index 5fa599b04ca5..57f8204162dd 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -179,7 +179,7 @@ static int mtl_read_qgv_point_info(struct drm_i915_private *dev_priv,
val2 = intel_uncore_read(&dev_priv->uncore,
MTL_MEM_SS_INFO_QGV_POINT_HIGH(point));
dclk = REG_FIELD_GET(MTL_DCLK_MASK, val);
- sp->dclk = DIV_ROUND_UP((16667 * dclk), 1000);
+ sp->dclk = (16667 * dclk + 500) / 1000;
sp->t_rp = REG_FIELD_GET(MTL_TRP_MASK, val);
sp->t_rcd = REG_FIELD_GET(MTL_TRCD_MASK, val);
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH v1 3/4] drm/i915: store the peak bw per QGV point
2023-04-16 15:54 [Intel-gfx] [PATCH v1 0/4] Prepare for MTL sagv config patches Vinod Govindapillai
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 1/4] drm/i915: fix the derating percentage for MTL Vinod Govindapillai
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 2/4] drm/i915: update the QGV point frequency calculations Vinod Govindapillai
@ 2023-04-16 15:54 ` Vinod Govindapillai
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 4/4] drm/i915: extract intel_bw_check_qgv_points() Vinod Govindapillai
` (3 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Vinod Govindapillai @ 2023-04-16 15:54 UTC (permalink / raw)
To: intel-gfx; +Cc: ville.syrjala
In MTL onwards, pcode locks the GV point based on the peak BW
of a QGV point. So store the peak BW of all the QGV points.
Bspec: 64636
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
drivers/gpu/drm/i915/display/intel_bw.c | 7 +++++--
drivers/gpu/drm/i915/display/intel_display_core.h | 2 ++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
index 57f8204162dd..bb2b8e31f9ff 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -531,10 +531,13 @@ static int tgl_get_bw_info(struct drm_i915_private *dev_priv, const struct intel
bi->deratedbw[j] = min(maxdebw,
bw * (100 - sa->derating) / 100);
+ bi->peakbw[j] = sp->dclk * num_channels *
+ qi.channel_width / 8;
drm_dbg_kms(&dev_priv->drm,
- "BW%d / QGV %d: num_planes=%d deratedbw=%u\n",
- i, j, bi->num_planes, bi->deratedbw[j]);
+ "BW%d / QGV %d: num_planes=%d deratedbw=%u peakbw: %u\n",
+ i, j, bi->num_planes, bi->deratedbw[j],
+ bi->peakbw[j]);
}
for (j = 0; j < qi.num_psf_points; j++) {
diff --git a/drivers/gpu/drm/i915/display/intel_display_core.h b/drivers/gpu/drm/i915/display/intel_display_core.h
index e36f88a39b86..9f66d734edf6 100644
--- a/drivers/gpu/drm/i915/display/intel_display_core.h
+++ b/drivers/gpu/drm/i915/display/intel_display_core.h
@@ -314,6 +314,8 @@ struct intel_display {
unsigned int deratedbw[I915_NUM_QGV_POINTS];
/* for each PSF GV point */
unsigned int psf_bw[I915_NUM_PSF_GV_POINTS];
+ /* Peak BW for each QGV point */
+ unsigned int peakbw[I915_NUM_QGV_POINTS];
u8 num_qgv_points;
u8 num_psf_gv_points;
u8 num_planes;
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] [PATCH v1 4/4] drm/i915: extract intel_bw_check_qgv_points()
2023-04-16 15:54 [Intel-gfx] [PATCH v1 0/4] Prepare for MTL sagv config patches Vinod Govindapillai
` (2 preceding siblings ...)
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 3/4] drm/i915: store the peak bw per QGV point Vinod Govindapillai
@ 2023-04-16 15:54 ` Vinod Govindapillai
2023-04-16 17:23 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Prepare for MTL sagv config patches Patchwork
` (2 subsequent siblings)
6 siblings, 0 replies; 11+ messages in thread
From: Vinod Govindapillai @ 2023-04-16 15:54 UTC (permalink / raw)
To: intel-gfx; +Cc: ville.syrjala
Extract intel_bw_check_qgv_points() from intel_bw_atomic_check
to facilitate future platform variations in handling SAGV
configurations.
Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
---
drivers/gpu/drm/i915/display/intel_bw.c | 235 +++++++++++++-----------
1 file changed, 130 insertions(+), 105 deletions(-)
diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
index bb2b8e31f9ff..e818e2c3d6c0 100644
--- a/drivers/gpu/drm/i915/display/intel_bw.c
+++ b/drivers/gpu/drm/i915/display/intel_bw.c
@@ -799,6 +799,128 @@ intel_atomic_get_bw_state(struct intel_atomic_state *state)
return to_intel_bw_state(bw_state);
}
+static int icl_find_qgv_points(struct drm_i915_private *i915,
+ unsigned int data_rate,
+ unsigned int num_active_planes,
+ const struct intel_bw_state *old_bw_state,
+ struct intel_bw_state *new_bw_state)
+{
+ unsigned int max_bw_point = 0;
+ unsigned int max_bw = 0;
+ unsigned int num_psf_gv_points = i915->display.bw.max[0].num_psf_gv_points;
+ unsigned int num_qgv_points = i915->display.bw.max[0].num_qgv_points;
+ u16 psf_points = 0;
+ u16 qgv_points = 0;
+ int i;
+ int ret;
+
+ ret = intel_atomic_lock_global_state(&new_bw_state->base);
+ if (ret)
+ return ret;
+
+ for (i = 0; i < num_qgv_points; i++) {
+ unsigned int max_data_rate;
+
+ if (DISPLAY_VER(i915) > 11)
+ max_data_rate = tgl_max_bw(i915, num_active_planes, i);
+ else
+ max_data_rate = icl_max_bw(i915, num_active_planes, i);
+ /*
+ * We need to know which qgv point gives us
+ * maximum bandwidth in order to disable SAGV
+ * if we find that we exceed SAGV block time
+ * with watermarks. By that moment we already
+ * have those, as it is calculated earlier in
+ * intel_atomic_check,
+ */
+ if (max_data_rate > max_bw) {
+ max_bw_point = i;
+ max_bw = max_data_rate;
+ }
+ if (max_data_rate >= data_rate)
+ qgv_points |= BIT(i);
+
+ drm_dbg_kms(&i915->drm, "QGV point %d: max bw %d required %d\n",
+ i, max_data_rate, data_rate);
+ }
+
+ for (i = 0; i < num_psf_gv_points; i++) {
+ unsigned int max_data_rate = adl_psf_bw(i915, i);
+
+ if (max_data_rate >= data_rate)
+ psf_points |= BIT(i);
+
+ drm_dbg_kms(&i915->drm, "PSF GV point %d: max bw %d"
+ " required %d\n",
+ i, max_data_rate, data_rate);
+ }
+
+ /*
+ * BSpec states that we always should have at least one allowed point
+ * left, so if we couldn't - simply reject the configuration for obvious
+ * reasons.
+ */
+ if (qgv_points == 0) {
+ drm_dbg_kms(&i915->drm, "No QGV points provide sufficient memory"
+ " bandwidth %d for display configuration(%d active planes).\n",
+ data_rate, num_active_planes);
+ return -EINVAL;
+ }
+
+ if (num_psf_gv_points > 0 && psf_points == 0) {
+ drm_dbg_kms(&i915->drm, "No PSF GV points provide sufficient memory"
+ " bandwidth %d for display configuration(%d active planes).\n",
+ data_rate, num_active_planes);
+ return -EINVAL;
+ }
+
+ /*
+ * Leave only single point with highest bandwidth, if
+ * we can't enable SAGV due to the increased memory latency it may
+ * cause.
+ */
+ if (!intel_can_enable_sagv(i915, new_bw_state)) {
+ qgv_points = BIT(max_bw_point);
+ drm_dbg_kms(&i915->drm, "No SAGV, using single QGV point %d\n",
+ max_bw_point);
+ }
+
+ /*
+ * We store the ones which need to be masked as that is what PCode
+ * actually accepts as a parameter.
+ */
+ new_bw_state->qgv_points_mask =
+ ~(ICL_PCODE_REQ_QGV_PT(qgv_points) |
+ ADLS_PCODE_REQ_PSF_PT(psf_points)) &
+ icl_qgv_points_mask(i915);
+
+ /*
+ * If the actual mask had changed we need to make sure that
+ * the commits are serialized(in case this is a nomodeset, nonblocking)
+ */
+ if (new_bw_state->qgv_points_mask != old_bw_state->qgv_points_mask) {
+ ret = intel_atomic_serialize_global_state(&new_bw_state->base);
+ if (ret)
+ return ret;
+ }
+
+ return 0;
+}
+
+static int intel_bw_check_qgv_points(struct drm_i915_private *i915,
+ const struct intel_bw_state *old_bw_state,
+ struct intel_bw_state *new_bw_state)
+{
+ unsigned int data_rate = intel_bw_data_rate(i915, new_bw_state);
+ unsigned int num_active_planes =
+ intel_bw_num_active_planes(i915, new_bw_state);
+
+ data_rate = DIV_ROUND_UP(data_rate, 1000);
+
+ return icl_find_qgv_points(i915, data_rate, num_active_planes,
+ old_bw_state, new_bw_state);
+}
+
static bool intel_bw_state_changed(struct drm_i915_private *i915,
const struct intel_bw_state *old_bw_state,
const struct intel_bw_state *new_bw_state)
@@ -1045,20 +1167,14 @@ static int intel_bw_check_data_rate(struct intel_atomic_state *state, bool *chan
int intel_bw_atomic_check(struct intel_atomic_state *state)
{
- struct drm_i915_private *dev_priv = to_i915(state->base.dev);
- const struct intel_bw_state *old_bw_state;
- struct intel_bw_state *new_bw_state;
- unsigned int data_rate;
- unsigned int num_active_planes;
- int i, ret;
- u16 qgv_points = 0, psf_points = 0;
- unsigned int max_bw_point = 0, max_bw = 0;
- unsigned int num_qgv_points = dev_priv->display.bw.max[0].num_qgv_points;
- unsigned int num_psf_gv_points = dev_priv->display.bw.max[0].num_psf_gv_points;
bool changed = false;
+ struct drm_i915_private *i915 = to_i915(state->base.dev);
+ struct intel_bw_state *new_bw_state;
+ const struct intel_bw_state *old_bw_state;
+ int ret;
/* FIXME earlier gens need some checks too */
- if (DISPLAY_VER(dev_priv) < 11)
+ if (DISPLAY_VER(i915) < 11)
return 0;
ret = intel_bw_check_data_rate(state, &changed);
@@ -1069,8 +1185,8 @@ int intel_bw_atomic_check(struct intel_atomic_state *state)
new_bw_state = intel_atomic_get_new_bw_state(state);
if (new_bw_state &&
- intel_can_enable_sagv(dev_priv, old_bw_state) !=
- intel_can_enable_sagv(dev_priv, new_bw_state))
+ intel_can_enable_sagv(i915, old_bw_state) !=
+ intel_can_enable_sagv(i915, new_bw_state))
changed = true;
/*
@@ -1080,101 +1196,10 @@ int intel_bw_atomic_check(struct intel_atomic_state *state)
if (!changed)
return 0;
- ret = intel_atomic_lock_global_state(&new_bw_state->base);
+ ret = intel_bw_check_qgv_points(i915, old_bw_state, new_bw_state);
if (ret)
return ret;
- data_rate = intel_bw_data_rate(dev_priv, new_bw_state);
- data_rate = DIV_ROUND_UP(data_rate, 1000);
-
- num_active_planes = intel_bw_num_active_planes(dev_priv, new_bw_state);
-
- for (i = 0; i < num_qgv_points; i++) {
- unsigned int max_data_rate;
-
- if (DISPLAY_VER(dev_priv) > 11)
- max_data_rate = tgl_max_bw(dev_priv, num_active_planes, i);
- else
- max_data_rate = icl_max_bw(dev_priv, num_active_planes, i);
- /*
- * We need to know which qgv point gives us
- * maximum bandwidth in order to disable SAGV
- * if we find that we exceed SAGV block time
- * with watermarks. By that moment we already
- * have those, as it is calculated earlier in
- * intel_atomic_check,
- */
- if (max_data_rate > max_bw) {
- max_bw_point = i;
- max_bw = max_data_rate;
- }
- if (max_data_rate >= data_rate)
- qgv_points |= BIT(i);
-
- drm_dbg_kms(&dev_priv->drm, "QGV point %d: max bw %d required %d\n",
- i, max_data_rate, data_rate);
- }
-
- for (i = 0; i < num_psf_gv_points; i++) {
- unsigned int max_data_rate = adl_psf_bw(dev_priv, i);
-
- if (max_data_rate >= data_rate)
- psf_points |= BIT(i);
-
- drm_dbg_kms(&dev_priv->drm, "PSF GV point %d: max bw %d"
- " required %d\n",
- i, max_data_rate, data_rate);
- }
-
- /*
- * BSpec states that we always should have at least one allowed point
- * left, so if we couldn't - simply reject the configuration for obvious
- * reasons.
- */
- if (qgv_points == 0) {
- drm_dbg_kms(&dev_priv->drm, "No QGV points provide sufficient memory"
- " bandwidth %d for display configuration(%d active planes).\n",
- data_rate, num_active_planes);
- return -EINVAL;
- }
-
- if (num_psf_gv_points > 0 && psf_points == 0) {
- drm_dbg_kms(&dev_priv->drm, "No PSF GV points provide sufficient memory"
- " bandwidth %d for display configuration(%d active planes).\n",
- data_rate, num_active_planes);
- return -EINVAL;
- }
-
- /*
- * Leave only single point with highest bandwidth, if
- * we can't enable SAGV due to the increased memory latency it may
- * cause.
- */
- if (!intel_can_enable_sagv(dev_priv, new_bw_state)) {
- qgv_points = BIT(max_bw_point);
- drm_dbg_kms(&dev_priv->drm, "No SAGV, using single QGV point %d\n",
- max_bw_point);
- }
-
- /*
- * We store the ones which need to be masked as that is what PCode
- * actually accepts as a parameter.
- */
- new_bw_state->qgv_points_mask =
- ~(ICL_PCODE_REQ_QGV_PT(qgv_points) |
- ADLS_PCODE_REQ_PSF_PT(psf_points)) &
- icl_qgv_points_mask(dev_priv);
-
- /*
- * If the actual mask had changed we need to make sure that
- * the commits are serialized(in case this is a nomodeset, nonblocking)
- */
- if (new_bw_state->qgv_points_mask != old_bw_state->qgv_points_mask) {
- ret = intel_atomic_serialize_global_state(&new_bw_state->base);
- if (ret)
- return ret;
- }
-
return 0;
}
--
2.34.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Prepare for MTL sagv config patches
2023-04-16 15:54 [Intel-gfx] [PATCH v1 0/4] Prepare for MTL sagv config patches Vinod Govindapillai
` (3 preceding siblings ...)
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 4/4] drm/i915: extract intel_bw_check_qgv_points() Vinod Govindapillai
@ 2023-04-16 17:23 ` Patchwork
2023-04-16 17:30 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-04-16 20:17 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-04-16 17:23 UTC (permalink / raw)
To: Vinod Govindapillai; +Cc: intel-gfx
== Series Details ==
Series: Prepare for MTL sagv config patches
URL : https://patchwork.freedesktop.org/series/116541/
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] 11+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for Prepare for MTL sagv config patches
2023-04-16 15:54 [Intel-gfx] [PATCH v1 0/4] Prepare for MTL sagv config patches Vinod Govindapillai
` (4 preceding siblings ...)
2023-04-16 17:23 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Prepare for MTL sagv config patches Patchwork
@ 2023-04-16 17:30 ` Patchwork
2023-04-16 20:17 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-04-16 17:30 UTC (permalink / raw)
To: Vinod Govindapillai; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 7278 bytes --]
== Series Details ==
Series: Prepare for MTL sagv config patches
URL : https://patchwork.freedesktop.org/series/116541/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_13016 -> Patchwork_116541v1
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/index.html
Participating hosts (37 -> 34)
------------------------------
Additional (1): bat-adls-5
Missing (4): fi-kbl-soraka bat-mtlp-8 fi-kbl-x1275 fi-snb-2520m
Known issues
------------
Here are the changes found in Patchwork_116541v1 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@debugfs_test@basic-hwmon:
- bat-adls-5: NOTRUN -> [SKIP][1] ([i915#7456])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-adls-5/igt@debugfs_test@basic-hwmon.html
* igt@gem_lmem_swapping@random-engines:
- bat-adls-5: NOTRUN -> [SKIP][2] ([i915#4613]) +3 similar issues
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-adls-5/igt@gem_lmem_swapping@random-engines.html
* igt@gem_tiled_pread_basic:
- bat-adls-5: NOTRUN -> [SKIP][3] ([i915#3282])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-adls-5/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rps@basic-api:
- bat-dg2-11: [PASS][4] -> [FAIL][5] ([i915#8308])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/bat-dg2-11/igt@i915_pm_rps@basic-api.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-dg2-11/igt@i915_pm_rps@basic-api.html
* igt@i915_selftest@live@gt_pm:
- bat-adln-1: [PASS][6] -> [DMESG-FAIL][7] ([i915#4258])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/bat-adln-1/igt@i915_selftest@live@gt_pm.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-adln-1/igt@i915_selftest@live@gt_pm.html
* igt@i915_selftest@live@hangcheck:
- bat-adls-5: NOTRUN -> [DMESG-WARN][8] ([i915#5591])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-adls-5/igt@i915_selftest@live@hangcheck.html
* igt@i915_selftest@live@reset:
- bat-rpls-2: [PASS][9] -> [ABORT][10] ([i915#4983] / [i915#7913])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/bat-rpls-2/igt@i915_selftest@live@reset.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-rpls-2/igt@i915_selftest@live@reset.html
* igt@i915_selftest@live@slpc:
- bat-rpls-1: NOTRUN -> [DMESG-FAIL][11] ([i915#6367] / [i915#7996])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-rpls-1/igt@i915_selftest@live@slpc.html
* igt@kms_chamelium_hpd@common-hpd-after-suspend:
- bat-rpls-1: NOTRUN -> [SKIP][12] ([i915#7828])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-rpls-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html
* igt@kms_chamelium_hpd@vga-hpd-fast:
- bat-adls-5: NOTRUN -> [SKIP][13] ([i915#7828]) +8 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-adls-5/igt@kms_chamelium_hpd@vga-hpd-fast.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-adls-5: NOTRUN -> [SKIP][14] ([i915#4103]) +1 similar issue
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-adls-5/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-adls-5: NOTRUN -> [SKIP][15] ([fdo#109285])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-adls-5/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- bat-rpls-1: NOTRUN -> [SKIP][16] ([i915#1845])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-rpls-1/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-adls-5: NOTRUN -> [SKIP][17] ([i915#3555] / [i915#4579])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-adls-5/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-read:
- bat-adls-5: NOTRUN -> [SKIP][18] ([fdo#109295] / [i915#3291]) +2 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-adls-5/igt@prime_vgem@basic-read.html
* igt@prime_vgem@basic-userptr:
- bat-adls-5: NOTRUN -> [SKIP][19] ([fdo#109295] / [i915#3301])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-adls-5/igt@prime_vgem@basic-userptr.html
#### Possible fixes ####
* igt@i915_selftest@live@reset:
- bat-rpls-1: [ABORT][20] ([i915#4983] / [i915#7981]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/bat-rpls-1/igt@i915_selftest@live@reset.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/bat-rpls-1/igt@i915_selftest@live@reset.html
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#5591]: https://gitlab.freedesktop.org/drm/intel/issues/5591
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
[i915#7981]: https://gitlab.freedesktop.org/drm/intel/issues/7981
[i915#7996]: https://gitlab.freedesktop.org/drm/intel/issues/7996
[i915#8308]: https://gitlab.freedesktop.org/drm/intel/issues/8308
Build changes
-------------
* Linux: CI_DRM_13016 -> Patchwork_116541v1
CI-20190529: 20190529
CI_DRM_13016: c43605f9a636bb2c48251f5b7ff9b5c29fe31044 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7256: 066fa5410180730b85f61e4f3073da9a2055dc49 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_116541v1: c43605f9a636bb2c48251f5b7ff9b5c29fe31044 @ git://anongit.freedesktop.org/gfx-ci/linux
### Linux commits
b714ee72691a drm/i915: extract intel_bw_check_qgv_points()
e669fb625c20 drm/i915: store the peak bw per QGV point
bc1d45a25b7a drm/i915: update the QGV point frequency calculations
c2ff42c9828a drm/i915: fix the derating percentage for MTL
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/index.html
[-- Attachment #2: Type: text/html, Size: 8513 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for Prepare for MTL sagv config patches
2023-04-16 15:54 [Intel-gfx] [PATCH v1 0/4] Prepare for MTL sagv config patches Vinod Govindapillai
` (5 preceding siblings ...)
2023-04-16 17:30 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2023-04-16 20:17 ` Patchwork
6 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2023-04-16 20:17 UTC (permalink / raw)
To: Vinod Govindapillai; +Cc: intel-gfx
[-- Attachment #1: Type: text/plain, Size: 14082 bytes --]
== Series Details ==
Series: Prepare for MTL sagv config patches
URL : https://patchwork.freedesktop.org/series/116541/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_13016_full -> Patchwork_116541v1_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with Patchwork_116541v1_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in Patchwork_116541v1_full, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
Participating hosts (7 -> 7)
------------------------------
No changes in participating hosts
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in Patchwork_116541v1_full:
### IGT changes ###
#### Possible regressions ####
* igt@gem_softpin@allocator-evict@bcs0:
- shard-glk: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-glk3/igt@gem_softpin@allocator-evict@bcs0.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-glk7/igt@gem_softpin@allocator-evict@bcs0.html
#### Suppressed ####
The following results come from untrusted machines, tests, or statuses.
They do not affect the overall result.
* igt@gem_exec_balancer@full-late:
- {shard-tglu}: [PASS][3] -> [INCOMPLETE][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-tglu-5/igt@gem_exec_balancer@full-late.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-tglu-2/igt@gem_exec_balancer@full-late.html
Known issues
------------
Here are the changes found in Patchwork_116541v1_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_fair@basic-deadline:
- shard-glk: [PASS][5] -> [FAIL][6] ([i915#2846])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-glk2/igt@gem_exec_fair@basic-deadline.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-glk5/igt@gem_exec_fair@basic-deadline.html
* igt@gem_exec_fair@basic-pace-solo@rcs0:
- shard-glk: [PASS][7] -> [FAIL][8] ([i915#2842])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-glk5/igt@gem_exec_fair@basic-pace-solo@rcs0.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-glk2/igt@gem_exec_fair@basic-pace-solo@rcs0.html
* igt@i915_pm_rps@reset:
- shard-snb: [PASS][9] -> [DMESG-FAIL][10] ([i915#8319])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-snb4/igt@i915_pm_rps@reset.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-snb5/igt@i915_pm_rps@reset.html
* igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1:
- shard-glk: [PASS][11] -> [FAIL][12] ([i915#2521])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-glk8/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-glk1/igt@kms_async_flips@alternate-sync-async-flip@pipe-a-hdmi-a-1.html
* igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
- shard-apl: NOTRUN -> [SKIP][13] ([fdo#109271] / [i915#3886]) +2 similar issues
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-apl3/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html
* igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size:
- shard-apl: [PASS][14] -> [FAIL][15] ([i915#2346])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-apl7/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
- shard-glk: [PASS][16] -> [FAIL][17] ([i915#2346])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions-varying-size.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-0-25@pipe-c-dp-1:
- shard-apl: NOTRUN -> [SKIP][18] ([fdo#109271]) +56 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-apl3/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-0-25@pipe-c-dp-1.html
* igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area:
- shard-apl: NOTRUN -> [SKIP][19] ([fdo#109271] / [i915#658])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-apl3/igt@kms_psr2_sf@overlay-primary-update-sf-dmg-area.html
#### Possible fixes ####
* igt@gem_exec_fair@basic-none@bcs0:
- {shard-rkl}: [FAIL][20] ([i915#2842]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-rkl-1/igt@gem_exec_fair@basic-none@bcs0.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-rkl-1/igt@gem_exec_fair@basic-none@bcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [FAIL][22] ([i915#2842]) -> [PASS][23]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-glk3/igt@gem_exec_fair@basic-pace-share@rcs0.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-glk6/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip:
- {shard-rkl}: [FAIL][24] ([i915#3743]) -> [PASS][25]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-rkl-7/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-rkl-7/igt@kms_big_fb@x-tiled-max-hw-stride-64bpp-rotate-0-async-flip.html
* igt@kms_cursor_legacy@forked-move@pipe-b:
- {shard-rkl}: [INCOMPLETE][26] ([i915#8011]) -> [PASS][27]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-rkl-7/igt@kms_cursor_legacy@forked-move@pipe-b.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-rkl-1/igt@kms_cursor_legacy@forked-move@pipe-b.html
* igt@kms_flip@flip-vs-suspend@a-dp1:
- shard-apl: [ABORT][28] ([i915#180]) -> [PASS][29]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-apl7/igt@kms_flip@flip-vs-suspend@a-dp1.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-apl3/igt@kms_flip@flip-vs-suspend@a-dp1.html
* igt@kms_flip@plain-flip-ts-check@b-hdmi-a2:
- shard-glk: [FAIL][30] ([i915#2122]) -> [PASS][31]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-glk3/igt@kms_flip@plain-flip-ts-check@b-hdmi-a2.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-glk9/igt@kms_flip@plain-flip-ts-check@b-hdmi-a2.html
* igt@perf_pmu@idle@rcs0:
- {shard-rkl}: [FAIL][32] ([i915#4349]) -> [PASS][33]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13016/shard-rkl-4/igt@perf_pmu@idle@rcs0.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_116541v1/shard-rkl-2/igt@perf_pmu@idle@rcs0.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#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2521]: https://gitlab.freedesktop.org/drm/intel/issues/2521
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
[i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
[i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3743]: https://gitlab.freedesktop.org/drm/intel/issues/3743
[i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
[i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
[i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
[i915#4565]: https://gitlab.freedesktop.org/drm/intel/issues/4565
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4816]: https://gitlab.freedesktop.org/drm/intel/issues/4816
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
[i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011
[i915#8150]: https://gitlab.freedesktop.org/drm/intel/issues/8150
[i915#8155]: https://gitlab.freedesktop.org/drm/intel/issues/8155
[i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247
[i915#8319]: https://gitlab.freedesktop.org/drm/intel/issues/8319
[i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347
Build changes
-------------
* Linux: CI_DRM_13016 -> Patchwork_116541v1
CI-20190529: 20190529
CI_DRM_13016: c43605f9a636bb2c48251f5b7ff9b5c29fe31044 @ git://anongit.freedesktop.org/gfx-ci/linux
IGT_7256: 066fa5410180730b85f61e4f3073da9a2055dc49 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Patchwork_116541v1: c43605f9a636bb2c48251f5b7ff9b5c29fe31044 @ 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_116541v1/index.html
[-- Attachment #2: Type: text/html, Size: 10592 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH v1 2/4] drm/i915: update the QGV point frequency calculations
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 2/4] drm/i915: update the QGV point frequency calculations Vinod Govindapillai
@ 2023-04-18 9:25 ` Lisovskiy, Stanislav
2023-04-18 9:47 ` Govindapillai, Vinod
0 siblings, 1 reply; 11+ messages in thread
From: Lisovskiy, Stanislav @ 2023-04-18 9:25 UTC (permalink / raw)
To: Vinod Govindapillai; +Cc: intel-gfx, ville.syrjala
On Sun, Apr 16, 2023 at 06:54:15PM +0300, Vinod Govindapillai wrote:
> From MTL onwwards, pcode locks the QGV point based on peak BW of
> the intended QGV point passed by the driver. So the peak BW
> calculation must match the value expected by the pcode. Update
> the calculations as per the Bspec.
>
> Bspec: 64636
>
> Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> ---
> drivers/gpu/drm/i915/display/intel_bw.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
> index 5fa599b04ca5..57f8204162dd 100644
> --- a/drivers/gpu/drm/i915/display/intel_bw.c
> +++ b/drivers/gpu/drm/i915/display/intel_bw.c
> @@ -179,7 +179,7 @@ static int mtl_read_qgv_point_info(struct drm_i915_private *dev_priv,
> val2 = intel_uncore_read(&dev_priv->uncore,
> MTL_MEM_SS_INFO_QGV_POINT_HIGH(point));
> dclk = REG_FIELD_GET(MTL_DCLK_MASK, val);
> - sp->dclk = DIV_ROUND_UP((16667 * dclk), 1000);
> + sp->dclk = (16667 * dclk + 500) / 1000;
Hmm, wonder does it at least partly now intersects with what I'm doing in
https://patchwork.freedesktop.org/series/114982/
I remember we were discussing if this "+500" is actually also rounding up
itself.
The thing is that the way how rounding up is done for instance in DIV_ROUND_UP
also, if you check, if you lets say want to divide n by d, however you want to round
up the result, you add n = n + (d - 1) and then divide by d. This is how DIV_ROUND_UP works.
That effectively means that if n would be anything more than m*d, result would be not m,
but m + 1(note flooring would give m)
Adding 500, when dividing by 1000 is also rouding up, however it is a bit weaker.
In example above that would mean, if we want to divide n by d, we first add n = n + d / 2
and then divide by d.
That effectively means that if n would be anything more than m*d + 500, result would not m,
but again m + 1(again note, that true flooeing would have given m, not m + 1)
So it is still rounding up, but just being weaker/less precise though.
If we would want to truly floor that division, we would want to get m, but not m + 1 from
above examples, which means that we should just divide n / d, without adding anything.
So in my opinion, if we want to floor (16667 * dclk / 1000) result - it should not have
both "DIV_ROUND_UP" and " + 500" things - thats what I've done in series which also was touching
this code as well.
I think it would be nice to raise issue and clarify from HW team, if it was initial intention,
because adding + 500 is clearly doing rounding up as well, but it is just now on +-500(d/2) granularity now,
while DIV_ROUND_UP worked with +-1 granularity. However both things are essentially "rounding up".
So in that case I would really want to challenge or clarify, what is written in BSpec.
Stan
> sp->t_rp = REG_FIELD_GET(MTL_TRP_MASK, val);
> sp->t_rcd = REG_FIELD_GET(MTL_TRCD_MASK, val);
>
> --
> 2.34.1
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH v1 2/4] drm/i915: update the QGV point frequency calculations
2023-04-18 9:25 ` Lisovskiy, Stanislav
@ 2023-04-18 9:47 ` Govindapillai, Vinod
2023-04-18 11:49 ` Lisovskiy, Stanislav
0 siblings, 1 reply; 11+ messages in thread
From: Govindapillai, Vinod @ 2023-04-18 9:47 UTC (permalink / raw)
To: Lisovskiy, Stanislav; +Cc: intel-gfx@lists.freedesktop.org, Syrjala, Ville
On Tue, 2023-04-18 at 12:25 +0300, Lisovskiy, Stanislav wrote:
> On Sun, Apr 16, 2023 at 06:54:15PM +0300, Vinod Govindapillai wrote:
> > From MTL onwwards, pcode locks the QGV point based on peak BW of
> > the intended QGV point passed by the driver. So the peak BW
> > calculation must match the value expected by the pcode. Update
> > the calculations as per the Bspec.
> >
> > Bspec: 64636
> >
> > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> > ---
> > drivers/gpu/drm/i915/display/intel_bw.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
> > index 5fa599b04ca5..57f8204162dd 100644
> > --- a/drivers/gpu/drm/i915/display/intel_bw.c
> > +++ b/drivers/gpu/drm/i915/display/intel_bw.c
> > @@ -179,7 +179,7 @@ static int mtl_read_qgv_point_info(struct drm_i915_private *dev_priv,
> > val2 = intel_uncore_read(&dev_priv->uncore,
> > MTL_MEM_SS_INFO_QGV_POINT_HIGH(point));
> > dclk = REG_FIELD_GET(MTL_DCLK_MASK, val);
> > - sp->dclk = DIV_ROUND_UP((16667 * dclk), 1000);
> > + sp->dclk = (16667 * dclk + 500) / 1000;
>
> Hmm, wonder does it at least partly now intersects with what I'm doing in
> https://patchwork.freedesktop.org/series/114982/
>
> I remember we were discussing if this "+500" is actually also rounding up
> itself.
>
> The thing is that the way how rounding up is done for instance in DIV_ROUND_UP
> also, if you check, if you lets say want to divide n by d, however you want to round
> up the result, you add n = n + (d - 1) and then divide by d. This is how DIV_ROUND_UP works.
> That effectively means that if n would be anything more than m*d, result would be not m,
> but m + 1(note flooring would give m)
>
> Adding 500, when dividing by 1000 is also rouding up, however it is a bit weaker.
> In example above that would mean, if we want to divide n by d, we first add n = n + d / 2
> and then divide by d.
> That effectively means that if n would be anything more than m*d + 500, result would not m,
> but again m + 1(again note, that true flooeing would have given m, not m + 1)
>
> So it is still rounding up, but just being weaker/less precise though.
>
> If we would want to truly floor that division, we would want to get m, but not m + 1 from
> above examples, which means that we should just divide n / d, without adding anything.
> So in my opinion, if we want to floor (16667 * dclk / 1000) result - it should not have
> both "DIV_ROUND_UP" and " + 500" things - thats what I've done in series which also was touching
> this code as well.
>
> I think it would be nice to raise issue and clarify from HW team, if it was initial intention,
> because adding + 500 is clearly doing rounding up as well, but it is just now on +-500(d/2)
> granularity now,
> while DIV_ROUND_UP worked with +-1 granularity. However both things are essentially "rounding up".
> So in that case I would really want to challenge or clarify, what is written in BSpec.
>
> Stan
Yes. Not much explanation about the addition of 500. I just blindly followed what was in that Bspec.
Yes ideally div round_up is (n + d -1) / d. So what is the point of having 500 if the purpose is a
rounding up unless it is accounting for some "other" factor. Anyway it is nice to get the
clarification.
So the "other" factor I assume is that pcode is using this formula to calculate QGV point peak BW.
So in MTL as we pass this peak BW to pcode for compare and select the QGV point, driver and pcode
calculations need to match.
BR
Vinod
>
> > sp->t_rp = REG_FIELD_GET(MTL_TRP_MASK, val);
> > sp->t_rcd = REG_FIELD_GET(MTL_TRCD_MASK, val);
> >
> > --
> > 2.34.1
> >
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [Intel-gfx] [PATCH v1 2/4] drm/i915: update the QGV point frequency calculations
2023-04-18 9:47 ` Govindapillai, Vinod
@ 2023-04-18 11:49 ` Lisovskiy, Stanislav
0 siblings, 0 replies; 11+ messages in thread
From: Lisovskiy, Stanislav @ 2023-04-18 11:49 UTC (permalink / raw)
To: Govindapillai, Vinod; +Cc: intel-gfx@lists.freedesktop.org, Syrjala, Ville
On Tue, Apr 18, 2023 at 12:47:33PM +0300, Govindapillai, Vinod wrote:
> On Tue, 2023-04-18 at 12:25 +0300, Lisovskiy, Stanislav wrote:
> > On Sun, Apr 16, 2023 at 06:54:15PM +0300, Vinod Govindapillai wrote:
> > > From MTL onwwards, pcode locks the QGV point based on peak BW of
> > > the intended QGV point passed by the driver. So the peak BW
> > > calculation must match the value expected by the pcode. Update
> > > the calculations as per the Bspec.
> > >
> > > Bspec: 64636
> > >
> > > Signed-off-by: Vinod Govindapillai <vinod.govindapillai@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/display/intel_bw.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c
> > > index 5fa599b04ca5..57f8204162dd 100644
> > > --- a/drivers/gpu/drm/i915/display/intel_bw.c
> > > +++ b/drivers/gpu/drm/i915/display/intel_bw.c
> > > @@ -179,7 +179,7 @@ static int mtl_read_qgv_point_info(struct drm_i915_private *dev_priv,
> > > val2 = intel_uncore_read(&dev_priv->uncore,
> > > MTL_MEM_SS_INFO_QGV_POINT_HIGH(point));
> > > dclk = REG_FIELD_GET(MTL_DCLK_MASK, val);
> > > - sp->dclk = DIV_ROUND_UP((16667 * dclk), 1000);
> > > + sp->dclk = (16667 * dclk + 500) / 1000;
> >
> > Hmm, wonder does it at least partly now intersects with what I'm doing in
> > https://patchwork.freedesktop.org/series/114982/
> >
> > I remember we were discussing if this "+500" is actually also rounding up
> > itself.
> >
> > The thing is that the way how rounding up is done for instance in DIV_ROUND_UP
> > also, if you check, if you lets say want to divide n by d, however you want to round
> > up the result, you add n = n + (d - 1) and then divide by d. This is how DIV_ROUND_UP works.
> > That effectively means that if n would be anything more than m*d, result would be not m,
> > but m + 1(note flooring would give m)
> >
> > Adding 500, when dividing by 1000 is also rouding up, however it is a bit weaker.
> > In example above that would mean, if we want to divide n by d, we first add n = n + d / 2
> > and then divide by d.
> > That effectively means that if n would be anything more than m*d + 500, result would not m,
> > but again m + 1(again note, that true flooeing would have given m, not m + 1)
> >
> > So it is still rounding up, but just being weaker/less precise though.
> >
> > If we would want to truly floor that division, we would want to get m, but not m + 1 from
> > above examples, which means that we should just divide n / d, without adding anything.
> > So in my opinion, if we want to floor (16667 * dclk / 1000) result - it should not have
> > both "DIV_ROUND_UP" and " + 500" things - thats what I've done in series which also was touching
> > this code as well.
> >
> > I think it would be nice to raise issue and clarify from HW team, if it was initial intention,
> > because adding + 500 is clearly doing rounding up as well, but it is just now on +-500(d/2)
> > granularity now,
> > while DIV_ROUND_UP worked with +-1 granularity. However both things are essentially "rounding up".
> > So in that case I would really want to challenge or clarify, what is written in BSpec.
> >
> > Stan
>
> Yes. Not much explanation about the addition of 500. I just blindly followed what was in that Bspec.
> Yes ideally div round_up is (n + d -1) / d. So what is the point of having 500 if the purpose is a
> rounding up unless it is accounting for some "other" factor. Anyway it is nice to get the
> clarification.
>
> So the "other" factor I assume is that pcode is using this formula to calculate QGV point peak BW.
> So in MTL as we pass this peak BW to pcode for compare and select the QGV point, driver and pcode
> calculations need to match.
Adding 500 here, essnetially means we get +1 to sp->dclk, whenever dclk has some reminder of that division
which is >= 500. So kinda unclear: we are being instructed now to "floor" "rounded up" calculations! :))
So we are now doing something between flooring and DIV_ROUND_UP for sp->dclk * 16667 / 1000.
What makes me think that there is some contradiction, or might be there is some hardware factor, which
works with 500 granularity, so that it makes sense to round up only if delta is >= 500, otherwise floor.
Stan
>
> BR
> Vinod
> >
> > > sp->t_rp = REG_FIELD_GET(MTL_TRP_MASK, val);
> > > sp->t_rcd = REG_FIELD_GET(MTL_TRCD_MASK, val);
> > >
> > > --
> > > 2.34.1
> > >
>
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2023-04-18 11:49 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-16 15:54 [Intel-gfx] [PATCH v1 0/4] Prepare for MTL sagv config patches Vinod Govindapillai
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 1/4] drm/i915: fix the derating percentage for MTL Vinod Govindapillai
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 2/4] drm/i915: update the QGV point frequency calculations Vinod Govindapillai
2023-04-18 9:25 ` Lisovskiy, Stanislav
2023-04-18 9:47 ` Govindapillai, Vinod
2023-04-18 11:49 ` Lisovskiy, Stanislav
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 3/4] drm/i915: store the peak bw per QGV point Vinod Govindapillai
2023-04-16 15:54 ` [Intel-gfx] [PATCH v1 4/4] drm/i915: extract intel_bw_check_qgv_points() Vinod Govindapillai
2023-04-16 17:23 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for Prepare for MTL sagv config patches Patchwork
2023-04-16 17:30 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2023-04-16 20:17 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox