* [PATCH 0/3] drm/i915/display: Reduce global state funcs boilerplate
@ 2024-12-19 21:48 Gustavo Sousa
2024-12-19 21:48 ` [PATCH 1/3] drm/i915/display: Do not assume zero offset when duplicating global state Gustavo Sousa
` (6 more replies)
0 siblings, 7 replies; 21+ messages in thread
From: Gustavo Sousa @ 2024-12-19 21:48 UTC (permalink / raw)
To: intel-gfx, intel-xe; +Cc: Ville Syrjälä, Jani Nikula
If we look at how the members of struct intel_global_state_funcs, we see
a common pattern repeating itself. We can reduce such boilerplate by
moving the common implementation to the generic global state code. This
series proposes that.
Gustavo Sousa (3):
drm/i915/display: Do not assume zero offset when duplicating global
state
drm/i915/display: Add infra to reduce global state funcs boilerplate
drm/i915/display: Use INTEL_GLOBAL_STATE_DEFAULTS
drivers/gpu/drm/i915/display/intel_bw.c | 21 +---------
drivers/gpu/drm/i915/display/intel_cdclk.c | 16 +++-----
.../gpu/drm/i915/display/intel_global_state.c | 41 ++++++++++++++++++-
.../gpu/drm/i915/display/intel_global_state.h | 15 +++++++
drivers/gpu/drm/i915/display/intel_pmdemand.c | 21 +---------
drivers/gpu/drm/i915/display/skl_watermark.c | 20 +--------
6 files changed, 63 insertions(+), 71 deletions(-)
--
2.47.1
^ permalink raw reply [flat|nested] 21+ messages in thread* [PATCH 1/3] drm/i915/display: Do not assume zero offset when duplicating global state 2024-12-19 21:48 [PATCH 0/3] drm/i915/display: Reduce global state funcs boilerplate Gustavo Sousa @ 2024-12-19 21:48 ` Gustavo Sousa 2024-12-19 22:43 ` Cavitt, Jonathan 2024-12-20 9:11 ` Ville Syrjälä 2024-12-19 21:48 ` [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate Gustavo Sousa ` (5 subsequent siblings) 6 siblings, 2 replies; 21+ messages in thread From: Gustavo Sousa @ 2024-12-19 21:48 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: Ville Syrjälä, Jani Nikula The current intel_*_duplicate_state() functions assume the offset for the base member of their state structures is zero when calling kmemdup(). While that is true today, such assumption should not be made and proper offset must be applied when calling kmemdup(), otherwise we will be duplicating the wrong memory area if, for some reason, the offset is changed in the future. As such, update each of those functions to use its respective to_*_state() as the parameter to kmemdup(). Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> --- drivers/gpu/drm/i915/display/intel_bw.c | 4 ++-- drivers/gpu/drm/i915/display/intel_cdclk.c | 4 ++-- drivers/gpu/drm/i915/display/intel_pmdemand.c | 4 ++-- drivers/gpu/drm/i915/display/skl_watermark.c | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c index 08e8a67ca74c..30236010e0ed 100644 --- a/drivers/gpu/drm/i915/display/intel_bw.c +++ b/drivers/gpu/drm/i915/display/intel_bw.c @@ -1425,9 +1425,9 @@ int intel_bw_atomic_check(struct intel_atomic_state *state) static struct intel_global_state * intel_bw_duplicate_state(struct intel_global_obj *obj) { - struct intel_bw_state *state; + struct intel_bw_state *state = to_intel_bw_state(obj->state); - state = kmemdup(obj->state, sizeof(*state), GFP_KERNEL); + state = kmemdup(state, sizeof(*state), GFP_KERNEL); if (!state) return NULL; diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c index 3506e576bf6b..fc084e2a4c6a 100644 --- a/drivers/gpu/drm/i915/display/intel_cdclk.c +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c @@ -3130,9 +3130,9 @@ static int fixed_modeset_calc_cdclk(struct intel_atomic_state *state) static struct intel_global_state *intel_cdclk_duplicate_state(struct intel_global_obj *obj) { - struct intel_cdclk_state *cdclk_state; + struct intel_cdclk_state *cdclk_state = to_intel_cdclk_state(obj->state); - cdclk_state = kmemdup(obj->state, sizeof(*cdclk_state), GFP_KERNEL); + cdclk_state = kmemdup(cdclk_state, sizeof(*cdclk_state), GFP_KERNEL); if (!cdclk_state) return NULL; diff --git a/drivers/gpu/drm/i915/display/intel_pmdemand.c b/drivers/gpu/drm/i915/display/intel_pmdemand.c index cdd314956a31..1f71efb7d04d 100644 --- a/drivers/gpu/drm/i915/display/intel_pmdemand.c +++ b/drivers/gpu/drm/i915/display/intel_pmdemand.c @@ -18,9 +18,9 @@ static struct intel_global_state * intel_pmdemand_duplicate_state(struct intel_global_obj *obj) { - struct intel_pmdemand_state *pmdemand_state; + struct intel_pmdemand_state *pmdemand_state = to_intel_pmdemand_state(obj->state); - pmdemand_state = kmemdup(obj->state, sizeof(*pmdemand_state), GFP_KERNEL); + pmdemand_state = kmemdup(pmdemand_state, sizeof(*pmdemand_state), GFP_KERNEL); if (!pmdemand_state) return NULL; diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c index 29e8ea91c858..b3d38e09df5a 100644 --- a/drivers/gpu/drm/i915/display/skl_watermark.c +++ b/drivers/gpu/drm/i915/display/skl_watermark.c @@ -3291,9 +3291,9 @@ static void skl_setup_wm_latency(struct drm_i915_private *i915) static struct intel_global_state *intel_dbuf_duplicate_state(struct intel_global_obj *obj) { - struct intel_dbuf_state *dbuf_state; + struct intel_dbuf_state *dbuf_state = to_intel_dbuf_state(obj->state); - dbuf_state = kmemdup(obj->state, sizeof(*dbuf_state), GFP_KERNEL); + dbuf_state = kmemdup(dbuf_state, sizeof(*dbuf_state), GFP_KERNEL); if (!dbuf_state) return NULL; -- 2.47.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* RE: [PATCH 1/3] drm/i915/display: Do not assume zero offset when duplicating global state 2024-12-19 21:48 ` [PATCH 1/3] drm/i915/display: Do not assume zero offset when duplicating global state Gustavo Sousa @ 2024-12-19 22:43 ` Cavitt, Jonathan 2024-12-20 9:11 ` Ville Syrjälä 1 sibling, 0 replies; 21+ messages in thread From: Cavitt, Jonathan @ 2024-12-19 22:43 UTC (permalink / raw) To: Sousa, Gustavo, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Ville Syrjälä, Nikula, Jani, Cavitt, Jonathan -----Original Message----- From: Intel-xe <intel-xe-bounces@lists.freedesktop.org> On Behalf Of Gustavo Sousa Sent: Thursday, December 19, 2024 1:49 PM To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>; Nikula, Jani <jani.nikula@intel.com> Subject: [PATCH 1/3] drm/i915/display: Do not assume zero offset when duplicating global state > > The current intel_*_duplicate_state() functions assume the offset for > the base member of their state structures is zero when calling > kmemdup(). While that is true today, such assumption should not be made > and proper offset must be applied when calling kmemdup(), otherwise we > will be duplicating the wrong memory area if, for some reason, the > offset is changed in the future. > > As such, update each of those functions to use its respective > to_*_state() as the parameter to kmemdup(). > > Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> LGTM. Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com> -Jonathan Cavitt > --- > drivers/gpu/drm/i915/display/intel_bw.c | 4 ++-- > drivers/gpu/drm/i915/display/intel_cdclk.c | 4 ++-- > drivers/gpu/drm/i915/display/intel_pmdemand.c | 4 ++-- > drivers/gpu/drm/i915/display/skl_watermark.c | 4 ++-- > 4 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c > index 08e8a67ca74c..30236010e0ed 100644 > --- a/drivers/gpu/drm/i915/display/intel_bw.c > +++ b/drivers/gpu/drm/i915/display/intel_bw.c > @@ -1425,9 +1425,9 @@ int intel_bw_atomic_check(struct intel_atomic_state *state) > static struct intel_global_state * > intel_bw_duplicate_state(struct intel_global_obj *obj) > { > - struct intel_bw_state *state; > + struct intel_bw_state *state = to_intel_bw_state(obj->state); > > - state = kmemdup(obj->state, sizeof(*state), GFP_KERNEL); > + state = kmemdup(state, sizeof(*state), GFP_KERNEL); > if (!state) > return NULL; > > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c > index 3506e576bf6b..fc084e2a4c6a 100644 > --- a/drivers/gpu/drm/i915/display/intel_cdclk.c > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c > @@ -3130,9 +3130,9 @@ static int fixed_modeset_calc_cdclk(struct intel_atomic_state *state) > > static struct intel_global_state *intel_cdclk_duplicate_state(struct intel_global_obj *obj) > { > - struct intel_cdclk_state *cdclk_state; > + struct intel_cdclk_state *cdclk_state = to_intel_cdclk_state(obj->state); > > - cdclk_state = kmemdup(obj->state, sizeof(*cdclk_state), GFP_KERNEL); > + cdclk_state = kmemdup(cdclk_state, sizeof(*cdclk_state), GFP_KERNEL); > if (!cdclk_state) > return NULL; > > diff --git a/drivers/gpu/drm/i915/display/intel_pmdemand.c b/drivers/gpu/drm/i915/display/intel_pmdemand.c > index cdd314956a31..1f71efb7d04d 100644 > --- a/drivers/gpu/drm/i915/display/intel_pmdemand.c > +++ b/drivers/gpu/drm/i915/display/intel_pmdemand.c > @@ -18,9 +18,9 @@ > static struct intel_global_state * > intel_pmdemand_duplicate_state(struct intel_global_obj *obj) > { > - struct intel_pmdemand_state *pmdemand_state; > + struct intel_pmdemand_state *pmdemand_state = to_intel_pmdemand_state(obj->state); > > - pmdemand_state = kmemdup(obj->state, sizeof(*pmdemand_state), GFP_KERNEL); > + pmdemand_state = kmemdup(pmdemand_state, sizeof(*pmdemand_state), GFP_KERNEL); > if (!pmdemand_state) > return NULL; > > diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c > index 29e8ea91c858..b3d38e09df5a 100644 > --- a/drivers/gpu/drm/i915/display/skl_watermark.c > +++ b/drivers/gpu/drm/i915/display/skl_watermark.c > @@ -3291,9 +3291,9 @@ static void skl_setup_wm_latency(struct drm_i915_private *i915) > > static struct intel_global_state *intel_dbuf_duplicate_state(struct intel_global_obj *obj) > { > - struct intel_dbuf_state *dbuf_state; > + struct intel_dbuf_state *dbuf_state = to_intel_dbuf_state(obj->state); > > - dbuf_state = kmemdup(obj->state, sizeof(*dbuf_state), GFP_KERNEL); > + dbuf_state = kmemdup(dbuf_state, sizeof(*dbuf_state), GFP_KERNEL); > if (!dbuf_state) > return NULL; > > -- > 2.47.1 > > ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 1/3] drm/i915/display: Do not assume zero offset when duplicating global state 2024-12-19 21:48 ` [PATCH 1/3] drm/i915/display: Do not assume zero offset when duplicating global state Gustavo Sousa 2024-12-19 22:43 ` Cavitt, Jonathan @ 2024-12-20 9:11 ` Ville Syrjälä 2024-12-20 13:37 ` Gustavo Sousa 1 sibling, 1 reply; 21+ messages in thread From: Ville Syrjälä @ 2024-12-20 9:11 UTC (permalink / raw) To: Gustavo Sousa; +Cc: intel-gfx, intel-xe, Jani Nikula On Thu, Dec 19, 2024 at 06:48:36PM -0300, Gustavo Sousa wrote: > The current intel_*_duplicate_state() functions assume the offset for > the base member of their state structures is zero when calling > kmemdup(). While that is true today, such assumption should not be made > and proper offset must be applied when calling kmemdup(), otherwise we > will be duplicating the wrong memory area if, for some reason, the > offset is changed in the future. All kms objects we use make that same assumption. I think the correct thing to do is to just throw in some BUILD_BUG_ON()/etc. to make the thing not build if that doesn't hold. I had a patch like that ages ago, but it's no doubt 110% stale by now. I suppose no real harm if avoiding that assumption in spots like this, but the &foo->base==NULL <-> foo==NULL assumptions we have all over the place are the far bigger issue. > > As such, update each of those functions to use its respective > to_*_state() as the parameter to kmemdup(). > > Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> > --- > drivers/gpu/drm/i915/display/intel_bw.c | 4 ++-- > drivers/gpu/drm/i915/display/intel_cdclk.c | 4 ++-- > drivers/gpu/drm/i915/display/intel_pmdemand.c | 4 ++-- > drivers/gpu/drm/i915/display/skl_watermark.c | 4 ++-- > 4 files changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c > index 08e8a67ca74c..30236010e0ed 100644 > --- a/drivers/gpu/drm/i915/display/intel_bw.c > +++ b/drivers/gpu/drm/i915/display/intel_bw.c > @@ -1425,9 +1425,9 @@ int intel_bw_atomic_check(struct intel_atomic_state *state) > static struct intel_global_state * > intel_bw_duplicate_state(struct intel_global_obj *obj) > { > - struct intel_bw_state *state; > + struct intel_bw_state *state = to_intel_bw_state(obj->state); > > - state = kmemdup(obj->state, sizeof(*state), GFP_KERNEL); > + state = kmemdup(state, sizeof(*state), GFP_KERNEL); > if (!state) > return NULL; > > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c > index 3506e576bf6b..fc084e2a4c6a 100644 > --- a/drivers/gpu/drm/i915/display/intel_cdclk.c > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c > @@ -3130,9 +3130,9 @@ static int fixed_modeset_calc_cdclk(struct intel_atomic_state *state) > > static struct intel_global_state *intel_cdclk_duplicate_state(struct intel_global_obj *obj) > { > - struct intel_cdclk_state *cdclk_state; > + struct intel_cdclk_state *cdclk_state = to_intel_cdclk_state(obj->state); > > - cdclk_state = kmemdup(obj->state, sizeof(*cdclk_state), GFP_KERNEL); > + cdclk_state = kmemdup(cdclk_state, sizeof(*cdclk_state), GFP_KERNEL); > if (!cdclk_state) > return NULL; > > diff --git a/drivers/gpu/drm/i915/display/intel_pmdemand.c b/drivers/gpu/drm/i915/display/intel_pmdemand.c > index cdd314956a31..1f71efb7d04d 100644 > --- a/drivers/gpu/drm/i915/display/intel_pmdemand.c > +++ b/drivers/gpu/drm/i915/display/intel_pmdemand.c > @@ -18,9 +18,9 @@ > static struct intel_global_state * > intel_pmdemand_duplicate_state(struct intel_global_obj *obj) > { > - struct intel_pmdemand_state *pmdemand_state; > + struct intel_pmdemand_state *pmdemand_state = to_intel_pmdemand_state(obj->state); > > - pmdemand_state = kmemdup(obj->state, sizeof(*pmdemand_state), GFP_KERNEL); > + pmdemand_state = kmemdup(pmdemand_state, sizeof(*pmdemand_state), GFP_KERNEL); > if (!pmdemand_state) > return NULL; > > diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c > index 29e8ea91c858..b3d38e09df5a 100644 > --- a/drivers/gpu/drm/i915/display/skl_watermark.c > +++ b/drivers/gpu/drm/i915/display/skl_watermark.c > @@ -3291,9 +3291,9 @@ static void skl_setup_wm_latency(struct drm_i915_private *i915) > > static struct intel_global_state *intel_dbuf_duplicate_state(struct intel_global_obj *obj) > { > - struct intel_dbuf_state *dbuf_state; > + struct intel_dbuf_state *dbuf_state = to_intel_dbuf_state(obj->state); > > - dbuf_state = kmemdup(obj->state, sizeof(*dbuf_state), GFP_KERNEL); > + dbuf_state = kmemdup(dbuf_state, sizeof(*dbuf_state), GFP_KERNEL); > if (!dbuf_state) > return NULL; > > -- > 2.47.1 -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 1/3] drm/i915/display: Do not assume zero offset when duplicating global state 2024-12-20 9:11 ` Ville Syrjälä @ 2024-12-20 13:37 ` Gustavo Sousa 0 siblings, 0 replies; 21+ messages in thread From: Gustavo Sousa @ 2024-12-20 13:37 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx, intel-xe, Jani Nikula Quoting Ville Syrjälä (2024-12-20 06:11:57-03:00) >On Thu, Dec 19, 2024 at 06:48:36PM -0300, Gustavo Sousa wrote: >> The current intel_*_duplicate_state() functions assume the offset for >> the base member of their state structures is zero when calling >> kmemdup(). While that is true today, such assumption should not be made >> and proper offset must be applied when calling kmemdup(), otherwise we >> will be duplicating the wrong memory area if, for some reason, the >> offset is changed in the future. > >All kms objects we use make that same assumption. I think the correct >thing to do is to just throw in some BUILD_BUG_ON()/etc. to make the >thing not build if that doesn't hold. I had a patch like that ages >ago, but it's no doubt 110% stale by now. Okay. In this case, if we were to follow this route, some questions: 1) Where would be the best place to put BUILD_BUG_ON() (or static_assert())? Would requiring the usage of some macro provided by intel_global_state.h be acceptable? Something like: struct my_state { struct intel_global_state base; ... }; INTEL_GLOBAL_STATE_SUBCLASS(struct my_state, base); Well, we are still requiring a macro call here when compared to the explicit assert on the offset, but now the semantics is that the developer advertising a subclass of intel_global_state instead of hand rolling the necessary checks herself. 2) If we require the embedded struct to be always the first member, would there be any point in defining and using the to_*_state() macros? I don't see much benefit of that over simply casting the pointer if the offset is always zero. I might be missing something though. > >I suppose no real harm if avoiding that assumption in spots like >this, but the &foo->base==NULL <-> foo==NULL assumptions we have >all over the place are the far bigger issue. Yeah, maybe requiring base to be the first member is a more manageable approach indeed. -- Gustavo Sousa > >> >> As such, update each of those functions to use its respective >> to_*_state() as the parameter to kmemdup(). >> >> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> >> --- >> drivers/gpu/drm/i915/display/intel_bw.c | 4 ++-- >> drivers/gpu/drm/i915/display/intel_cdclk.c | 4 ++-- >> drivers/gpu/drm/i915/display/intel_pmdemand.c | 4 ++-- >> drivers/gpu/drm/i915/display/skl_watermark.c | 4 ++-- >> 4 files changed, 8 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c >> index 08e8a67ca74c..30236010e0ed 100644 >> --- a/drivers/gpu/drm/i915/display/intel_bw.c >> +++ b/drivers/gpu/drm/i915/display/intel_bw.c >> @@ -1425,9 +1425,9 @@ int intel_bw_atomic_check(struct intel_atomic_state *state) >> static struct intel_global_state * >> intel_bw_duplicate_state(struct intel_global_obj *obj) >> { >> - struct intel_bw_state *state; >> + struct intel_bw_state *state = to_intel_bw_state(obj->state); >> >> - state = kmemdup(obj->state, sizeof(*state), GFP_KERNEL); >> + state = kmemdup(state, sizeof(*state), GFP_KERNEL); >> if (!state) >> return NULL; >> >> diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c >> index 3506e576bf6b..fc084e2a4c6a 100644 >> --- a/drivers/gpu/drm/i915/display/intel_cdclk.c >> +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c >> @@ -3130,9 +3130,9 @@ static int fixed_modeset_calc_cdclk(struct intel_atomic_state *state) >> >> static struct intel_global_state *intel_cdclk_duplicate_state(struct intel_global_obj *obj) >> { >> - struct intel_cdclk_state *cdclk_state; >> + struct intel_cdclk_state *cdclk_state = to_intel_cdclk_state(obj->state); >> >> - cdclk_state = kmemdup(obj->state, sizeof(*cdclk_state), GFP_KERNEL); >> + cdclk_state = kmemdup(cdclk_state, sizeof(*cdclk_state), GFP_KERNEL); >> if (!cdclk_state) >> return NULL; >> >> diff --git a/drivers/gpu/drm/i915/display/intel_pmdemand.c b/drivers/gpu/drm/i915/display/intel_pmdemand.c >> index cdd314956a31..1f71efb7d04d 100644 >> --- a/drivers/gpu/drm/i915/display/intel_pmdemand.c >> +++ b/drivers/gpu/drm/i915/display/intel_pmdemand.c >> @@ -18,9 +18,9 @@ >> static struct intel_global_state * >> intel_pmdemand_duplicate_state(struct intel_global_obj *obj) >> { >> - struct intel_pmdemand_state *pmdemand_state; >> + struct intel_pmdemand_state *pmdemand_state = to_intel_pmdemand_state(obj->state); >> >> - pmdemand_state = kmemdup(obj->state, sizeof(*pmdemand_state), GFP_KERNEL); >> + pmdemand_state = kmemdup(pmdemand_state, sizeof(*pmdemand_state), GFP_KERNEL); >> if (!pmdemand_state) >> return NULL; >> >> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c >> index 29e8ea91c858..b3d38e09df5a 100644 >> --- a/drivers/gpu/drm/i915/display/skl_watermark.c >> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c >> @@ -3291,9 +3291,9 @@ static void skl_setup_wm_latency(struct drm_i915_private *i915) >> >> static struct intel_global_state *intel_dbuf_duplicate_state(struct intel_global_obj *obj) >> { >> - struct intel_dbuf_state *dbuf_state; >> + struct intel_dbuf_state *dbuf_state = to_intel_dbuf_state(obj->state); >> >> - dbuf_state = kmemdup(obj->state, sizeof(*dbuf_state), GFP_KERNEL); >> + dbuf_state = kmemdup(dbuf_state, sizeof(*dbuf_state), GFP_KERNEL); >> if (!dbuf_state) >> return NULL; >> >> -- >> 2.47.1 > >-- >Ville Syrjälä >Intel ^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate 2024-12-19 21:48 [PATCH 0/3] drm/i915/display: Reduce global state funcs boilerplate Gustavo Sousa 2024-12-19 21:48 ` [PATCH 1/3] drm/i915/display: Do not assume zero offset when duplicating global state Gustavo Sousa @ 2024-12-19 21:48 ` Gustavo Sousa 2024-12-19 22:44 ` Cavitt, Jonathan ` (3 more replies) 2024-12-19 21:48 ` [PATCH 3/3] drm/i915/display: Use INTEL_GLOBAL_STATE_DEFAULTS Gustavo Sousa ` (4 subsequent siblings) 6 siblings, 4 replies; 21+ messages in thread From: Gustavo Sousa @ 2024-12-19 21:48 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: Ville Syrjälä, Jani Nikula If we look at how the members of struct intel_global_state_funcs, we see a common pattern repeating itself. Let's add the necessary infra-structure to allow reducing the boilerplate. We do that by adding common generic implementations for each member and adding a macro INTEL_GLOBAL_STATE_DEFAULTS() to be used when initializing an instance of struct intel_global_state_funcs. That way, a global state that does not need custom behavior can have its funcs structure be initialized as in the following example, static const struct intel_global_state_funcs <prefix>_funcs = { INTEL_GLOBAL_STATE_DEFAULTS(struct <prefix>_state, <base_member_name>), }; , without the need to implementing the functions. That doesn't come without cost - we will need to store two size_t members -, but that cost is arguably justified by the simplification gained. In an upcoming change we will put that infra into action on existing users. Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> --- .../gpu/drm/i915/display/intel_global_state.c | 41 ++++++++++++++++++- .../gpu/drm/i915/display/intel_global_state.h | 15 +++++++ 2 files changed, 54 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_global_state.c b/drivers/gpu/drm/i915/display/intel_global_state.c index cbcd1e91b7be..4b4c33fa99fb 100644 --- a/drivers/gpu/drm/i915/display/intel_global_state.c +++ b/drivers/gpu/drm/i915/display/intel_global_state.c @@ -59,7 +59,10 @@ static void __intel_atomic_global_state_free(struct kref *kref) commit_put(obj_state->commit); - obj->funcs->atomic_destroy_state(obj, obj_state); + if (obj->funcs->atomic_destroy_state) + obj->funcs->atomic_destroy_state(obj, obj_state); + else + intel_atomic_global_destroy_state_common(obj, obj_state); } static void intel_atomic_global_state_put(struct intel_global_state *obj_state) @@ -164,7 +167,11 @@ intel_atomic_get_global_obj_state(struct intel_atomic_state *state, index = state->num_global_objs; memset(&state->global_objs[index], 0, sizeof(*state->global_objs)); - obj_state = obj->funcs->atomic_duplicate_state(obj); + if (obj->funcs->atomic_duplicate_state) + obj_state = obj->funcs->atomic_duplicate_state(obj); + else + obj_state = intel_atomic_global_duplicate_state_common(obj); + if (!obj_state) return ERR_PTR(-ENOMEM); @@ -382,3 +389,33 @@ intel_atomic_global_state_commit_done(struct intel_atomic_state *state) complete_all(&commit->done); } } + +struct intel_global_state * +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj) +{ + void *state_wrapper; + + if (WARN_ON(obj->funcs->state_size == 0)) + return NULL; + + state_wrapper = (void *)obj->state - obj->funcs->base_offset; + + state_wrapper = kmemdup(state_wrapper, obj->funcs->state_size, GFP_KERNEL); + if (!state_wrapper) + return NULL; + + return state_wrapper + obj->funcs->base_offset; +} + +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, + struct intel_global_state *state) +{ + void *state_wrapper; + + if (WARN_ON(obj->funcs->state_size == 0)) + return; + + state_wrapper = (void *)state - obj->funcs->base_offset; + + kfree(state_wrapper); +} diff --git a/drivers/gpu/drm/i915/display/intel_global_state.h b/drivers/gpu/drm/i915/display/intel_global_state.h index 6506a8e32972..e47e007225cc 100644 --- a/drivers/gpu/drm/i915/display/intel_global_state.h +++ b/drivers/gpu/drm/i915/display/intel_global_state.h @@ -8,6 +8,8 @@ #include <linux/kref.h> #include <linux/list.h> +#include <linux/stddef.h> +#include <linux/types.h> struct drm_i915_private; struct intel_atomic_state; @@ -15,6 +17,10 @@ struct intel_global_obj; struct intel_global_state; struct intel_global_state_funcs { + /* state_size and base_offset are initialized by INTEL_GLOBAL_STATE_DEFAULTS() */ + size_t state_size; + size_t base_offset; + struct intel_global_state *(*atomic_duplicate_state)(struct intel_global_obj *obj); void (*atomic_destroy_state)(struct intel_global_obj *obj, struct intel_global_state *state); @@ -26,6 +32,10 @@ struct intel_global_obj { const struct intel_global_state_funcs *funcs; }; +#define INTEL_GLOBAL_STATE_DEFAULTS(type, base_member) \ + .state_size = sizeof(type), \ + .base_offset = offsetof(type, base_member) + #define intel_for_each_global_obj(obj, dev_priv) \ list_for_each_entry(obj, &(dev_priv)->display.global.obj_list, head) @@ -96,4 +106,9 @@ int intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *s bool intel_atomic_global_state_is_serialized(struct intel_atomic_state *state); +struct intel_global_state * +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj); +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, + struct intel_global_state *state); + #endif -- 2.47.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* RE: [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate 2024-12-19 21:48 ` [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate Gustavo Sousa @ 2024-12-19 22:44 ` Cavitt, Jonathan 2024-12-20 13:43 ` Gustavo Sousa 2024-12-20 8:50 ` Jani Nikula ` (2 subsequent siblings) 3 siblings, 1 reply; 21+ messages in thread From: Cavitt, Jonathan @ 2024-12-19 22:44 UTC (permalink / raw) To: Sousa, Gustavo, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Ville Syrjälä, Nikula, Jani, Cavitt, Jonathan -----Original Message----- From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Gustavo Sousa Sent: Thursday, December 19, 2024 1:49 PM To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>; Nikula, Jani <jani.nikula@intel.com> Subject: [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate > > If we look at how the members of struct intel_global_state_funcs, we see > a common pattern repeating itself. Let's add the necessary > infra-structure to allow reducing the boilerplate. We do that by > adding common generic implementations for each member and adding a macro > INTEL_GLOBAL_STATE_DEFAULTS() to be used when initializing an instance > of struct intel_global_state_funcs. > > That way, a global state that does not need custom behavior can have > its funcs structure be initialized as in the following example, > > static const struct intel_global_state_funcs <prefix>_funcs = { > INTEL_GLOBAL_STATE_DEFAULTS(struct <prefix>_state, <base_member_name>), > }; > > , without the need to implementing the functions. > > That doesn't come without cost - we will need to store two size_t > members -, but that cost is arguably justified by the simplification > gained. > > In an upcoming change we will put that infra into action on existing > users. > > Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> > --- > .../gpu/drm/i915/display/intel_global_state.c | 41 ++++++++++++++++++- > .../gpu/drm/i915/display/intel_global_state.h | 15 +++++++ > 2 files changed, 54 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_global_state.c b/drivers/gpu/drm/i915/display/intel_global_state.c > index cbcd1e91b7be..4b4c33fa99fb 100644 > --- a/drivers/gpu/drm/i915/display/intel_global_state.c > +++ b/drivers/gpu/drm/i915/display/intel_global_state.c > @@ -59,7 +59,10 @@ static void __intel_atomic_global_state_free(struct kref *kref) > > commit_put(obj_state->commit); > > - obj->funcs->atomic_destroy_state(obj, obj_state); > + if (obj->funcs->atomic_destroy_state) This is good, though I think it's standard practice as a part of these kinds of sanity checks to assert that the functions pointer also exists before attempting to dereference into a function itself. Or, in simpler terms, I think we want to check obj->funcs here, in addition to the atomic_destroy_state: """ If (obj->funcs && obj->funcs->atomic_destroy_state) """ Though maybe obj->funcs has some guarantee associated with it that ensures it always exists, making this sanity check unnecessary? Much like the guarantee obj exists? I'm not familiar enough with the display driver one way or the other to make that declaration, so I won't block on this. > + obj->funcs->atomic_destroy_state(obj, obj_state); > + else > + intel_atomic_global_destroy_state_common(obj, obj_state); > } > > static void intel_atomic_global_state_put(struct intel_global_state *obj_state) > @@ -164,7 +167,11 @@ intel_atomic_get_global_obj_state(struct intel_atomic_state *state, > index = state->num_global_objs; > memset(&state->global_objs[index], 0, sizeof(*state->global_objs)); > > - obj_state = obj->funcs->atomic_duplicate_state(obj); > + if (obj->funcs->atomic_duplicate_state) Same comment as above, except with atomic_duplicate_state instead of atomic_destroy_state. > + obj_state = obj->funcs->atomic_duplicate_state(obj); > + else > + obj_state = intel_atomic_global_duplicate_state_common(obj); > + > if (!obj_state) > return ERR_PTR(-ENOMEM); > > @@ -382,3 +389,33 @@ intel_atomic_global_state_commit_done(struct intel_atomic_state *state) > complete_all(&commit->done); > } > } > + > +struct intel_global_state * > +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj) I personally prefer these kinds of functions to be defined before their first usage when possible, as it mirrors how we need to define static functions before their first uses. However, I recognize that because this function is defined in intel_global_state.h, it's not necessary to maintain that kind of function ordering and, in fact, it's more important to maintain function ordering parity with the header file. So I'll leave that kind of change to your discretion. > +{ > + void *state_wrapper; > + > + if (WARN_ON(obj->funcs->state_size == 0)) > + return NULL; > + > + state_wrapper = (void *)obj->state - obj->funcs->base_offset; > + > + state_wrapper = kmemdup(state_wrapper, obj->funcs->state_size, GFP_KERNEL); > + if (!state_wrapper) > + return NULL; > + > + return state_wrapper + obj->funcs->base_offset; > +} > + > +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, > + struct intel_global_state *state) > +{ > + void *state_wrapper; > + > + if (WARN_ON(obj->funcs->state_size == 0)) > + return; > + > + state_wrapper = (void *)state - obj->funcs->base_offset; > + > + kfree(state_wrapper); > +} > diff --git a/drivers/gpu/drm/i915/display/intel_global_state.h b/drivers/gpu/drm/i915/display/intel_global_state.h > index 6506a8e32972..e47e007225cc 100644 > --- a/drivers/gpu/drm/i915/display/intel_global_state.h > +++ b/drivers/gpu/drm/i915/display/intel_global_state.h > @@ -8,6 +8,8 @@ > > #include <linux/kref.h> > #include <linux/list.h> > +#include <linux/stddef.h> > +#include <linux/types.h> > > struct drm_i915_private; > struct intel_atomic_state; > @@ -15,6 +17,10 @@ struct intel_global_obj; > struct intel_global_state; > > struct intel_global_state_funcs { > + /* state_size and base_offset are initialized by INTEL_GLOBAL_STATE_DEFAULTS() */ > + size_t state_size; > + size_t base_offset; > + > struct intel_global_state *(*atomic_duplicate_state)(struct intel_global_obj *obj); > void (*atomic_destroy_state)(struct intel_global_obj *obj, > struct intel_global_state *state); > @@ -26,6 +32,10 @@ struct intel_global_obj { > const struct intel_global_state_funcs *funcs; > }; > > +#define INTEL_GLOBAL_STATE_DEFAULTS(type, base_member) \ > + .state_size = sizeof(type), \ > + .base_offset = offsetof(type, base_member) > + > #define intel_for_each_global_obj(obj, dev_priv) \ > list_for_each_entry(obj, &(dev_priv)->display.global.obj_list, head) > > @@ -96,4 +106,9 @@ int intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *s > > bool intel_atomic_global_state_is_serialized(struct intel_atomic_state *state); > > +struct intel_global_state * > +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj); > +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, > + struct intel_global_state *state); > + I have no major complaints. Just some notes above. Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com> -Jonathan Cavitt > #endif > -- > 2.47.1 > > ^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate 2024-12-19 22:44 ` Cavitt, Jonathan @ 2024-12-20 13:43 ` Gustavo Sousa 0 siblings, 0 replies; 21+ messages in thread From: Gustavo Sousa @ 2024-12-20 13:43 UTC (permalink / raw) To: Cavitt, Jonathan, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Ville Syrjälä, Nikula, Jani, Cavitt, Jonathan Quoting Cavitt, Jonathan (2024-12-19 19:44:12-03:00) >-----Original Message----- >From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Gustavo Sousa >Sent: Thursday, December 19, 2024 1:49 PM >To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org >Cc: Ville Syrj�l� <ville.syrjala@linux.intel.com>; Nikula, Jani <jani.nikula@intel.com> >Subject: [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate >> >> If we look at how the members of struct intel_global_state_funcs, we see >> a common pattern repeating itself. Let's add the necessary >> infra-structure to allow reducing the boilerplate. We do that by >> adding common generic implementations for each member and adding a macro >> INTEL_GLOBAL_STATE_DEFAULTS() to be used when initializing an instance >> of struct intel_global_state_funcs. >> >> That way, a global state that does not need custom behavior can have >> its funcs structure be initialized as in the following example, >> >> static const struct intel_global_state_funcs <prefix>_funcs = { >> INTEL_GLOBAL_STATE_DEFAULTS(struct <prefix>_state, <base_member_name>), >> }; >> >> , without the need to implementing the functions. >> >> That doesn't come without cost - we will need to store two size_t >> members -, but that cost is arguably justified by the simplification >> gained. >> >> In an upcoming change we will put that infra into action on existing >> users. >> >> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> >> --- >> .../gpu/drm/i915/display/intel_global_state.c | 41 ++++++++++++++++++- >> .../gpu/drm/i915/display/intel_global_state.h | 15 +++++++ >> 2 files changed, 54 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_global_state.c b/drivers/gpu/drm/i915/display/intel_global_state.c >> index cbcd1e91b7be..4b4c33fa99fb 100644 >> --- a/drivers/gpu/drm/i915/display/intel_global_state.c >> +++ b/drivers/gpu/drm/i915/display/intel_global_state.c >> @@ -59,7 +59,10 @@ static void __intel_atomic_global_state_free(struct kref *kref) >> >> commit_put(obj_state->commit); >> >> - obj->funcs->atomic_destroy_state(obj, obj_state); >> + if (obj->funcs->atomic_destroy_state) > >This is good, though I think it's standard practice as a part of >these kinds of sanity checks to assert that the functions pointer >also exists before attempting to dereference into a function itself. > >Or, in simpler terms, I think we want to check obj->funcs here, >in addition to the atomic_destroy_state: >""" > If (obj->funcs && obj->funcs->atomic_destroy_state) >""" >Though maybe obj->funcs has some guarantee associated with >it that ensures it always exists, making this sanity check unnecessary? >Much like the guarantee obj exists? I'm not familiar enough with the >display driver one way or the other to make that declaration, so I >won't block on this. It is a bug obj->funcs to be NULL. The funcs member is initialized with intel_atomic_global_obj_init(), which must be called for every tracked global object. Furthermore, checking (obj->funcs && obj->funcs->atomic_destroy_state) would be problematic because intel_atomic_global_duplicate_state_common() relies on obj->funcs being a valid pointer (as does all of the global state logic). -- Gustavo Sousa > >> + obj->funcs->atomic_destroy_state(obj, obj_state); >> + else >> + intel_atomic_global_destroy_state_common(obj, obj_state); >> } >> >> static void intel_atomic_global_state_put(struct intel_global_state *obj_state) >> @@ -164,7 +167,11 @@ intel_atomic_get_global_obj_state(struct intel_atomic_state *state, >> index = state->num_global_objs; >> memset(&state->global_objs[index], 0, sizeof(*state->global_objs)); >> >> - obj_state = obj->funcs->atomic_duplicate_state(obj); >> + if (obj->funcs->atomic_duplicate_state) > >Same comment as above, except with atomic_duplicate_state >instead of atomic_destroy_state. > >> + obj_state = obj->funcs->atomic_duplicate_state(obj); >> + else >> + obj_state = intel_atomic_global_duplicate_state_common(obj); >> + >> if (!obj_state) >> return ERR_PTR(-ENOMEM); >> >> @@ -382,3 +389,33 @@ intel_atomic_global_state_commit_done(struct intel_atomic_state *state) >> complete_all(&commit->done); >> } >> } >> + >> +struct intel_global_state * >> +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj) > >I personally prefer these kinds of functions to be defined before their >first usage when possible, as it mirrors how we need to define static >functions before their first uses. However, I recognize that because >this function is defined in intel_global_state.h, it's not necessary to >maintain that kind of function ordering and, in fact, it's more >important to maintain function ordering parity with the header >file. So I'll leave that kind of change to your discretion. > >> +{ >> + void *state_wrapper; >> + >> + if (WARN_ON(obj->funcs->state_size == 0)) >> + return NULL; >> + >> + state_wrapper = (void *)obj->state - obj->funcs->base_offset; >> + >> + state_wrapper = kmemdup(state_wrapper, obj->funcs->state_size, GFP_KERNEL); >> + if (!state_wrapper) >> + return NULL; >> + >> + return state_wrapper + obj->funcs->base_offset; >> +} >> + >> +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, >> + struct intel_global_state *state) >> +{ >> + void *state_wrapper; >> + >> + if (WARN_ON(obj->funcs->state_size == 0)) >> + return; >> + >> + state_wrapper = (void *)state - obj->funcs->base_offset; >> + >> + kfree(state_wrapper); >> +} >> diff --git a/drivers/gpu/drm/i915/display/intel_global_state.h b/drivers/gpu/drm/i915/display/intel_global_state.h >> index 6506a8e32972..e47e007225cc 100644 >> --- a/drivers/gpu/drm/i915/display/intel_global_state.h >> +++ b/drivers/gpu/drm/i915/display/intel_global_state.h >> @@ -8,6 +8,8 @@ >> >> #include <linux/kref.h> >> #include <linux/list.h> >> +#include <linux/stddef.h> >> +#include <linux/types.h> >> >> struct drm_i915_private; >> struct intel_atomic_state; >> @@ -15,6 +17,10 @@ struct intel_global_obj; >> struct intel_global_state; >> >> struct intel_global_state_funcs { >> + /* state_size and base_offset are initialized by INTEL_GLOBAL_STATE_DEFAULTS() */ >> + size_t state_size; >> + size_t base_offset; >> + >> struct intel_global_state *(*atomic_duplicate_state)(struct intel_global_obj *obj); >> void (*atomic_destroy_state)(struct intel_global_obj *obj, >> struct intel_global_state *state); >> @@ -26,6 +32,10 @@ struct intel_global_obj { >> const struct intel_global_state_funcs *funcs; >> }; >> >> +#define INTEL_GLOBAL_STATE_DEFAULTS(type, base_member) \ >> + .state_size = sizeof(type), \ >> + .base_offset = offsetof(type, base_member) >> + >> #define intel_for_each_global_obj(obj, dev_priv) \ >> list_for_each_entry(obj, &(dev_priv)->display.global.obj_list, head) >> >> @@ -96,4 +106,9 @@ int intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *s >> >> bool intel_atomic_global_state_is_serialized(struct intel_atomic_state *state); >> >> +struct intel_global_state * >> +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj); >> +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, >> + struct intel_global_state *state); >> + > >I have no major complaints. Just some notes above. >Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel.com> >-Jonathan Cavitt > >> #endif >> -- >> 2.47.1 >> >> ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate 2024-12-19 21:48 ` [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate Gustavo Sousa 2024-12-19 22:44 ` Cavitt, Jonathan @ 2024-12-20 8:50 ` Jani Nikula 2024-12-20 13:54 ` Gustavo Sousa 2024-12-20 8:51 ` Jani Nikula 2024-12-20 9:23 ` Ville Syrjälä 3 siblings, 1 reply; 21+ messages in thread From: Jani Nikula @ 2024-12-20 8:50 UTC (permalink / raw) To: Gustavo Sousa, intel-gfx, intel-xe; +Cc: Ville Syrjälä On Thu, 19 Dec 2024, Gustavo Sousa <gustavo.sousa@intel.com> wrote: > If we look at how the members of struct intel_global_state_funcs, we see > a common pattern repeating itself. Let's add the necessary > infra-structure to allow reducing the boilerplate. We do that by > adding common generic implementations for each member and adding a macro > INTEL_GLOBAL_STATE_DEFAULTS() to be used when initializing an instance > of struct intel_global_state_funcs. > > That way, a global state that does not need custom behavior can have > its funcs structure be initialized as in the following example, > > static const struct intel_global_state_funcs <prefix>_funcs = { > INTEL_GLOBAL_STATE_DEFAULTS(struct <prefix>_state, <base_member_name>), > }; > > , without the need to implementing the functions. > > That doesn't come without cost - we will need to store two size_t > members -, but that cost is arguably justified by the simplification > gained. > > In an upcoming change we will put that infra into action on existing > users. > > Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> > --- > .../gpu/drm/i915/display/intel_global_state.c | 41 ++++++++++++++++++- > .../gpu/drm/i915/display/intel_global_state.h | 15 +++++++ > 2 files changed, 54 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_global_state.c b/drivers/gpu/drm/i915/display/intel_global_state.c > index cbcd1e91b7be..4b4c33fa99fb 100644 > --- a/drivers/gpu/drm/i915/display/intel_global_state.c > +++ b/drivers/gpu/drm/i915/display/intel_global_state.c > @@ -59,7 +59,10 @@ static void __intel_atomic_global_state_free(struct kref *kref) > > commit_put(obj_state->commit); > > - obj->funcs->atomic_destroy_state(obj, obj_state); > + if (obj->funcs->atomic_destroy_state) > + obj->funcs->atomic_destroy_state(obj, obj_state); > + else > + intel_atomic_global_destroy_state_common(obj, obj_state); > } > > static void intel_atomic_global_state_put(struct intel_global_state *obj_state) > @@ -164,7 +167,11 @@ intel_atomic_get_global_obj_state(struct intel_atomic_state *state, > index = state->num_global_objs; > memset(&state->global_objs[index], 0, sizeof(*state->global_objs)); > > - obj_state = obj->funcs->atomic_duplicate_state(obj); > + if (obj->funcs->atomic_duplicate_state) > + obj_state = obj->funcs->atomic_duplicate_state(obj); > + else > + obj_state = intel_atomic_global_duplicate_state_common(obj); > + > if (!obj_state) > return ERR_PTR(-ENOMEM); > > @@ -382,3 +389,33 @@ intel_atomic_global_state_commit_done(struct intel_atomic_state *state) > complete_all(&commit->done); > } > } > + > +struct intel_global_state * > +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj) > +{ > + void *state_wrapper; > + > + if (WARN_ON(obj->funcs->state_size == 0)) > + return NULL; > + > + state_wrapper = (void *)obj->state - obj->funcs->base_offset; > + > + state_wrapper = kmemdup(state_wrapper, obj->funcs->state_size, GFP_KERNEL); > + if (!state_wrapper) > + return NULL; > + > + return state_wrapper + obj->funcs->base_offset; > +} > + > +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, > + struct intel_global_state *state) > +{ > + void *state_wrapper; > + > + if (WARN_ON(obj->funcs->state_size == 0)) > + return; > + > + state_wrapper = (void *)state - obj->funcs->base_offset; > + > + kfree(state_wrapper); > +} > diff --git a/drivers/gpu/drm/i915/display/intel_global_state.h b/drivers/gpu/drm/i915/display/intel_global_state.h > index 6506a8e32972..e47e007225cc 100644 > --- a/drivers/gpu/drm/i915/display/intel_global_state.h > +++ b/drivers/gpu/drm/i915/display/intel_global_state.h > @@ -8,6 +8,8 @@ > > #include <linux/kref.h> > #include <linux/list.h> > +#include <linux/stddef.h> > +#include <linux/types.h> > > struct drm_i915_private; > struct intel_atomic_state; > @@ -15,6 +17,10 @@ struct intel_global_obj; > struct intel_global_state; > > struct intel_global_state_funcs { > + /* state_size and base_offset are initialized by INTEL_GLOBAL_STATE_DEFAULTS() */ > + size_t state_size; > + size_t base_offset; > + Gut feeling says these should be part of struct intel_global_state rather than struct intel_global_state_funcs. Keyword being "funcs". They would have to be passed to intel_atomic_global_obj_init() and initialized runtime. That's a downside. But then you could do away with the funcs struct altogether when defaults are used, and pass NULL. And you could also drop INTEL_GLOBAL_STATE_DEFAULTS() which I don't find particularly pretty. BR, Jani. > struct intel_global_state *(*atomic_duplicate_state)(struct intel_global_obj *obj); > void (*atomic_destroy_state)(struct intel_global_obj *obj, > struct intel_global_state *state); > @@ -26,6 +32,10 @@ struct intel_global_obj { > const struct intel_global_state_funcs *funcs; > }; > > +#define INTEL_GLOBAL_STATE_DEFAULTS(type, base_member) \ > + .state_size = sizeof(type), \ > + .base_offset = offsetof(type, base_member) > + > #define intel_for_each_global_obj(obj, dev_priv) \ > list_for_each_entry(obj, &(dev_priv)->display.global.obj_list, head) > > @@ -96,4 +106,9 @@ int intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *s > > bool intel_atomic_global_state_is_serialized(struct intel_atomic_state *state); > > +struct intel_global_state * > +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj); > +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, > + struct intel_global_state *state); > + > #endif -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate 2024-12-20 8:50 ` Jani Nikula @ 2024-12-20 13:54 ` Gustavo Sousa 0 siblings, 0 replies; 21+ messages in thread From: Gustavo Sousa @ 2024-12-20 13:54 UTC (permalink / raw) To: Jani Nikula, intel-gfx, intel-xe; +Cc: Ville Syrjälä Quoting Jani Nikula (2024-12-20 05:50:05-03:00) >On Thu, 19 Dec 2024, Gustavo Sousa <gustavo.sousa@intel.com> wrote: >> If we look at how the members of struct intel_global_state_funcs, we see >> a common pattern repeating itself. Let's add the necessary >> infra-structure to allow reducing the boilerplate. We do that by >> adding common generic implementations for each member and adding a macro >> INTEL_GLOBAL_STATE_DEFAULTS() to be used when initializing an instance >> of struct intel_global_state_funcs. >> >> That way, a global state that does not need custom behavior can have >> its funcs structure be initialized as in the following example, >> >> static const struct intel_global_state_funcs <prefix>_funcs = { >> INTEL_GLOBAL_STATE_DEFAULTS(struct <prefix>_state, <base_member_name>), >> }; >> >> , without the need to implementing the functions. >> >> That doesn't come without cost - we will need to store two size_t >> members -, but that cost is arguably justified by the simplification >> gained. >> >> In an upcoming change we will put that infra into action on existing >> users. >> >> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> >> --- >> .../gpu/drm/i915/display/intel_global_state.c | 41 ++++++++++++++++++- >> .../gpu/drm/i915/display/intel_global_state.h | 15 +++++++ >> 2 files changed, 54 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_global_state.c b/drivers/gpu/drm/i915/display/intel_global_state.c >> index cbcd1e91b7be..4b4c33fa99fb 100644 >> --- a/drivers/gpu/drm/i915/display/intel_global_state.c >> +++ b/drivers/gpu/drm/i915/display/intel_global_state.c >> @@ -59,7 +59,10 @@ static void __intel_atomic_global_state_free(struct kref *kref) >> >> commit_put(obj_state->commit); >> >> - obj->funcs->atomic_destroy_state(obj, obj_state); >> + if (obj->funcs->atomic_destroy_state) >> + obj->funcs->atomic_destroy_state(obj, obj_state); >> + else >> + intel_atomic_global_destroy_state_common(obj, obj_state); >> } >> >> static void intel_atomic_global_state_put(struct intel_global_state *obj_state) >> @@ -164,7 +167,11 @@ intel_atomic_get_global_obj_state(struct intel_atomic_state *state, >> index = state->num_global_objs; >> memset(&state->global_objs[index], 0, sizeof(*state->global_objs)); >> >> - obj_state = obj->funcs->atomic_duplicate_state(obj); >> + if (obj->funcs->atomic_duplicate_state) >> + obj_state = obj->funcs->atomic_duplicate_state(obj); >> + else >> + obj_state = intel_atomic_global_duplicate_state_common(obj); >> + >> if (!obj_state) >> return ERR_PTR(-ENOMEM); >> >> @@ -382,3 +389,33 @@ intel_atomic_global_state_commit_done(struct intel_atomic_state *state) >> complete_all(&commit->done); >> } >> } >> + >> +struct intel_global_state * >> +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj) >> +{ >> + void *state_wrapper; >> + >> + if (WARN_ON(obj->funcs->state_size == 0)) >> + return NULL; >> + >> + state_wrapper = (void *)obj->state - obj->funcs->base_offset; >> + >> + state_wrapper = kmemdup(state_wrapper, obj->funcs->state_size, GFP_KERNEL); >> + if (!state_wrapper) >> + return NULL; >> + >> + return state_wrapper + obj->funcs->base_offset; >> +} >> + >> +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, >> + struct intel_global_state *state) >> +{ >> + void *state_wrapper; >> + >> + if (WARN_ON(obj->funcs->state_size == 0)) >> + return; >> + >> + state_wrapper = (void *)state - obj->funcs->base_offset; >> + >> + kfree(state_wrapper); >> +} >> diff --git a/drivers/gpu/drm/i915/display/intel_global_state.h b/drivers/gpu/drm/i915/display/intel_global_state.h >> index 6506a8e32972..e47e007225cc 100644 >> --- a/drivers/gpu/drm/i915/display/intel_global_state.h >> +++ b/drivers/gpu/drm/i915/display/intel_global_state.h >> @@ -8,6 +8,8 @@ >> >> #include <linux/kref.h> >> #include <linux/list.h> >> +#include <linux/stddef.h> >> +#include <linux/types.h> >> >> struct drm_i915_private; >> struct intel_atomic_state; >> @@ -15,6 +17,10 @@ struct intel_global_obj; >> struct intel_global_state; >> >> struct intel_global_state_funcs { >> + /* state_size and base_offset are initialized by INTEL_GLOBAL_STATE_DEFAULTS() */ >> + size_t state_size; >> + size_t base_offset; >> + > >Gut feeling says these should be part of struct intel_global_state >rather than struct intel_global_state_funcs. Keyword being "funcs". Yeah, I kept wondering about this and even considered a possible rename of the struct type, but thought that would be probably too much just because of two fields that should be considered private. > >They would have to be passed to intel_atomic_global_obj_init() and >initialized runtime. That's a downside. That sounds okay to me, although I would prefer something that would not require explicit calls to sizeof() and offsetof(). > But then you could do away with >the funcs struct altogether when defaults are used, and pass NULL. > >And you could also drop INTEL_GLOBAL_STATE_DEFAULTS() which I don't find >particularly pretty. Yeah, passing NULL seems like a good idea as it allows one to even skip defining the funcs structure, but I think dropping INTEL_GLOBAL_STATE_DEFAULTS() would make this an "all or nothing" type of stuff: if you just need to customize one behavior, you will need to define the whole structure explicitly. -- Gustavo Sousa > >BR, >Jani. > >> struct intel_global_state *(*atomic_duplicate_state)(struct intel_global_obj *obj); >> void (*atomic_destroy_state)(struct intel_global_obj *obj, >> struct intel_global_state *state); >> @@ -26,6 +32,10 @@ struct intel_global_obj { >> const struct intel_global_state_funcs *funcs; >> }; >> >> +#define INTEL_GLOBAL_STATE_DEFAULTS(type, base_member) \ >> + .state_size = sizeof(type), \ >> + .base_offset = offsetof(type, base_member) >> + >> #define intel_for_each_global_obj(obj, dev_priv) \ >> list_for_each_entry(obj, &(dev_priv)->display.global.obj_list, head) >> >> @@ -96,4 +106,9 @@ int intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *s >> >> bool intel_atomic_global_state_is_serialized(struct intel_atomic_state *state); >> >> +struct intel_global_state * >> +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj); >> +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, >> + struct intel_global_state *state); >> + >> #endif > >-- >Jani Nikula, Intel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate 2024-12-19 21:48 ` [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate Gustavo Sousa 2024-12-19 22:44 ` Cavitt, Jonathan 2024-12-20 8:50 ` Jani Nikula @ 2024-12-20 8:51 ` Jani Nikula 2024-12-20 13:56 ` Gustavo Sousa 2024-12-20 9:23 ` Ville Syrjälä 3 siblings, 1 reply; 21+ messages in thread From: Jani Nikula @ 2024-12-20 8:51 UTC (permalink / raw) To: Gustavo Sousa, intel-gfx, intel-xe; +Cc: Ville Syrjälä On Thu, 19 Dec 2024, Gustavo Sousa <gustavo.sousa@intel.com> wrote: > diff --git a/drivers/gpu/drm/i915/display/intel_global_state.h b/drivers/gpu/drm/i915/display/intel_global_state.h > index 6506a8e32972..e47e007225cc 100644 > --- a/drivers/gpu/drm/i915/display/intel_global_state.h > +++ b/drivers/gpu/drm/i915/display/intel_global_state.h > @@ -8,6 +8,8 @@ > > #include <linux/kref.h> > #include <linux/list.h> > +#include <linux/stddef.h> What do you need this for? > +#include <linux/types.h> > > struct drm_i915_private; > struct intel_atomic_state; > @@ -15,6 +17,10 @@ struct intel_global_obj; > struct intel_global_state; > > struct intel_global_state_funcs { > + /* state_size and base_offset are initialized by INTEL_GLOBAL_STATE_DEFAULTS() */ > + size_t state_size; > + size_t base_offset; > + > struct intel_global_state *(*atomic_duplicate_state)(struct intel_global_obj *obj); > void (*atomic_destroy_state)(struct intel_global_obj *obj, > struct intel_global_state *state); > @@ -26,6 +32,10 @@ struct intel_global_obj { > const struct intel_global_state_funcs *funcs; > }; > > +#define INTEL_GLOBAL_STATE_DEFAULTS(type, base_member) \ > + .state_size = sizeof(type), \ > + .base_offset = offsetof(type, base_member) > + > #define intel_for_each_global_obj(obj, dev_priv) \ > list_for_each_entry(obj, &(dev_priv)->display.global.obj_list, head) > > @@ -96,4 +106,9 @@ int intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *s > > bool intel_atomic_global_state_is_serialized(struct intel_atomic_state *state); > > +struct intel_global_state * > +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj); > +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, > + struct intel_global_state *state); > + > #endif -- Jani Nikula, Intel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate 2024-12-20 8:51 ` Jani Nikula @ 2024-12-20 13:56 ` Gustavo Sousa 0 siblings, 0 replies; 21+ messages in thread From: Gustavo Sousa @ 2024-12-20 13:56 UTC (permalink / raw) To: Jani Nikula, intel-gfx, intel-xe; +Cc: Ville Syrjälä Quoting Jani Nikula (2024-12-20 05:51:51-03:00) >On Thu, 19 Dec 2024, Gustavo Sousa <gustavo.sousa@intel.com> wrote: >> diff --git a/drivers/gpu/drm/i915/display/intel_global_state.h b/drivers/gpu/drm/i915/display/intel_global_state.h >> index 6506a8e32972..e47e007225cc 100644 >> --- a/drivers/gpu/drm/i915/display/intel_global_state.h >> +++ b/drivers/gpu/drm/i915/display/intel_global_state.h >> @@ -8,6 +8,8 @@ >> >> #include <linux/kref.h> >> #include <linux/list.h> >> +#include <linux/stddef.h> > >What do you need this for? Because of offsetof(). -- Gustavo Sousa > >> +#include <linux/types.h> >> >> struct drm_i915_private; >> struct intel_atomic_state; >> @@ -15,6 +17,10 @@ struct intel_global_obj; >> struct intel_global_state; >> >> struct intel_global_state_funcs { >> + /* state_size and base_offset are initialized by INTEL_GLOBAL_STATE_DEFAULTS() */ >> + size_t state_size; >> + size_t base_offset; >> + >> struct intel_global_state *(*atomic_duplicate_state)(struct intel_global_obj *obj); >> void (*atomic_destroy_state)(struct intel_global_obj *obj, >> struct intel_global_state *state); >> @@ -26,6 +32,10 @@ struct intel_global_obj { >> const struct intel_global_state_funcs *funcs; >> }; >> >> +#define INTEL_GLOBAL_STATE_DEFAULTS(type, base_member) \ >> + .state_size = sizeof(type), \ >> + .base_offset = offsetof(type, base_member) >> + >> #define intel_for_each_global_obj(obj, dev_priv) \ >> list_for_each_entry(obj, &(dev_priv)->display.global.obj_list, head) >> >> @@ -96,4 +106,9 @@ int intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *s >> >> bool intel_atomic_global_state_is_serialized(struct intel_atomic_state *state); >> >> +struct intel_global_state * >> +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj); >> +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, >> + struct intel_global_state *state); >> + >> #endif > >-- >Jani Nikula, Intel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate 2024-12-19 21:48 ` [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate Gustavo Sousa ` (2 preceding siblings ...) 2024-12-20 8:51 ` Jani Nikula @ 2024-12-20 9:23 ` Ville Syrjälä 2024-12-20 14:02 ` Gustavo Sousa 3 siblings, 1 reply; 21+ messages in thread From: Ville Syrjälä @ 2024-12-20 9:23 UTC (permalink / raw) To: Gustavo Sousa; +Cc: intel-gfx, intel-xe, Jani Nikula On Thu, Dec 19, 2024 at 06:48:37PM -0300, Gustavo Sousa wrote: > If we look at how the members of struct intel_global_state_funcs, we see > a common pattern repeating itself. Let's add the necessary > infra-structure to allow reducing the boilerplate. We do that by > adding common generic implementations for each member and adding a macro > INTEL_GLOBAL_STATE_DEFAULTS() to be used when initializing an instance > of struct intel_global_state_funcs. > > That way, a global state that does not need custom behavior can have > its funcs structure be initialized as in the following example, > > static const struct intel_global_state_funcs <prefix>_funcs = { > INTEL_GLOBAL_STATE_DEFAULTS(struct <prefix>_state, <base_member_name>), > }; > > , without the need to implementing the functions. > > That doesn't come without cost - we will need to store two size_t > members -, but that cost is arguably justified by the simplification > gained. > > In an upcoming change we will put that infra into action on existing > users. > > Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> > --- > .../gpu/drm/i915/display/intel_global_state.c | 41 ++++++++++++++++++- > .../gpu/drm/i915/display/intel_global_state.h | 15 +++++++ > 2 files changed, 54 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_global_state.c b/drivers/gpu/drm/i915/display/intel_global_state.c > index cbcd1e91b7be..4b4c33fa99fb 100644 > --- a/drivers/gpu/drm/i915/display/intel_global_state.c > +++ b/drivers/gpu/drm/i915/display/intel_global_state.c > @@ -59,7 +59,10 @@ static void __intel_atomic_global_state_free(struct kref *kref) > > commit_put(obj_state->commit); > > - obj->funcs->atomic_destroy_state(obj, obj_state); > + if (obj->funcs->atomic_destroy_state) > + obj->funcs->atomic_destroy_state(obj, obj_state); > + else > + intel_atomic_global_destroy_state_common(obj, obj_state); > } > > static void intel_atomic_global_state_put(struct intel_global_state *obj_state) > @@ -164,7 +167,11 @@ intel_atomic_get_global_obj_state(struct intel_atomic_state *state, > index = state->num_global_objs; > memset(&state->global_objs[index], 0, sizeof(*state->global_objs)); > > - obj_state = obj->funcs->atomic_duplicate_state(obj); > + if (obj->funcs->atomic_duplicate_state) > + obj_state = obj->funcs->atomic_duplicate_state(obj); > + else > + obj_state = intel_atomic_global_duplicate_state_common(obj); > + > if (!obj_state) > return ERR_PTR(-ENOMEM); > > @@ -382,3 +389,33 @@ intel_atomic_global_state_commit_done(struct intel_atomic_state *state) > complete_all(&commit->done); > } > } > + > +struct intel_global_state * > +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj) > +{ > + void *state_wrapper; > + > + if (WARN_ON(obj->funcs->state_size == 0)) > + return NULL; > + > + state_wrapper = (void *)obj->state - obj->funcs->base_offset; > + > + state_wrapper = kmemdup(state_wrapper, obj->funcs->state_size, GFP_KERNEL); > + if (!state_wrapper) > + return NULL; > + > + return state_wrapper + obj->funcs->base_offset; I'm not really a fan. What was obvious code before now looks complicated. Also this no longer matches how any of the standard kms object types work, which I don't think is a good idea. IMO if we want to do something like this then it should probably try to cover all kms object types. > +} > + > +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, > + struct intel_global_state *state) > +{ > + void *state_wrapper; > + > + if (WARN_ON(obj->funcs->state_size == 0)) > + return; > + > + state_wrapper = (void *)state - obj->funcs->base_offset; > + > + kfree(state_wrapper); > +} > diff --git a/drivers/gpu/drm/i915/display/intel_global_state.h b/drivers/gpu/drm/i915/display/intel_global_state.h > index 6506a8e32972..e47e007225cc 100644 > --- a/drivers/gpu/drm/i915/display/intel_global_state.h > +++ b/drivers/gpu/drm/i915/display/intel_global_state.h > @@ -8,6 +8,8 @@ > > #include <linux/kref.h> > #include <linux/list.h> > +#include <linux/stddef.h> > +#include <linux/types.h> > > struct drm_i915_private; > struct intel_atomic_state; > @@ -15,6 +17,10 @@ struct intel_global_obj; > struct intel_global_state; > > struct intel_global_state_funcs { > + /* state_size and base_offset are initialized by INTEL_GLOBAL_STATE_DEFAULTS() */ > + size_t state_size; > + size_t base_offset; > + > struct intel_global_state *(*atomic_duplicate_state)(struct intel_global_obj *obj); > void (*atomic_destroy_state)(struct intel_global_obj *obj, > struct intel_global_state *state); > @@ -26,6 +32,10 @@ struct intel_global_obj { > const struct intel_global_state_funcs *funcs; > }; > > +#define INTEL_GLOBAL_STATE_DEFAULTS(type, base_member) \ > + .state_size = sizeof(type), \ > + .base_offset = offsetof(type, base_member) > + > #define intel_for_each_global_obj(obj, dev_priv) \ > list_for_each_entry(obj, &(dev_priv)->display.global.obj_list, head) > > @@ -96,4 +106,9 @@ int intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *s > > bool intel_atomic_global_state_is_serialized(struct intel_atomic_state *state); > > +struct intel_global_state * > +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj); > +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, > + struct intel_global_state *state); > + > #endif > -- > 2.47.1 -- Ville Syrjälä Intel ^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate 2024-12-20 9:23 ` Ville Syrjälä @ 2024-12-20 14:02 ` Gustavo Sousa 0 siblings, 0 replies; 21+ messages in thread From: Gustavo Sousa @ 2024-12-20 14:02 UTC (permalink / raw) To: Ville Syrjälä; +Cc: intel-gfx, intel-xe, Jani Nikula Quoting Ville Syrjälä (2024-12-20 06:23:24-03:00) >On Thu, Dec 19, 2024 at 06:48:37PM -0300, Gustavo Sousa wrote: >> If we look at how the members of struct intel_global_state_funcs, we see >> a common pattern repeating itself. Let's add the necessary >> infra-structure to allow reducing the boilerplate. We do that by >> adding common generic implementations for each member and adding a macro >> INTEL_GLOBAL_STATE_DEFAULTS() to be used when initializing an instance >> of struct intel_global_state_funcs. >> >> That way, a global state that does not need custom behavior can have >> its funcs structure be initialized as in the following example, >> >> static const struct intel_global_state_funcs <prefix>_funcs = { >> INTEL_GLOBAL_STATE_DEFAULTS(struct <prefix>_state, <base_member_name>), >> }; >> >> , without the need to implementing the functions. >> >> That doesn't come without cost - we will need to store two size_t >> members -, but that cost is arguably justified by the simplification >> gained. >> >> In an upcoming change we will put that infra into action on existing >> users. >> >> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> >> --- >> .../gpu/drm/i915/display/intel_global_state.c | 41 ++++++++++++++++++- >> .../gpu/drm/i915/display/intel_global_state.h | 15 +++++++ >> 2 files changed, 54 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_global_state.c b/drivers/gpu/drm/i915/display/intel_global_state.c >> index cbcd1e91b7be..4b4c33fa99fb 100644 >> --- a/drivers/gpu/drm/i915/display/intel_global_state.c >> +++ b/drivers/gpu/drm/i915/display/intel_global_state.c >> @@ -59,7 +59,10 @@ static void __intel_atomic_global_state_free(struct kref *kref) >> >> commit_put(obj_state->commit); >> >> - obj->funcs->atomic_destroy_state(obj, obj_state); >> + if (obj->funcs->atomic_destroy_state) >> + obj->funcs->atomic_destroy_state(obj, obj_state); >> + else >> + intel_atomic_global_destroy_state_common(obj, obj_state); >> } >> >> static void intel_atomic_global_state_put(struct intel_global_state *obj_state) >> @@ -164,7 +167,11 @@ intel_atomic_get_global_obj_state(struct intel_atomic_state *state, >> index = state->num_global_objs; >> memset(&state->global_objs[index], 0, sizeof(*state->global_objs)); >> >> - obj_state = obj->funcs->atomic_duplicate_state(obj); >> + if (obj->funcs->atomic_duplicate_state) >> + obj_state = obj->funcs->atomic_duplicate_state(obj); >> + else >> + obj_state = intel_atomic_global_duplicate_state_common(obj); >> + >> if (!obj_state) >> return ERR_PTR(-ENOMEM); >> >> @@ -382,3 +389,33 @@ intel_atomic_global_state_commit_done(struct intel_atomic_state *state) >> complete_all(&commit->done); >> } >> } >> + >> +struct intel_global_state * >> +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj) >> +{ >> + void *state_wrapper; >> + >> + if (WARN_ON(obj->funcs->state_size == 0)) >> + return NULL; >> + >> + state_wrapper = (void *)obj->state - obj->funcs->base_offset; >> + >> + state_wrapper = kmemdup(state_wrapper, obj->funcs->state_size, GFP_KERNEL); >> + if (!state_wrapper) >> + return NULL; >> + >> + return state_wrapper + obj->funcs->base_offset; > >I'm not really a fan. What was obvious code before now looks >complicated. Well it is 1 somewhat complication here to simplify N cases in the subclasses. Maybe that's worth it? > >Also this no longer matches how any of the standard kms object >types work, which I don't think is a good idea. IMO if we >want to do something like this then it should probably try to >cover all kms object types. Do you mean to try to implement this on the DRM layer? In that case, we would also endup having to implement this here right? Because we have our own thing. Unless I interpreted your comment above wrong... -- Gustavo Sousa > >> +} >> + >> +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, >> + struct intel_global_state *state) >> +{ >> + void *state_wrapper; >> + >> + if (WARN_ON(obj->funcs->state_size == 0)) >> + return; >> + >> + state_wrapper = (void *)state - obj->funcs->base_offset; >> + >> + kfree(state_wrapper); >> +} >> diff --git a/drivers/gpu/drm/i915/display/intel_global_state.h b/drivers/gpu/drm/i915/display/intel_global_state.h >> index 6506a8e32972..e47e007225cc 100644 >> --- a/drivers/gpu/drm/i915/display/intel_global_state.h >> +++ b/drivers/gpu/drm/i915/display/intel_global_state.h >> @@ -8,6 +8,8 @@ >> >> #include <linux/kref.h> >> #include <linux/list.h> >> +#include <linux/stddef.h> >> +#include <linux/types.h> >> >> struct drm_i915_private; >> struct intel_atomic_state; >> @@ -15,6 +17,10 @@ struct intel_global_obj; >> struct intel_global_state; >> >> struct intel_global_state_funcs { >> + /* state_size and base_offset are initialized by INTEL_GLOBAL_STATE_DEFAULTS() */ >> + size_t state_size; >> + size_t base_offset; >> + >> struct intel_global_state *(*atomic_duplicate_state)(struct intel_global_obj *obj); >> void (*atomic_destroy_state)(struct intel_global_obj *obj, >> struct intel_global_state *state); >> @@ -26,6 +32,10 @@ struct intel_global_obj { >> const struct intel_global_state_funcs *funcs; >> }; >> >> +#define INTEL_GLOBAL_STATE_DEFAULTS(type, base_member) \ >> + .state_size = sizeof(type), \ >> + .base_offset = offsetof(type, base_member) >> + >> #define intel_for_each_global_obj(obj, dev_priv) \ >> list_for_each_entry(obj, &(dev_priv)->display.global.obj_list, head) >> >> @@ -96,4 +106,9 @@ int intel_atomic_global_state_wait_for_dependencies(struct intel_atomic_state *s >> >> bool intel_atomic_global_state_is_serialized(struct intel_atomic_state *state); >> >> +struct intel_global_state * >> +intel_atomic_global_duplicate_state_common(struct intel_global_obj *obj); >> +void intel_atomic_global_destroy_state_common(struct intel_global_obj *obj, >> + struct intel_global_state *state); >> + >> #endif >> -- >> 2.47.1 > >-- >Ville Syrjälä >Intel ^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH 3/3] drm/i915/display: Use INTEL_GLOBAL_STATE_DEFAULTS 2024-12-19 21:48 [PATCH 0/3] drm/i915/display: Reduce global state funcs boilerplate Gustavo Sousa 2024-12-19 21:48 ` [PATCH 1/3] drm/i915/display: Do not assume zero offset when duplicating global state Gustavo Sousa 2024-12-19 21:48 ` [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate Gustavo Sousa @ 2024-12-19 21:48 ` Gustavo Sousa 2024-12-19 22:45 ` Cavitt, Jonathan 2024-12-19 22:23 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/display: Reduce global state funcs boilerplate Patchwork ` (3 subsequent siblings) 6 siblings, 1 reply; 21+ messages in thread From: Gustavo Sousa @ 2024-12-19 21:48 UTC (permalink / raw) To: intel-gfx, intel-xe; +Cc: Ville Syrjälä, Jani Nikula Reduce global state boilerplate by using INTEL_GLOBAL_STATE_DEFAULTS(). The only case that requires customization is for the duplication of CDCLK state, which is resolved by wrapping the generic implementation. Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> --- drivers/gpu/drm/i915/display/intel_bw.c | 21 +------------------ drivers/gpu/drm/i915/display/intel_cdclk.c | 18 +++++++--------- drivers/gpu/drm/i915/display/intel_pmdemand.c | 21 +------------------ drivers/gpu/drm/i915/display/skl_watermark.c | 20 +----------------- 4 files changed, 10 insertions(+), 70 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c index 30236010e0ed..f040dfa70fd9 100644 --- a/drivers/gpu/drm/i915/display/intel_bw.c +++ b/drivers/gpu/drm/i915/display/intel_bw.c @@ -1422,27 +1422,8 @@ int intel_bw_atomic_check(struct intel_atomic_state *state) return 0; } -static struct intel_global_state * -intel_bw_duplicate_state(struct intel_global_obj *obj) -{ - struct intel_bw_state *state = to_intel_bw_state(obj->state); - - state = kmemdup(state, sizeof(*state), GFP_KERNEL); - if (!state) - return NULL; - - return &state->base; -} - -static void intel_bw_destroy_state(struct intel_global_obj *obj, - struct intel_global_state *state) -{ - kfree(state); -} - static const struct intel_global_state_funcs intel_bw_funcs = { - .atomic_duplicate_state = intel_bw_duplicate_state, - .atomic_destroy_state = intel_bw_destroy_state, + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_bw_state, base), }; int intel_bw_init(struct drm_i915_private *i915) diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c index fc084e2a4c6a..a9dfbd53e812 100644 --- a/drivers/gpu/drm/i915/display/intel_cdclk.c +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c @@ -3130,27 +3130,23 @@ static int fixed_modeset_calc_cdclk(struct intel_atomic_state *state) static struct intel_global_state *intel_cdclk_duplicate_state(struct intel_global_obj *obj) { - struct intel_cdclk_state *cdclk_state = to_intel_cdclk_state(obj->state); + struct intel_global_state *obj_state; + struct intel_cdclk_state *cdclk_state; - cdclk_state = kmemdup(cdclk_state, sizeof(*cdclk_state), GFP_KERNEL); - if (!cdclk_state) + obj_state = intel_atomic_global_duplicate_state_common(obj); + if (!obj_state) return NULL; + cdclk_state = to_intel_cdclk_state(obj_state); cdclk_state->pipe = INVALID_PIPE; cdclk_state->disable_pipes = false; - return &cdclk_state->base; -} - -static void intel_cdclk_destroy_state(struct intel_global_obj *obj, - struct intel_global_state *state) -{ - kfree(state); + return obj_state; } static const struct intel_global_state_funcs intel_cdclk_funcs = { + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_cdclk_state, base), .atomic_duplicate_state = intel_cdclk_duplicate_state, - .atomic_destroy_state = intel_cdclk_destroy_state, }; struct intel_cdclk_state * diff --git a/drivers/gpu/drm/i915/display/intel_pmdemand.c b/drivers/gpu/drm/i915/display/intel_pmdemand.c index 1f71efb7d04d..5bf245a9ac8d 100644 --- a/drivers/gpu/drm/i915/display/intel_pmdemand.c +++ b/drivers/gpu/drm/i915/display/intel_pmdemand.c @@ -15,27 +15,8 @@ #include "intel_pmdemand.h" #include "skl_watermark.h" -static struct intel_global_state * -intel_pmdemand_duplicate_state(struct intel_global_obj *obj) -{ - struct intel_pmdemand_state *pmdemand_state = to_intel_pmdemand_state(obj->state); - - pmdemand_state = kmemdup(pmdemand_state, sizeof(*pmdemand_state), GFP_KERNEL); - if (!pmdemand_state) - return NULL; - - return &pmdemand_state->base; -} - -static void intel_pmdemand_destroy_state(struct intel_global_obj *obj, - struct intel_global_state *state) -{ - kfree(state); -} - static const struct intel_global_state_funcs intel_pmdemand_funcs = { - .atomic_duplicate_state = intel_pmdemand_duplicate_state, - .atomic_destroy_state = intel_pmdemand_destroy_state, + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_pmdemand_state, base), }; static struct intel_pmdemand_state * diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c index b3d38e09df5a..8aa041be8277 100644 --- a/drivers/gpu/drm/i915/display/skl_watermark.c +++ b/drivers/gpu/drm/i915/display/skl_watermark.c @@ -3289,26 +3289,8 @@ static void skl_setup_wm_latency(struct drm_i915_private *i915) intel_print_wm_latency(i915, "Gen9 Plane", display->wm.skl_latency); } -static struct intel_global_state *intel_dbuf_duplicate_state(struct intel_global_obj *obj) -{ - struct intel_dbuf_state *dbuf_state = to_intel_dbuf_state(obj->state); - - dbuf_state = kmemdup(dbuf_state, sizeof(*dbuf_state), GFP_KERNEL); - if (!dbuf_state) - return NULL; - - return &dbuf_state->base; -} - -static void intel_dbuf_destroy_state(struct intel_global_obj *obj, - struct intel_global_state *state) -{ - kfree(state); -} - static const struct intel_global_state_funcs intel_dbuf_funcs = { - .atomic_duplicate_state = intel_dbuf_duplicate_state, - .atomic_destroy_state = intel_dbuf_destroy_state, + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_dbuf_state, base), }; struct intel_dbuf_state * -- 2.47.1 ^ permalink raw reply related [flat|nested] 21+ messages in thread
* RE: [PATCH 3/3] drm/i915/display: Use INTEL_GLOBAL_STATE_DEFAULTS 2024-12-19 21:48 ` [PATCH 3/3] drm/i915/display: Use INTEL_GLOBAL_STATE_DEFAULTS Gustavo Sousa @ 2024-12-19 22:45 ` Cavitt, Jonathan 2024-12-20 14:08 ` Gustavo Sousa 0 siblings, 1 reply; 21+ messages in thread From: Cavitt, Jonathan @ 2024-12-19 22:45 UTC (permalink / raw) To: Sousa, Gustavo, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Ville Syrjälä, Nikula, Jani, Cavitt, Jonathan -----Original Message----- From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Gustavo Sousa Sent: Thursday, December 19, 2024 1:49 PM To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>; Nikula, Jani <jani.nikula@intel.com> Subject: [PATCH 3/3] drm/i915/display: Use INTEL_GLOBAL_STATE_DEFAULTS > > Reduce global state boilerplate by using INTEL_GLOBAL_STATE_DEFAULTS(). > The only case that requires customization is for the duplication of > CDCLK state, which is resolved by wrapping the generic implementation. > > Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> LGTM, though I am a bit curious under what circumstances we expect obj->funcs->atomic_destroy_state to return a valid function pointer with these changes? I'm guessing we aren't depreciating/erasing that function pointer because we might need it in the future? Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel> -Jonathan Cavitt > --- > drivers/gpu/drm/i915/display/intel_bw.c | 21 +------------------ > drivers/gpu/drm/i915/display/intel_cdclk.c | 18 +++++++--------- > drivers/gpu/drm/i915/display/intel_pmdemand.c | 21 +------------------ > drivers/gpu/drm/i915/display/skl_watermark.c | 20 +----------------- > 4 files changed, 10 insertions(+), 70 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c > index 30236010e0ed..f040dfa70fd9 100644 > --- a/drivers/gpu/drm/i915/display/intel_bw.c > +++ b/drivers/gpu/drm/i915/display/intel_bw.c > @@ -1422,27 +1422,8 @@ int intel_bw_atomic_check(struct intel_atomic_state *state) > return 0; > } > > -static struct intel_global_state * > -intel_bw_duplicate_state(struct intel_global_obj *obj) > -{ > - struct intel_bw_state *state = to_intel_bw_state(obj->state); > - > - state = kmemdup(state, sizeof(*state), GFP_KERNEL); > - if (!state) > - return NULL; > - > - return &state->base; > -} > - > -static void intel_bw_destroy_state(struct intel_global_obj *obj, > - struct intel_global_state *state) > -{ > - kfree(state); > -} > - > static const struct intel_global_state_funcs intel_bw_funcs = { > - .atomic_duplicate_state = intel_bw_duplicate_state, > - .atomic_destroy_state = intel_bw_destroy_state, > + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_bw_state, base), > }; > > int intel_bw_init(struct drm_i915_private *i915) > diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c > index fc084e2a4c6a..a9dfbd53e812 100644 > --- a/drivers/gpu/drm/i915/display/intel_cdclk.c > +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c > @@ -3130,27 +3130,23 @@ static int fixed_modeset_calc_cdclk(struct intel_atomic_state *state) > > static struct intel_global_state *intel_cdclk_duplicate_state(struct intel_global_obj *obj) > { > - struct intel_cdclk_state *cdclk_state = to_intel_cdclk_state(obj->state); > + struct intel_global_state *obj_state; > + struct intel_cdclk_state *cdclk_state; > > - cdclk_state = kmemdup(cdclk_state, sizeof(*cdclk_state), GFP_KERNEL); > - if (!cdclk_state) > + obj_state = intel_atomic_global_duplicate_state_common(obj); > + if (!obj_state) > return NULL; > > + cdclk_state = to_intel_cdclk_state(obj_state); > cdclk_state->pipe = INVALID_PIPE; > cdclk_state->disable_pipes = false; > > - return &cdclk_state->base; > -} > - > -static void intel_cdclk_destroy_state(struct intel_global_obj *obj, > - struct intel_global_state *state) > -{ > - kfree(state); > + return obj_state; > } > > static const struct intel_global_state_funcs intel_cdclk_funcs = { > + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_cdclk_state, base), > .atomic_duplicate_state = intel_cdclk_duplicate_state, > - .atomic_destroy_state = intel_cdclk_destroy_state, > }; > > struct intel_cdclk_state * > diff --git a/drivers/gpu/drm/i915/display/intel_pmdemand.c b/drivers/gpu/drm/i915/display/intel_pmdemand.c > index 1f71efb7d04d..5bf245a9ac8d 100644 > --- a/drivers/gpu/drm/i915/display/intel_pmdemand.c > +++ b/drivers/gpu/drm/i915/display/intel_pmdemand.c > @@ -15,27 +15,8 @@ > #include "intel_pmdemand.h" > #include "skl_watermark.h" > > -static struct intel_global_state * > -intel_pmdemand_duplicate_state(struct intel_global_obj *obj) > -{ > - struct intel_pmdemand_state *pmdemand_state = to_intel_pmdemand_state(obj->state); > - > - pmdemand_state = kmemdup(pmdemand_state, sizeof(*pmdemand_state), GFP_KERNEL); > - if (!pmdemand_state) > - return NULL; > - > - return &pmdemand_state->base; > -} > - > -static void intel_pmdemand_destroy_state(struct intel_global_obj *obj, > - struct intel_global_state *state) > -{ > - kfree(state); > -} > - > static const struct intel_global_state_funcs intel_pmdemand_funcs = { > - .atomic_duplicate_state = intel_pmdemand_duplicate_state, > - .atomic_destroy_state = intel_pmdemand_destroy_state, > + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_pmdemand_state, base), > }; > > static struct intel_pmdemand_state * > diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c > index b3d38e09df5a..8aa041be8277 100644 > --- a/drivers/gpu/drm/i915/display/skl_watermark.c > +++ b/drivers/gpu/drm/i915/display/skl_watermark.c > @@ -3289,26 +3289,8 @@ static void skl_setup_wm_latency(struct drm_i915_private *i915) > intel_print_wm_latency(i915, "Gen9 Plane", display->wm.skl_latency); > } > > -static struct intel_global_state *intel_dbuf_duplicate_state(struct intel_global_obj *obj) > -{ > - struct intel_dbuf_state *dbuf_state = to_intel_dbuf_state(obj->state); > - > - dbuf_state = kmemdup(dbuf_state, sizeof(*dbuf_state), GFP_KERNEL); > - if (!dbuf_state) > - return NULL; > - > - return &dbuf_state->base; > -} > - > -static void intel_dbuf_destroy_state(struct intel_global_obj *obj, > - struct intel_global_state *state) > -{ > - kfree(state); > -} > - > static const struct intel_global_state_funcs intel_dbuf_funcs = { > - .atomic_duplicate_state = intel_dbuf_duplicate_state, > - .atomic_destroy_state = intel_dbuf_destroy_state, > + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_dbuf_state, base), > }; > > struct intel_dbuf_state * > -- > 2.47.1 > > ^ permalink raw reply [flat|nested] 21+ messages in thread
* RE: [PATCH 3/3] drm/i915/display: Use INTEL_GLOBAL_STATE_DEFAULTS 2024-12-19 22:45 ` Cavitt, Jonathan @ 2024-12-20 14:08 ` Gustavo Sousa 0 siblings, 0 replies; 21+ messages in thread From: Gustavo Sousa @ 2024-12-20 14:08 UTC (permalink / raw) To: Cavitt, Jonathan, intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org Cc: Ville Syrjälä, Nikula, Jani, Cavitt, Jonathan Quoting Cavitt, Jonathan (2024-12-19 19:45:15-03:00) >-----Original Message----- >From: Intel-gfx <intel-gfx-bounces@lists.freedesktop.org> On Behalf Of Gustavo Sousa >Sent: Thursday, December 19, 2024 1:49 PM >To: intel-gfx@lists.freedesktop.org; intel-xe@lists.freedesktop.org >Cc: Ville Syrj�l� <ville.syrjala@linux.intel.com>; Nikula, Jani <jani.nikula@intel.com> >Subject: [PATCH 3/3] drm/i915/display: Use INTEL_GLOBAL_STATE_DEFAULTS >> >> Reduce global state boilerplate by using INTEL_GLOBAL_STATE_DEFAULTS(). >> The only case that requires customization is for the duplication of >> CDCLK state, which is resolved by wrapping the generic implementation. >> >> Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com> > >LGTM, though I am a bit curious under what circumstances we expect >obj->funcs->atomic_destroy_state to return a valid function pointer >with these changes? I'm guessing we aren't depreciating/erasing that >function pointer because we might need it in the future? I did keep the atomic_destroy_state for completeness (to complement the "duplicate state" one). It might be that we end up not really needing any customization for that part for any of the global state instances that we have or will have. We could revisit this then... >Reviewed-by: Jonathan Cavitt <jonathan.cavitt@intel> Thanks for the reviews, Jonathan! -- Gustavo Sousa >-Jonathan Cavitt > >> --- >> drivers/gpu/drm/i915/display/intel_bw.c | 21 +------------------ >> drivers/gpu/drm/i915/display/intel_cdclk.c | 18 +++++++--------- >> drivers/gpu/drm/i915/display/intel_pmdemand.c | 21 +------------------ >> drivers/gpu/drm/i915/display/skl_watermark.c | 20 +----------------- >> 4 files changed, 10 insertions(+), 70 deletions(-) >> >> diff --git a/drivers/gpu/drm/i915/display/intel_bw.c b/drivers/gpu/drm/i915/display/intel_bw.c >> index 30236010e0ed..f040dfa70fd9 100644 >> --- a/drivers/gpu/drm/i915/display/intel_bw.c >> +++ b/drivers/gpu/drm/i915/display/intel_bw.c >> @@ -1422,27 +1422,8 @@ int intel_bw_atomic_check(struct intel_atomic_state *state) >> return 0; >> } >> >> -static struct intel_global_state * >> -intel_bw_duplicate_state(struct intel_global_obj *obj) >> -{ >> - struct intel_bw_state *state = to_intel_bw_state(obj->state); >> - >> - state = kmemdup(state, sizeof(*state), GFP_KERNEL); >> - if (!state) >> - return NULL; >> - >> - return &state->base; >> -} >> - >> -static void intel_bw_destroy_state(struct intel_global_obj *obj, >> - struct intel_global_state *state) >> -{ >> - kfree(state); >> -} >> - >> static const struct intel_global_state_funcs intel_bw_funcs = { >> - .atomic_duplicate_state = intel_bw_duplicate_state, >> - .atomic_destroy_state = intel_bw_destroy_state, >> + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_bw_state, base), >> }; >> >> int intel_bw_init(struct drm_i915_private *i915) >> diff --git a/drivers/gpu/drm/i915/display/intel_cdclk.c b/drivers/gpu/drm/i915/display/intel_cdclk.c >> index fc084e2a4c6a..a9dfbd53e812 100644 >> --- a/drivers/gpu/drm/i915/display/intel_cdclk.c >> +++ b/drivers/gpu/drm/i915/display/intel_cdclk.c >> @@ -3130,27 +3130,23 @@ static int fixed_modeset_calc_cdclk(struct intel_atomic_state *state) >> >> static struct intel_global_state *intel_cdclk_duplicate_state(struct intel_global_obj *obj) >> { >> - struct intel_cdclk_state *cdclk_state = to_intel_cdclk_state(obj->state); >> + struct intel_global_state *obj_state; >> + struct intel_cdclk_state *cdclk_state; >> >> - cdclk_state = kmemdup(cdclk_state, sizeof(*cdclk_state), GFP_KERNEL); >> - if (!cdclk_state) >> + obj_state = intel_atomic_global_duplicate_state_common(obj); >> + if (!obj_state) >> return NULL; >> >> + cdclk_state = to_intel_cdclk_state(obj_state); >> cdclk_state->pipe = INVALID_PIPE; >> cdclk_state->disable_pipes = false; >> >> - return &cdclk_state->base; >> -} >> - >> -static void intel_cdclk_destroy_state(struct intel_global_obj *obj, >> - struct intel_global_state *state) >> -{ >> - kfree(state); >> + return obj_state; >> } >> >> static const struct intel_global_state_funcs intel_cdclk_funcs = { >> + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_cdclk_state, base), >> .atomic_duplicate_state = intel_cdclk_duplicate_state, >> - .atomic_destroy_state = intel_cdclk_destroy_state, >> }; >> >> struct intel_cdclk_state * >> diff --git a/drivers/gpu/drm/i915/display/intel_pmdemand.c b/drivers/gpu/drm/i915/display/intel_pmdemand.c >> index 1f71efb7d04d..5bf245a9ac8d 100644 >> --- a/drivers/gpu/drm/i915/display/intel_pmdemand.c >> +++ b/drivers/gpu/drm/i915/display/intel_pmdemand.c >> @@ -15,27 +15,8 @@ >> #include "intel_pmdemand.h" >> #include "skl_watermark.h" >> >> -static struct intel_global_state * >> -intel_pmdemand_duplicate_state(struct intel_global_obj *obj) >> -{ >> - struct intel_pmdemand_state *pmdemand_state = to_intel_pmdemand_state(obj->state); >> - >> - pmdemand_state = kmemdup(pmdemand_state, sizeof(*pmdemand_state), GFP_KERNEL); >> - if (!pmdemand_state) >> - return NULL; >> - >> - return &pmdemand_state->base; >> -} >> - >> -static void intel_pmdemand_destroy_state(struct intel_global_obj *obj, >> - struct intel_global_state *state) >> -{ >> - kfree(state); >> -} >> - >> static const struct intel_global_state_funcs intel_pmdemand_funcs = { >> - .atomic_duplicate_state = intel_pmdemand_duplicate_state, >> - .atomic_destroy_state = intel_pmdemand_destroy_state, >> + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_pmdemand_state, base), >> }; >> >> static struct intel_pmdemand_state * >> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c >> index b3d38e09df5a..8aa041be8277 100644 >> --- a/drivers/gpu/drm/i915/display/skl_watermark.c >> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c >> @@ -3289,26 +3289,8 @@ static void skl_setup_wm_latency(struct drm_i915_private *i915) >> intel_print_wm_latency(i915, "Gen9 Plane", display->wm.skl_latency); >> } >> >> -static struct intel_global_state *intel_dbuf_duplicate_state(struct intel_global_obj *obj) >> -{ >> - struct intel_dbuf_state *dbuf_state = to_intel_dbuf_state(obj->state); >> - >> - dbuf_state = kmemdup(dbuf_state, sizeof(*dbuf_state), GFP_KERNEL); >> - if (!dbuf_state) >> - return NULL; >> - >> - return &dbuf_state->base; >> -} >> - >> -static void intel_dbuf_destroy_state(struct intel_global_obj *obj, >> - struct intel_global_state *state) >> -{ >> - kfree(state); >> -} >> - >> static const struct intel_global_state_funcs intel_dbuf_funcs = { >> - .atomic_duplicate_state = intel_dbuf_duplicate_state, >> - .atomic_destroy_state = intel_dbuf_destroy_state, >> + INTEL_GLOBAL_STATE_DEFAULTS(struct intel_dbuf_state, base), >> }; >> >> struct intel_dbuf_state * >> -- >> 2.47.1 >> >> ^ permalink raw reply [flat|nested] 21+ messages in thread
* ✗ Fi.CI.CHECKPATCH: warning for drm/i915/display: Reduce global state funcs boilerplate 2024-12-19 21:48 [PATCH 0/3] drm/i915/display: Reduce global state funcs boilerplate Gustavo Sousa ` (2 preceding siblings ...) 2024-12-19 21:48 ` [PATCH 3/3] drm/i915/display: Use INTEL_GLOBAL_STATE_DEFAULTS Gustavo Sousa @ 2024-12-19 22:23 ` Patchwork 2024-12-19 22:23 ` ✗ Fi.CI.SPARSE: " Patchwork ` (2 subsequent siblings) 6 siblings, 0 replies; 21+ messages in thread From: Patchwork @ 2024-12-19 22:23 UTC (permalink / raw) To: Gustavo Sousa; +Cc: intel-gfx == Series Details == Series: drm/i915/display: Reduce global state funcs boilerplate URL : https://patchwork.freedesktop.org/series/142853/ State : warning == Summary == Error: dim checkpatch failed ec99e692f6f4 drm/i915/display: Do not assume zero offset when duplicating global state b3d1feeb2763 drm/i915/display: Add infra to reduce global state funcs boilerplate -:18: WARNING:COMMIT_LOG_LONG_LINE: Prefer a maximum 75 chars per line (possible unwrapped commit description?) #18: INTEL_GLOBAL_STATE_DEFAULTS(struct <prefix>_state, <base_member_name>), total: 0 errors, 1 warnings, 0 checks, 93 lines checked 488bdf44e0b9 drm/i915/display: Use INTEL_GLOBAL_STATE_DEFAULTS ^ permalink raw reply [flat|nested] 21+ messages in thread
* ✗ Fi.CI.SPARSE: warning for drm/i915/display: Reduce global state funcs boilerplate 2024-12-19 21:48 [PATCH 0/3] drm/i915/display: Reduce global state funcs boilerplate Gustavo Sousa ` (3 preceding siblings ...) 2024-12-19 22:23 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/display: Reduce global state funcs boilerplate Patchwork @ 2024-12-19 22:23 ` Patchwork 2024-12-19 23:00 ` ✓ i915.CI.BAT: success " Patchwork 2024-12-20 19:50 ` ✓ i915.CI.Full: " Patchwork 6 siblings, 0 replies; 21+ messages in thread From: Patchwork @ 2024-12-19 22:23 UTC (permalink / raw) To: Gustavo Sousa; +Cc: intel-gfx == Series Details == Series: drm/i915/display: Reduce global state funcs boilerplate URL : https://patchwork.freedesktop.org/series/142853/ 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] 21+ messages in thread
* ✓ i915.CI.BAT: success for drm/i915/display: Reduce global state funcs boilerplate 2024-12-19 21:48 [PATCH 0/3] drm/i915/display: Reduce global state funcs boilerplate Gustavo Sousa ` (4 preceding siblings ...) 2024-12-19 22:23 ` ✗ Fi.CI.SPARSE: " Patchwork @ 2024-12-19 23:00 ` Patchwork 2024-12-20 19:50 ` ✓ i915.CI.Full: " Patchwork 6 siblings, 0 replies; 21+ messages in thread From: Patchwork @ 2024-12-19 23:00 UTC (permalink / raw) To: Gustavo Sousa; +Cc: intel-gfx == Series Details == Series: drm/i915/display: Reduce global state funcs boilerplate URL : https://patchwork.freedesktop.org/series/142853/ State : success == Summary == CI Bug Log - changes from CI_DRM_15873 -> Patchwork_142853v1 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/index.html Participating hosts (45 -> 43) ------------------------------ Missing (2): fi-glk-j4005 fi-snb-2520m Known issues ------------ Here are the changes found in Patchwork_142853v1 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@i915_pm_rpm@module-reload: - bat-adls-6: [PASS][1] -> [FAIL][2] ([i915#12903]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/bat-adls-6/igt@i915_pm_rpm@module-reload.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/bat-adls-6/igt@i915_pm_rpm@module-reload.html - bat-apl-1: [PASS][3] -> [FAIL][4] ([i915#12903]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/bat-apl-1/igt@i915_pm_rpm@module-reload.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/bat-apl-1/igt@i915_pm_rpm@module-reload.html * igt@i915_selftest@live: - bat-arls-5: NOTRUN -> [ABORT][5] ([i915#12061]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/bat-arls-5/igt@i915_selftest@live.html * igt@i915_selftest@live@gt_mocs: - bat-twl-2: [PASS][6] -> [ABORT][7] ([i915#12919]) +1 other test abort [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/bat-twl-2/igt@i915_selftest@live@gt_mocs.html [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/bat-twl-2/igt@i915_selftest@live@gt_mocs.html * igt@i915_selftest@live@workarounds: - bat-arls-5: [PASS][8] -> [ABORT][9] ([i915#12061]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/bat-arls-5/igt@i915_selftest@live@workarounds.html [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/bat-arls-5/igt@i915_selftest@live@workarounds.html * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence: - bat-dg2-11: [PASS][10] -> [SKIP][11] ([i915#9197]) +3 other tests skip [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-b-dp-1: - bat-apl-1: [PASS][12] -> [DMESG-WARN][13] ([i915#12921]) +1 other test dmesg-warn [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/bat-apl-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-b-dp-1.html [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/bat-apl-1/igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-b-dp-1.html #### Possible fixes #### * igt@i915_selftest@live@late_gt_pm: - fi-cfl-8109u: [DMESG-WARN][14] ([i915#11621]) -> [PASS][15] +132 other tests pass [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html * igt@i915_selftest@live@workarounds: - bat-arlh-2: [ABORT][16] ([i915#12061]) -> [PASS][17] +1 other test pass [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/bat-arlh-2/igt@i915_selftest@live@workarounds.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/bat-arlh-2/igt@i915_selftest@live@workarounds.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#11621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11621 [i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061 [i915#12903]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12903 [i915#12919]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12919 [i915#12921]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12921 [i915#9197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9197 Build changes ------------- * Linux: CI_DRM_15873 -> Patchwork_142853v1 CI-20190529: 20190529 CI_DRM_15873: a5b4c40929f3263a92e34e3f6b3c3c0de57e0e58 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8166: 197cca38ae5c494511843112d43351aeab2314be @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_142853v1: a5b4c40929f3263a92e34e3f6b3c3c0de57e0e58 @ git://anongit.freedesktop.org/gfx-ci/linux == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/index.html ^ permalink raw reply [flat|nested] 21+ messages in thread
* ✓ i915.CI.Full: success for drm/i915/display: Reduce global state funcs boilerplate 2024-12-19 21:48 [PATCH 0/3] drm/i915/display: Reduce global state funcs boilerplate Gustavo Sousa ` (5 preceding siblings ...) 2024-12-19 23:00 ` ✓ i915.CI.BAT: success " Patchwork @ 2024-12-20 19:50 ` Patchwork 6 siblings, 0 replies; 21+ messages in thread From: Patchwork @ 2024-12-20 19:50 UTC (permalink / raw) To: Gustavo Sousa; +Cc: intel-gfx [-- Attachment #1: Type: text/plain, Size: 94621 bytes --] == Series Details == Series: drm/i915/display: Reduce global state funcs boilerplate URL : https://patchwork.freedesktop.org/series/142853/ State : success == Summary == CI Bug Log - changes from CI_DRM_15873_full -> Patchwork_142853v1_full ==================================================== Summary ------- **SUCCESS** No regressions found. Participating hosts (12 -> 11) ------------------------------ Missing (1): shard-dg2-set2 Known issues ------------ Here are the changes found in Patchwork_142853v1_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@api_intel_bb@object-reloc-purge-cache: - shard-dg1: NOTRUN -> [SKIP][1] ([i915#8411]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@api_intel_bb@object-reloc-purge-cache.html * igt@device_reset@cold-reset-bound: - shard-tglu-1: NOTRUN -> [SKIP][2] ([i915#11078]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@device_reset@cold-reset-bound.html * igt@device_reset@unbind-reset-rebind: - shard-dg2: [PASS][3] -> [ABORT][4] ([i915#5507]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-11/igt@device_reset@unbind-reset-rebind.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@device_reset@unbind-reset-rebind.html - shard-tglu: NOTRUN -> [ABORT][5] ([i915#12817] / [i915#5507]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-10/igt@device_reset@unbind-reset-rebind.html * igt@dmabuf@all-tests@dma_fence_chain: - shard-rkl: NOTRUN -> [DMESG-WARN][6] ([i915#12964]) +28 other tests dmesg-warn [6]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@dmabuf@all-tests@dma_fence_chain.html * igt@drm_fdinfo@busy@rcs0: - shard-dg2: NOTRUN -> [SKIP][7] ([i915#8414]) +16 other tests skip [7]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@drm_fdinfo@busy@rcs0.html * igt@drm_fdinfo@virtual-busy-idle-all: - shard-dg1: NOTRUN -> [SKIP][8] ([i915#8414]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@drm_fdinfo@virtual-busy-idle-all.html * igt@gem_busy@semaphore: - shard-dg2: NOTRUN -> [SKIP][9] ([i915#3936]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@gem_busy@semaphore.html * igt@gem_ccs@ctrl-surf-copy: - shard-tglu-1: NOTRUN -> [SKIP][10] ([i915#3555] / [i915#9323]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@gem_ccs@ctrl-surf-copy.html * igt@gem_close_race@multigpu-basic-threads: - shard-rkl: NOTRUN -> [SKIP][11] ([i915#7697]) [11]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@gem_close_race@multigpu-basic-threads.html * igt@gem_create@create-ext-cpu-access-sanity-check: - shard-rkl: NOTRUN -> [SKIP][12] ([i915#6335]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@gem_create@create-ext-cpu-access-sanity-check.html * igt@gem_ctx_persistence@hang: - shard-snb: NOTRUN -> [SKIP][13] ([i915#1099]) [13]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-snb7/igt@gem_ctx_persistence@hang.html * igt@gem_ctx_persistence@heartbeat-hang: - shard-dg1: NOTRUN -> [SKIP][14] ([i915#8555]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@gem_ctx_persistence@heartbeat-hang.html * igt@gem_ctx_persistence@saturated-hostile-nopreempt: - shard-dg2: NOTRUN -> [SKIP][15] ([i915#5882]) +7 other tests skip [15]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@gem_ctx_persistence@saturated-hostile-nopreempt.html * igt@gem_ctx_sseu@mmap-args: - shard-tglu-1: NOTRUN -> [SKIP][16] ([i915#280]) [16]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@gem_ctx_sseu@mmap-args.html * igt@gem_eio@in-flight-suspend: - shard-glk: NOTRUN -> [INCOMPLETE][17] ([i915#13197]) [17]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-glk6/igt@gem_eio@in-flight-suspend.html * igt@gem_exec_balancer@bonded-false-hang: - shard-dg2: NOTRUN -> [SKIP][18] ([i915#4812]) +1 other test skip [18]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@gem_exec_balancer@bonded-false-hang.html * igt@gem_exec_balancer@bonded-pair: - shard-dg1: NOTRUN -> [SKIP][19] ([i915#4771]) [19]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@gem_exec_balancer@bonded-pair.html * igt@gem_exec_balancer@parallel-balancer: - shard-rkl: NOTRUN -> [SKIP][20] ([i915#4525]) +2 other tests skip [20]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@gem_exec_balancer@parallel-balancer.html - shard-tglu: NOTRUN -> [SKIP][21] ([i915#4525]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@gem_exec_balancer@parallel-balancer.html * igt@gem_exec_balancer@parallel-contexts: - shard-tglu-1: NOTRUN -> [SKIP][22] ([i915#4525]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@gem_exec_balancer@parallel-contexts.html * igt@gem_exec_capture@capture-recoverable: - shard-rkl: NOTRUN -> [SKIP][23] ([i915#6344]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@gem_exec_capture@capture-recoverable.html * igt@gem_exec_flush@basic-batch-kernel-default-uc: - shard-dg2: NOTRUN -> [SKIP][24] ([i915#3539] / [i915#4852]) +1 other test skip [24]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@gem_exec_flush@basic-batch-kernel-default-uc.html * igt@gem_exec_params@rsvd2-dirt: - shard-dg2: NOTRUN -> [SKIP][25] ([i915#5107]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@gem_exec_params@rsvd2-dirt.html * igt@gem_exec_reloc@basic-cpu-gtt: - shard-dg1: NOTRUN -> [SKIP][26] ([i915#3281]) +2 other tests skip [26]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@gem_exec_reloc@basic-cpu-gtt.html * igt@gem_exec_reloc@basic-gtt: - shard-dg2: NOTRUN -> [SKIP][27] ([i915#3281]) +7 other tests skip [27]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@gem_exec_reloc@basic-gtt.html * igt@gem_exec_reloc@basic-scanout: - shard-rkl: NOTRUN -> [SKIP][28] ([i915#3281]) +9 other tests skip [28]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@gem_exec_reloc@basic-scanout.html * igt@gem_exec_schedule@reorder-wide: - shard-dg2: NOTRUN -> [SKIP][29] ([i915#4537] / [i915#4812]) +1 other test skip [29]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@gem_exec_schedule@reorder-wide.html * igt@gem_exec_suspend@basic-s4-devices: - shard-dg2: NOTRUN -> [ABORT][30] ([i915#7975] / [i915#8213]) +1 other test abort [30]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-2/igt@gem_exec_suspend@basic-s4-devices.html * igt@gem_fence_thrash@bo-write-verify-y: - shard-dg2: NOTRUN -> [SKIP][31] ([i915#4860]) [31]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@gem_fence_thrash@bo-write-verify-y.html * igt@gem_fenced_exec_thrash@no-spare-fences: - shard-dg1: NOTRUN -> [SKIP][32] ([i915#4860]) [32]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@gem_fenced_exec_thrash@no-spare-fences.html * igt@gem_huc_copy@huc-copy: - shard-rkl: NOTRUN -> [SKIP][33] ([i915#2190]) [33]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@basic: - shard-rkl: NOTRUN -> [SKIP][34] ([i915#4613]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@gem_lmem_swapping@basic.html - shard-tglu: NOTRUN -> [SKIP][35] ([i915#4613]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@gem_lmem_swapping@basic.html * igt@gem_lmem_swapping@parallel-random: - shard-tglu-1: NOTRUN -> [SKIP][36] ([i915#4613]) +1 other test skip [36]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@gem_lmem_swapping@parallel-random.html * igt@gem_mmap_wc@bad-object: - shard-dg1: NOTRUN -> [SKIP][37] ([i915#4083]) +2 other tests skip [37]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@gem_mmap_wc@bad-object.html * igt@gem_mmap_wc@copy: - shard-dg2: NOTRUN -> [SKIP][38] ([i915#4083]) +3 other tests skip [38]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@gem_mmap_wc@copy.html * igt@gem_partial_pwrite_pread@reads-uncached: - shard-dg2: NOTRUN -> [SKIP][39] ([i915#3282]) +3 other tests skip [39]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@gem_partial_pwrite_pread@reads-uncached.html * igt@gem_partial_pwrite_pread@writes-after-reads: - shard-rkl: NOTRUN -> [SKIP][40] ([i915#3282]) +6 other tests skip [40]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@gem_partial_pwrite_pread@writes-after-reads.html * igt@gem_pwrite@basic-self: - shard-dg1: NOTRUN -> [SKIP][41] ([i915#3282]) +1 other test skip [41]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@gem_pwrite@basic-self.html * igt@gem_pxp@display-protected-crc: - shard-dg2: NOTRUN -> [SKIP][42] ([i915#4270]) +2 other tests skip [42]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@gem_pxp@display-protected-crc.html * igt@gem_pxp@hw-rejects-pxp-buffer: - shard-tglu-1: NOTRUN -> [SKIP][43] ([i915#13033]) [43]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@gem_pxp@hw-rejects-pxp-buffer.html * igt@gem_pxp@reject-modify-context-protection-off-3: - shard-rkl: NOTRUN -> [SKIP][44] ([i915#4270]) [44]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@gem_pxp@reject-modify-context-protection-off-3.html * igt@gem_pxp@reject-modify-context-protection-on: - shard-rkl: NOTRUN -> [TIMEOUT][45] ([i915#12917] / [i915#12964]) +3 other tests timeout [45]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@gem_pxp@reject-modify-context-protection-on.html * igt@gem_render_copy@linear-to-vebox-yf-tiled: - shard-dg2: NOTRUN -> [SKIP][46] ([i915#5190] / [i915#8428]) +5 other tests skip [46]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@gem_render_copy@linear-to-vebox-yf-tiled.html * igt@gem_set_tiling_vs_blt@tiled-to-tiled: - shard-dg2: NOTRUN -> [SKIP][47] ([i915#4079]) +2 other tests skip [47]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@gem_set_tiling_vs_blt@tiled-to-tiled.html * igt@gem_softpin@evict-snoop: - shard-dg1: NOTRUN -> [SKIP][48] ([i915#4885]) [48]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@gem_softpin@evict-snoop.html * igt@gem_tiled_partial_pwrite_pread@writes: - shard-dg2: NOTRUN -> [SKIP][49] ([i915#4077]) +9 other tests skip [49]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@gem_tiled_partial_pwrite_pread@writes.html * igt@gem_userptr_blits@coherency-unsync: - shard-tglu: NOTRUN -> [SKIP][50] ([i915#3297]) [50]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@gem_userptr_blits@coherency-unsync.html * igt@gem_userptr_blits@create-destroy-unsync: - shard-rkl: NOTRUN -> [SKIP][51] ([i915#3297]) +2 other tests skip [51]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@gem_userptr_blits@create-destroy-unsync.html * igt@gem_userptr_blits@dmabuf-sync: - shard-tglu-1: NOTRUN -> [SKIP][52] ([i915#3297] / [i915#3323]) [52]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@gem_userptr_blits@dmabuf-sync.html * igt@gem_userptr_blits@forbidden-operations: - shard-dg2: NOTRUN -> [SKIP][53] ([i915#3282] / [i915#3297]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@gem_userptr_blits@forbidden-operations.html * igt@gem_userptr_blits@map-fixed-invalidate: - shard-dg2: NOTRUN -> [SKIP][54] ([i915#3297] / [i915#4880]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@gem_userptr_blits@map-fixed-invalidate.html * igt@gem_userptr_blits@readonly-unsync: - shard-dg2: NOTRUN -> [SKIP][55] ([i915#3297]) +2 other tests skip [55]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@gem_userptr_blits@readonly-unsync.html * igt@gem_userptr_blits@sd-probe: - shard-dg2: NOTRUN -> [SKIP][56] ([i915#3297] / [i915#4958]) [56]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@gem_userptr_blits@sd-probe.html * igt@gen9_exec_parse@allowed-single: - shard-dg1: NOTRUN -> [SKIP][57] ([i915#2527]) [57]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@gen9_exec_parse@allowed-single.html * igt@gen9_exec_parse@batch-invalid-length: - shard-tglu: NOTRUN -> [SKIP][58] ([i915#2527] / [i915#2856]) [58]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@gen9_exec_parse@batch-invalid-length.html * igt@gen9_exec_parse@bb-start-out: - shard-rkl: NOTRUN -> [SKIP][59] ([i915#2527]) +2 other tests skip [59]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@gen9_exec_parse@bb-start-out.html * igt@gen9_exec_parse@bb-start-param: - shard-tglu-1: NOTRUN -> [SKIP][60] ([i915#2527] / [i915#2856]) +1 other test skip [60]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@gen9_exec_parse@bb-start-param.html * igt@gen9_exec_parse@valid-registers: - shard-dg2: NOTRUN -> [SKIP][61] ([i915#2856]) +1 other test skip [61]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@gen9_exec_parse@valid-registers.html * igt@i915_module_load@reload-with-fault-injection: - shard-dg2: [PASS][62] -> [ABORT][63] ([i915#9820]) [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-6/igt@i915_module_load@reload-with-fault-injection.html [63]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-8/igt@i915_module_load@reload-with-fault-injection.html * igt@i915_pm_freq_api@freq-suspend: - shard-rkl: NOTRUN -> [SKIP][64] ([i915#8399]) +1 other test skip [64]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@i915_pm_freq_api@freq-suspend.html * igt@i915_pm_freq_mult@media-freq@gt0: - shard-rkl: NOTRUN -> [SKIP][65] ([i915#6590]) +1 other test skip [65]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@i915_pm_freq_mult@media-freq@gt0.html - shard-tglu: NOTRUN -> [SKIP][66] ([i915#6590]) +1 other test skip [66]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@i915_pm_freq_mult@media-freq@gt0.html * igt@i915_pm_rc6_residency@rc6-idle@gt0-rcs0: - shard-dg1: NOTRUN -> [FAIL][67] ([i915#12739] / [i915#3591]) [67]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@gt0-rcs0.html * igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0: - shard-dg1: NOTRUN -> [FAIL][68] ([i915#3591]) +1 other test fail [68]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@i915_pm_rc6_residency@rc6-idle@gt0-vcs0.html * igt@i915_pm_rps@min-max-config-idle: - shard-dg1: NOTRUN -> [SKIP][69] ([i915#11681] / [i915#6621]) [69]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@i915_pm_rps@min-max-config-idle.html * igt@i915_pm_rps@min-max-config-loaded: - shard-dg2: NOTRUN -> [SKIP][70] ([i915#11681] / [i915#6621]) [70]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@i915_pm_rps@min-max-config-loaded.html * igt@i915_pm_rps@reset: - shard-snb: [PASS][71] -> [INCOMPLETE][72] ([i915#7790]) [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-snb2/igt@i915_pm_rps@reset.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-snb4/igt@i915_pm_rps@reset.html * igt@i915_pm_rps@thresholds-idle-park: - shard-dg2: NOTRUN -> [SKIP][73] ([i915#11681]) [73]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@i915_pm_rps@thresholds-idle-park.html * igt@i915_pm_sseu@full-enable: - shard-dg2: NOTRUN -> [SKIP][74] ([i915#4387]) [74]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@i915_pm_sseu@full-enable.html * igt@i915_query@query-topology-coherent-slice-mask: - shard-dg2: NOTRUN -> [SKIP][75] ([i915#6188]) [75]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-2/igt@i915_query@query-topology-coherent-slice-mask.html * igt@intel_hwmon@hwmon-read: - shard-tglu-1: NOTRUN -> [SKIP][76] ([i915#7707]) [76]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@intel_hwmon@hwmon-read.html * igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling: - shard-dg2: NOTRUN -> [SKIP][77] ([i915#4212]) [77]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_addfb_basic@addfb25-framebuffer-vs-set-tiling.html * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy: - shard-dg2: NOTRUN -> [SKIP][78] ([i915#5190]) +1 other test skip [78]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-2/igt@kms_addfb_basic@addfb25-y-tiled-small-legacy.html * igt@kms_addfb_basic@tile-pitch-mismatch: - shard-dg1: NOTRUN -> [SKIP][79] ([i915#4212]) [79]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_addfb_basic@tile-pitch-mismatch.html * igt@kms_async_flips@async-flip-with-page-flip-events: - shard-rkl: [PASS][80] -> [DMESG-WARN][81] ([i915#12964]) [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-rkl-2/igt@kms_async_flips@async-flip-with-page-flip-events.html [81]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_async_flips@async-flip-with-page-flip-events.html * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-2-y-rc-ccs-cc: - shard-rkl: NOTRUN -> [SKIP][82] ([i915#8709]) +3 other tests skip [82]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-2-y-rc-ccs-cc.html * igt@kms_async_flips@crc: - shard-rkl: NOTRUN -> [INCOMPLETE][83] ([i915#13287] / [i915#9878]) [83]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_async_flips@crc.html * igt@kms_async_flips@crc@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [INCOMPLETE][84] ([i915#13287]) [84]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_async_flips@crc@pipe-a-hdmi-a-2.html * igt@kms_async_flips@crc@pipe-b-hdmi-a-2: - shard-dg2: NOTRUN -> [CRASH][85] ([i915#13287]) +3 other tests crash [85]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-11/igt@kms_async_flips@crc@pipe-b-hdmi-a-2.html * igt@kms_atomic@plane-primary-overlay-mutable-zpos: - shard-dg2: NOTRUN -> [SKIP][86] ([i915#9531]) [86]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_atomic@plane-primary-overlay-mutable-zpos.html * igt@kms_atomic_interruptible@universal-setplane-primary: - shard-dg1: [PASS][87] -> [DMESG-WARN][88] ([i915#4423]) [87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg1-14/igt@kms_atomic_interruptible@universal-setplane-primary.html [88]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_atomic_interruptible@universal-setplane-primary.html * igt@kms_atomic_transition@plane-all-modeset-transition: - shard-dg2: [PASS][89] -> [FAIL][90] ([i915#5956]) [89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-3/igt@kms_atomic_transition@plane-all-modeset-transition.html [90]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-4/igt@kms_atomic_transition@plane-all-modeset-transition.html * igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels: - shard-dg2: NOTRUN -> [SKIP][91] ([i915#1769] / [i915#3555]) +1 other test skip [91]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_atomic_transition@plane-all-modeset-transition-internal-panels.html * igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1: - shard-dg2: NOTRUN -> [FAIL][92] ([i915#5956]) [92]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-4/igt@kms_atomic_transition@plane-all-modeset-transition@pipe-a-hdmi-a-1.html * igt@kms_big_fb@4-tiled-64bpp-rotate-270: - shard-rkl: NOTRUN -> [SKIP][93] ([i915#5286]) +3 other tests skip [93]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_big_fb@4-tiled-64bpp-rotate-270.html * igt@kms_big_fb@4-tiled-8bpp-rotate-0: - shard-tglu-1: NOTRUN -> [SKIP][94] ([i915#5286]) +3 other tests skip [94]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_big_fb@4-tiled-8bpp-rotate-0.html * igt@kms_big_fb@4-tiled-addfb-size-offset-overflow: - shard-tglu: NOTRUN -> [SKIP][95] ([i915#5286]) [95]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@kms_big_fb@4-tiled-addfb-size-offset-overflow.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180: - shard-dg1: NOTRUN -> [SKIP][96] ([i915#4538] / [i915#5286]) [96]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-180.html * igt@kms_big_fb@linear-64bpp-rotate-90: - shard-dg1: NOTRUN -> [SKIP][97] ([i915#3638]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_big_fb@linear-64bpp-rotate-90.html * igt@kms_big_fb@linear-8bpp-rotate-270: - shard-rkl: NOTRUN -> [SKIP][98] ([i915#3638]) +2 other tests skip [98]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@kms_big_fb@linear-8bpp-rotate-270.html * igt@kms_big_fb@y-tiled-8bpp-rotate-180: - shard-dg2: NOTRUN -> [SKIP][99] ([i915#4538] / [i915#5190]) +12 other tests skip [99]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-2/igt@kms_big_fb@y-tiled-8bpp-rotate-180.html * igt@kms_big_fb@yf-tiled-8bpp-rotate-180: - shard-dg1: NOTRUN -> [SKIP][100] ([i915#4538]) +1 other test skip [100]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_big_fb@yf-tiled-8bpp-rotate-180.html * igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs: - shard-dg1: NOTRUN -> [SKIP][101] ([i915#12313]) [101]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_ccs@bad-rotation-90-4-tiled-bmg-ccs.html * igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs@pipe-a-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][102] ([i915#10307] / [i915#6095]) +217 other tests skip [102]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_ccs@ccs-on-another-bo-yf-tiled-ccs@pipe-a-hdmi-a-3.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs: - shard-rkl: NOTRUN -> [SKIP][103] ([i915#12313]) [103]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@kms_ccs@crc-primary-rotation-180-4-tiled-bmg-ccs.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-1: - shard-tglu-1: NOTRUN -> [SKIP][104] ([i915#6095]) +44 other tests skip [104]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-mc-ccs@pipe-c-hdmi-a-1.html * igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-1: - shard-tglu: NOTRUN -> [SKIP][105] ([i915#6095]) +4 other tests skip [105]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-1.html - shard-dg2: NOTRUN -> [SKIP][106] ([i915#10307] / [i915#10434] / [i915#6095]) [106]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-8/igt@kms_ccs@crc-primary-rotation-180-4-tiled-mtl-rc-ccs-cc@pipe-d-hdmi-a-1.html * igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][107] ([i915#6095]) +96 other tests skip [107]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_ccs@crc-primary-suspend-4-tiled-dg2-mc-ccs@pipe-b-hdmi-a-2.html * igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-3: - shard-dg2: NOTRUN -> [SKIP][108] ([i915#6095]) +20 other tests skip [108]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-2/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs-cc@pipe-b-hdmi-a-3.html * igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-3: - shard-dg1: NOTRUN -> [SKIP][109] ([i915#6095]) +115 other tests skip [109]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-12/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-c-hdmi-a-3.html * igt@kms_cdclk@mode-transition@pipe-a-dp-4: - shard-dg2: NOTRUN -> [SKIP][110] ([i915#11616] / [i915#7213]) +3 other tests skip [110]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_cdclk@mode-transition@pipe-a-dp-4.html * igt@kms_chamelium_frames@dp-crc-fast: - shard-dg2: NOTRUN -> [SKIP][111] ([i915#7828]) +8 other tests skip [111]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_chamelium_frames@dp-crc-fast.html * igt@kms_chamelium_hpd@dp-hpd: - shard-rkl: NOTRUN -> [SKIP][112] ([i915#7828]) +5 other tests skip [112]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_chamelium_hpd@dp-hpd.html - shard-tglu: NOTRUN -> [SKIP][113] ([i915#7828]) +1 other test skip [113]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@kms_chamelium_hpd@dp-hpd.html * igt@kms_chamelium_hpd@dp-hpd-after-suspend: - shard-dg1: NOTRUN -> [SKIP][114] ([i915#7828]) +1 other test skip [114]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_chamelium_hpd@dp-hpd-after-suspend.html * igt@kms_chamelium_hpd@hdmi-hpd-after-suspend: - shard-tglu-1: NOTRUN -> [SKIP][115] ([i915#7828]) +2 other tests skip [115]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_chamelium_hpd@hdmi-hpd-after-suspend.html * igt@kms_color@deep-color: - shard-tglu-1: NOTRUN -> [SKIP][116] ([i915#3555] / [i915#9979]) [116]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_color@deep-color.html * igt@kms_content_protection@atomic@pipe-a-dp-4: - shard-dg2: NOTRUN -> [TIMEOUT][117] ([i915#7173]) [117]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_content_protection@atomic@pipe-a-dp-4.html * igt@kms_content_protection@dp-mst-lic-type-0: - shard-dg2: NOTRUN -> [SKIP][118] ([i915#3299]) +1 other test skip [118]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_content_protection@dp-mst-lic-type-0.html * igt@kms_content_protection@dp-mst-lic-type-1: - shard-rkl: NOTRUN -> [SKIP][119] ([i915#3116]) [119]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_content_protection@dp-mst-lic-type-1.html - shard-tglu: NOTRUN -> [SKIP][120] ([i915#3116] / [i915#3299]) [120]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@kms_content_protection@dp-mst-lic-type-1.html * igt@kms_content_protection@dp-mst-type-0: - shard-dg1: NOTRUN -> [SKIP][121] ([i915#3299]) [121]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_content_protection@dp-mst-type-0.html * igt@kms_content_protection@mei-interface: - shard-rkl: NOTRUN -> [SKIP][122] ([i915#9424]) [122]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@kms_content_protection@mei-interface.html * igt@kms_content_protection@type1: - shard-rkl: NOTRUN -> [SKIP][123] ([i915#7118] / [i915#9424]) [123]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_content_protection@type1.html * igt@kms_cursor_crc@cursor-offscreen-512x512: - shard-dg1: NOTRUN -> [SKIP][124] ([i915#13049]) [124]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_cursor_crc@cursor-offscreen-512x512.html * igt@kms_cursor_crc@cursor-onscreen-512x170: - shard-tglu-1: NOTRUN -> [SKIP][125] ([i915#13049]) [125]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_cursor_crc@cursor-onscreen-512x170.html * igt@kms_cursor_crc@cursor-rapid-movement-512x170: - shard-dg2: NOTRUN -> [SKIP][126] ([i915#13049]) [126]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_cursor_crc@cursor-rapid-movement-512x170.html * igt@kms_cursor_crc@cursor-sliding-256x85: - shard-rkl: [PASS][127] -> [DMESG-WARN][128] ([i915#12917] / [i915#12964]) [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-rkl-2/igt@kms_cursor_crc@cursor-sliding-256x85.html [128]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-1/igt@kms_cursor_crc@cursor-sliding-256x85.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - shard-rkl: NOTRUN -> [SKIP][129] ([i915#4103]) [129]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_cursor_legacy@cursorb-vs-flipa-atomic: - shard-dg2: NOTRUN -> [SKIP][130] ([i915#13046] / [i915#5354]) +6 other tests skip [130]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-2/igt@kms_cursor_legacy@cursorb-vs-flipa-atomic.html * igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot: - shard-dg2: NOTRUN -> [SKIP][131] ([i915#9067]) [131]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_cursor_legacy@modeset-atomic-cursor-hotspot.html * igt@kms_dirtyfb@drrs-dirtyfb-ioctl: - shard-dg2: NOTRUN -> [SKIP][132] ([i915#9833]) [132]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_dirtyfb@drrs-dirtyfb-ioctl.html * igt@kms_display_modes@mst-extended-mode-negative: - shard-dg2: NOTRUN -> [SKIP][133] ([i915#8588]) [133]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_display_modes@mst-extended-mode-negative.html * igt@kms_dp_linktrain_fallback@dp-fallback: - shard-tglu-1: NOTRUN -> [SKIP][134] ([i915#12402]) [134]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_dp_linktrain_fallback@dp-fallback.html * igt@kms_dsc@dsc-basic: - shard-dg2: NOTRUN -> [SKIP][135] ([i915#3555] / [i915#3840]) [135]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_dsc@dsc-basic.html * igt@kms_dsc@dsc-fractional-bpp: - shard-tglu: NOTRUN -> [SKIP][136] ([i915#3840]) [136]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-10/igt@kms_dsc@dsc-fractional-bpp.html * igt@kms_dsc@dsc-fractional-bpp-with-bpc: - shard-dg1: NOTRUN -> [SKIP][137] ([i915#3840]) [137]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_dsc@dsc-fractional-bpp-with-bpc.html * igt@kms_dsc@dsc-with-output-formats: - shard-rkl: NOTRUN -> [SKIP][138] ([i915#3555] / [i915#3840]) +1 other test skip [138]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@kms_dsc@dsc-with-output-formats.html * igt@kms_dsc@dsc-with-output-formats-with-bpc: - shard-rkl: NOTRUN -> [SKIP][139] ([i915#3840] / [i915#9053]) [139]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_dsc@dsc-with-output-formats-with-bpc.html * igt@kms_feature_discovery@display-2x: - shard-tglu-1: NOTRUN -> [SKIP][140] ([i915#1839]) [140]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_feature_discovery@display-2x.html * igt@kms_feature_discovery@display-3x: - shard-rkl: NOTRUN -> [SKIP][141] ([i915#1839]) [141]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_feature_discovery@display-3x.html - shard-tglu: NOTRUN -> [SKIP][142] ([i915#1839]) [142]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@kms_feature_discovery@display-3x.html * igt@kms_feature_discovery@display-4x: - shard-dg2: NOTRUN -> [SKIP][143] ([i915#1839]) [143]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_feature_discovery@display-4x.html * igt@kms_feature_discovery@psr1: - shard-dg1: NOTRUN -> [SKIP][144] ([i915#658]) [144]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_feature_discovery@psr1.html * igt@kms_feature_discovery@psr2: - shard-dg2: NOTRUN -> [SKIP][145] ([i915#658]) [145]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_feature_discovery@psr2.html * igt@kms_fence_pin_leak: - shard-dg1: NOTRUN -> [SKIP][146] ([i915#4881]) [146]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_fence_pin_leak.html * igt@kms_flip@2x-flip-vs-fences: - shard-dg1: NOTRUN -> [SKIP][147] ([i915#8381]) [147]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_flip@2x-flip-vs-fences.html * igt@kms_flip@2x-flip-vs-modeset-vs-hang: - shard-dg1: NOTRUN -> [SKIP][148] ([i915#9934]) +2 other tests skip [148]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_flip@2x-flip-vs-modeset-vs-hang.html * igt@kms_flip@2x-flip-vs-wf_vblank: - shard-tglu-1: NOTRUN -> [SKIP][149] ([i915#3637]) +1 other test skip [149]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_flip@2x-flip-vs-wf_vblank.html * igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset: - shard-dg2: NOTRUN -> [SKIP][150] ([i915#9934]) +4 other tests skip [150]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_flip@2x-single-buffer-flip-vs-dpms-off-vs-modeset.html * igt@kms_flip@2x-wf_vblank-ts-check-interruptible: - shard-rkl: NOTRUN -> [SKIP][151] ([i915#9934]) +5 other tests skip [151]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html - shard-tglu: NOTRUN -> [SKIP][152] ([i915#3637]) +4 other tests skip [152]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@kms_flip@2x-wf_vblank-ts-check-interruptible.html * igt@kms_flip@absolute-wf_vblank-interruptible: - shard-rkl: NOTRUN -> [DMESG-WARN][153] ([i915#12917] / [i915#12964]) +1 other test dmesg-warn [153]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_flip@absolute-wf_vblank-interruptible.html * igt@kms_flip@blocking-wf_vblank@a-hdmi-a2: - shard-rkl: NOTRUN -> [FAIL][154] ([i915#11989]) [154]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-3/igt@kms_flip@blocking-wf_vblank@a-hdmi-a2.html * igt@kms_flip@plain-flip-fb-recreate@d-hdmi-a1: - shard-tglu: NOTRUN -> [FAIL][155] ([i915#11989]) +4 other tests fail [155]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-10/igt@kms_flip@plain-flip-fb-recreate@d-hdmi-a1.html * igt@kms_flip@plain-flip-ts-check: - shard-snb: [PASS][156] -> [FAIL][157] ([i915#11989]) +3 other tests fail [156]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-snb7/igt@kms_flip@plain-flip-ts-check.html [157]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-snb2/igt@kms_flip@plain-flip-ts-check.html - shard-tglu-1: NOTRUN -> [FAIL][158] ([i915#11989]) +2 other tests fail [158]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_flip@plain-flip-ts-check.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling: - shard-dg2: NOTRUN -> [SKIP][159] ([i915#2672] / [i915#3555]) +2 other tests skip [159]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode: - shard-rkl: NOTRUN -> [SKIP][160] ([i915#2672]) +4 other tests skip [160]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-64bpp-yftile-upscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling: - shard-dg2: NOTRUN -> [SKIP][161] ([i915#2672] / [i915#3555] / [i915#5190]) [161]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling.html * igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-valid-mode: - shard-dg2: NOTRUN -> [SKIP][162] ([i915#2672]) +3 other tests skip [162]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling: - shard-dg1: NOTRUN -> [SKIP][163] ([i915#2672] / [i915#3555]) [163]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode: - shard-dg1: NOTRUN -> [SKIP][164] ([i915#2587] / [i915#2672]) [164]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-upscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling: - shard-rkl: NOTRUN -> [SKIP][165] ([i915#2672] / [i915#3555]) +4 other tests skip [165]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-downscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling: - shard-tglu-1: NOTRUN -> [SKIP][166] ([i915#2672] / [i915#3555]) +1 other test skip [166]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling.html * igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode: - shard-tglu-1: NOTRUN -> [SKIP][167] ([i915#2587] / [i915#2672]) +1 other test skip [167]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-32bpp-yftile-upscaling@pipe-a-valid-mode.html * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt: - shard-dg2: [PASS][168] -> [FAIL][169] ([i915#6880]) +1 other test fail [168]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-1/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt.html [169]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-11/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-shrfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt: - shard-dg2: NOTRUN -> [SKIP][170] ([i915#5354]) +23 other tests skip [170]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-blt.html * igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc: - shard-dg2: NOTRUN -> [SKIP][171] ([i915#8708]) +24 other tests skip [171]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_frontbuffer_tracking@fbc-2p-primscrn-cur-indfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-pgflip-blt: - shard-snb: [PASS][172] -> [SKIP][173] [172]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-snb7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-pgflip-blt.html [173]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-snb2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-indfb-pgflip-blt.html * igt@kms_frontbuffer_tracking@fbc-tiling-4: - shard-rkl: NOTRUN -> [SKIP][174] ([i915#5439]) +1 other test skip [174]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@kms_frontbuffer_tracking@fbc-tiling-4.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-pwrite: - shard-dg1: NOTRUN -> [SKIP][175] ([i915#3458]) +2 other tests skip [175]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-1p-offscren-pri-indfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt: - shard-rkl: NOTRUN -> [SKIP][176] +20 other tests skip [176]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-render: - shard-dg1: NOTRUN -> [SKIP][177] +8 other tests skip [177]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-pri-shrfb-draw-render.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu: - shard-tglu-1: NOTRUN -> [SKIP][178] +39 other tests skip [178]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-mmap-cpu.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff: - shard-rkl: NOTRUN -> [SKIP][179] ([i915#1825]) +34 other tests skip [179]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff.html * igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc: - shard-rkl: NOTRUN -> [SKIP][180] ([i915#3023]) +22 other tests skip [180]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_frontbuffer_tracking@fbcpsr-rgb101010-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@pipe-fbc-rte: - shard-dg2: NOTRUN -> [SKIP][181] ([i915#9766]) [181]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_frontbuffer_tracking@pipe-fbc-rte.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move: - shard-dg2: NOTRUN -> [SKIP][182] ([i915#3458]) +18 other tests skip [182]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-move.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render: - shard-tglu: NOTRUN -> [SKIP][183] +32 other tests skip [183]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-10/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-shrfb-draw-render.html * igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc: - shard-dg1: NOTRUN -> [SKIP][184] ([i915#8708]) +4 other tests skip [184]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc.html * igt@kms_hdr@invalid-metadata-sizes: - shard-dg2: NOTRUN -> [SKIP][185] ([i915#3555] / [i915#8228]) +1 other test skip [185]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_hdr@invalid-metadata-sizes.html * igt@kms_hdr@static-toggle: - shard-dg1: NOTRUN -> [SKIP][186] ([i915#3555] / [i915#8228]) [186]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_hdr@static-toggle.html * igt@kms_joiner@basic-ultra-joiner: - shard-dg2: NOTRUN -> [SKIP][187] ([i915#12339]) [187]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_joiner@basic-ultra-joiner.html * igt@kms_joiner@invalid-modeset-force-big-joiner: - shard-rkl: NOTRUN -> [SKIP][188] ([i915#12388]) [188]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_joiner@invalid-modeset-force-big-joiner.html * igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c: - shard-dg2: NOTRUN -> [SKIP][189] +10 other tests skip [189]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_pipe_b_c_ivb@disable-pipe-b-enable-pipe-c.html * igt@kms_plane_lowres@tiling-4: - shard-dg1: NOTRUN -> [SKIP][190] ([i915#3555]) [190]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_plane_lowres@tiling-4.html * igt@kms_plane_lowres@tiling-yf: - shard-rkl: NOTRUN -> [SKIP][191] ([i915#3555]) +3 other tests skip [191]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_plane_lowres@tiling-yf.html * igt@kms_plane_multiple@tiling-yf: - shard-dg2: NOTRUN -> [SKIP][192] ([i915#3555] / [i915#8806]) [192]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_plane_multiple@tiling-yf.html * igt@kms_plane_scaling@intel-max-src-size: - shard-rkl: NOTRUN -> [SKIP][193] ([i915#6953]) [193]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_plane_scaling@intel-max-src-size.html * igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c: - shard-tglu: NOTRUN -> [SKIP][194] ([i915#12247]) +13 other tests skip [194]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@kms_plane_scaling@plane-downscale-factor-0-5-with-rotation@pipe-c.html * igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation: - shard-tglu-1: NOTRUN -> [SKIP][195] ([i915#3555]) +1 other test skip [195]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_plane_scaling@plane-scaler-with-clipping-clamping-rotation.html * igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a: - shard-rkl: NOTRUN -> [SKIP][196] ([i915#12247]) +7 other tests skip [196]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_plane_scaling@plane-upscale-20x20-with-rotation@pipe-a.html * igt@kms_plane_scaling@planes-downscale-factor-0-25: - shard-tglu: NOTRUN -> [SKIP][197] ([i915#12247] / [i915#6953]) [197]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-10/igt@kms_plane_scaling@planes-downscale-factor-0-25.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-d: - shard-tglu-1: NOTRUN -> [SKIP][198] ([i915#12247]) +13 other tests skip [198]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-20x20@pipe-d.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25: - shard-dg2: NOTRUN -> [SKIP][199] ([i915#12247] / [i915#6953] / [i915#9423]) [199]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-a: - shard-dg2: NOTRUN -> [SKIP][200] ([i915#12247]) +7 other tests skip [200]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_plane_scaling@planes-downscale-factor-0-25-upscale-factor-0-25@pipe-a.html * igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25: - shard-rkl: NOTRUN -> [SKIP][201] ([i915#12247] / [i915#6953]) [201]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@kms_plane_scaling@planes-unity-scaling-downscale-factor-0-25.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25: - shard-dg2: NOTRUN -> [SKIP][202] ([i915#12247] / [i915#3555] / [i915#9423]) [202]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25.html * igt@kms_pm_backlight@basic-brightness: - shard-rkl: NOTRUN -> [SKIP][203] ([i915#5354]) [203]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@kms_pm_backlight@basic-brightness.html * igt@kms_pm_backlight@brightness-with-dpms: - shard-dg1: NOTRUN -> [SKIP][204] ([i915#12343]) [204]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_pm_backlight@brightness-with-dpms.html * igt@kms_pm_backlight@fade-with-suspend: - shard-tglu-1: NOTRUN -> [SKIP][205] ([i915#9812]) [205]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_pm_backlight@fade-with-suspend.html * igt@kms_pm_dc@dc5-retention-flops: - shard-rkl: NOTRUN -> [SKIP][206] ([i915#3828]) [206]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_pm_dc@dc5-retention-flops.html * igt@kms_pm_dc@dc6-dpms: - shard-dg2: NOTRUN -> [SKIP][207] ([i915#5978]) [207]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_pm_dc@dc6-dpms.html * igt@kms_pm_dc@dc9-dpms: - shard-rkl: NOTRUN -> [SKIP][208] ([i915#4281]) [208]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_pm_dc@dc9-dpms.html * igt@kms_pm_rpm@dpms-mode-unset-lpsp: - shard-dg2: NOTRUN -> [SKIP][209] ([i915#9519]) [209]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_pm_rpm@dpms-mode-unset-lpsp.html * igt@kms_pm_rpm@dpms-non-lpsp: - shard-dg2: [PASS][210] -> [SKIP][211] ([i915#9519]) [210]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-5/igt@kms_pm_rpm@dpms-non-lpsp.html [211]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-8/igt@kms_pm_rpm@dpms-non-lpsp.html * igt@kms_pm_rpm@modeset-lpsp-stress-no-wait: - shard-rkl: [PASS][212] -> [SKIP][213] ([i915#9519]) [212]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-rkl-2/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html [213]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-5/igt@kms_pm_rpm@modeset-lpsp-stress-no-wait.html * igt@kms_pm_rpm@modeset-non-lpsp: - shard-rkl: NOTRUN -> [SKIP][214] ([i915#9519]) [214]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_pm_rpm@modeset-non-lpsp.html * igt@kms_prime@basic-crc-hybrid: - shard-dg1: NOTRUN -> [SKIP][215] ([i915#6524]) [215]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_prime@basic-crc-hybrid.html * igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf: - shard-tglu: NOTRUN -> [SKIP][216] ([i915#11520]) +3 other tests skip [216]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-10/igt@kms_psr2_sf@fbc-pr-overlay-plane-move-continuous-exceed-sf.html * igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf: - shard-rkl: NOTRUN -> [SKIP][217] ([i915#11520]) +8 other tests skip [217]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_psr2_sf@fbc-pr-overlay-plane-update-continuous-sf.html * igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf: - shard-dg1: NOTRUN -> [SKIP][218] ([i915#11520]) +1 other test skip [218]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_psr2_sf@fbc-psr2-cursor-plane-update-sf.html * igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area: - shard-tglu-1: NOTRUN -> [SKIP][219] ([i915#11520]) +2 other tests skip [219]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_psr2_sf@fbc-psr2-plane-move-sf-dmg-area.html * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area: - shard-dg2: NOTRUN -> [SKIP][220] ([i915#11520]) +8 other tests skip [220]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area.html * igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb: - shard-snb: NOTRUN -> [SKIP][221] ([i915#11520]) +4 other tests skip [221]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-snb7/igt@kms_psr2_sf@psr2-primary-plane-update-sf-dmg-area-big-fb.html * igt@kms_psr2_su@frontbuffer-xrgb8888: - shard-dg2: NOTRUN -> [SKIP][222] ([i915#9683]) [222]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_psr2_su@frontbuffer-xrgb8888.html * igt@kms_psr2_su@page_flip-nv12: - shard-tglu-1: NOTRUN -> [SKIP][223] ([i915#9683]) [223]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_psr2_su@page_flip-nv12.html * igt@kms_psr@fbc-pr-cursor-plane-onoff: - shard-dg1: NOTRUN -> [SKIP][224] ([i915#1072] / [i915#9732]) +4 other tests skip [224]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_psr@fbc-pr-cursor-plane-onoff.html * igt@kms_psr@fbc-pr-sprite-plane-onoff: - shard-tglu-1: NOTRUN -> [SKIP][225] ([i915#9732]) +7 other tests skip [225]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_psr@fbc-pr-sprite-plane-onoff.html * igt@kms_psr@fbc-psr2-sprite-plane-move: - shard-glk: NOTRUN -> [SKIP][226] +36 other tests skip [226]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-glk6/igt@kms_psr@fbc-psr2-sprite-plane-move.html * igt@kms_psr@pr-sprite-mmap-gtt: - shard-rkl: NOTRUN -> [SKIP][227] ([i915#1072] / [i915#9732]) +21 other tests skip [227]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_psr@pr-sprite-mmap-gtt.html * igt@kms_psr@psr-primary-page-flip: - shard-tglu: NOTRUN -> [SKIP][228] ([i915#9732]) +6 other tests skip [228]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-10/igt@kms_psr@psr-primary-page-flip.html * igt@kms_psr@psr-sprite-blt: - shard-snb: NOTRUN -> [SKIP][229] +149 other tests skip [229]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-snb7/igt@kms_psr@psr-sprite-blt.html * igt@kms_psr@psr2-cursor-blt: - shard-dg2: NOTRUN -> [SKIP][230] ([i915#1072] / [i915#9732]) +18 other tests skip [230]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_psr@psr2-cursor-blt.html * igt@kms_psr_stress_test@flip-primary-invalidate-overlay: - shard-dg2: NOTRUN -> [SKIP][231] ([i915#9685]) [231]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html * igt@kms_psr_stress_test@invalidate-primary-flip-overlay: - shard-dg1: NOTRUN -> [SKIP][232] ([i915#9685]) [232]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0: - shard-tglu-1: NOTRUN -> [SKIP][233] ([i915#5289]) +1 other test skip [233]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html * igt@kms_rotation_crc@sprite-rotation-90-pos-100-0: - shard-dg2: NOTRUN -> [SKIP][234] ([i915#12755]) +1 other test skip [234]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_rotation_crc@sprite-rotation-90-pos-100-0.html * igt@kms_scaling_modes@scaling-mode-none: - shard-dg2: NOTRUN -> [SKIP][235] ([i915#3555]) +6 other tests skip [235]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@kms_scaling_modes@scaling-mode-none.html * igt@kms_setmode@clone-exclusive-crtc: - shard-tglu: NOTRUN -> [SKIP][236] ([i915#3555]) [236]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@kms_setmode@clone-exclusive-crtc.html * igt@kms_tiled_display@basic-test-pattern: - shard-tglu: NOTRUN -> [SKIP][237] ([i915#8623]) [237]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@kms_tiled_display@basic-test-pattern.html - shard-rkl: NOTRUN -> [SKIP][238] ([i915#8623]) [238]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_tiled_display@basic-test-pattern.html * igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2: - shard-glk: NOTRUN -> [INCOMPLETE][239] ([i915#12276]) [239]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-glk8/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-2.html * igt@kms_vrr@lobf: - shard-dg1: NOTRUN -> [SKIP][240] ([i915#11920]) [240]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-17/igt@kms_vrr@lobf.html * igt@kms_writeback@writeback-check-output-xrgb2101010: - shard-dg2: NOTRUN -> [SKIP][241] ([i915#2437] / [i915#9412]) [241]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_writeback@writeback-check-output-xrgb2101010.html * igt@kms_writeback@writeback-fb-id-xrgb2101010: - shard-rkl: NOTRUN -> [SKIP][242] ([i915#2437] / [i915#9412]) [242]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@kms_writeback@writeback-fb-id-xrgb2101010.html * igt@kms_writeback@writeback-invalid-parameters: - shard-tglu-1: NOTRUN -> [SKIP][243] ([i915#2437]) [243]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@kms_writeback@writeback-invalid-parameters.html * igt@kms_writeback@writeback-pixel-formats: - shard-glk: NOTRUN -> [SKIP][244] ([i915#2437]) [244]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-glk6/igt@kms_writeback@writeback-pixel-formats.html * igt@perf@per-context-mode-unprivileged: - shard-rkl: NOTRUN -> [SKIP][245] ([i915#2435]) [245]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-2/igt@perf@per-context-mode-unprivileged.html * igt@perf_pmu@rc6-all-gts: - shard-dg2: NOTRUN -> [SKIP][246] ([i915#8516]) [246]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@perf_pmu@rc6-all-gts.html * igt@prime_mmap@test_aperture_limit: - shard-dg2: NOTRUN -> [WARN][247] ([i915#9351]) [247]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@prime_mmap@test_aperture_limit.html * igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem: - shard-dg2: NOTRUN -> [CRASH][248] ([i915#9351]) [248]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@prime_mmap@test_aperture_limit@test_aperture_limit-smem.html * igt@prime_vgem@basic-fence-read: - shard-rkl: NOTRUN -> [SKIP][249] ([i915#3291] / [i915#3708]) [249]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@prime_vgem@basic-fence-read.html * igt@prime_vgem@basic-gtt: - shard-dg2: NOTRUN -> [SKIP][250] ([i915#3708] / [i915#4077]) [250]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@prime_vgem@basic-gtt.html * igt@prime_vgem@fence-flip-hang: - shard-rkl: NOTRUN -> [SKIP][251] ([i915#3708]) [251]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-7/igt@prime_vgem@fence-flip-hang.html * igt@prime_vgem@fence-write-hang: - shard-dg2: NOTRUN -> [SKIP][252] ([i915#3708]) [252]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@prime_vgem@fence-write-hang.html * igt@sriov_basic@enable-vfs-autoprobe-off@numvfs-6: - shard-tglu: NOTRUN -> [FAIL][253] ([i915#12910]) +9 other tests fail [253]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-10/igt@sriov_basic@enable-vfs-autoprobe-off@numvfs-6.html * igt@sriov_basic@enable-vfs-autoprobe-on: - shard-dg2: NOTRUN -> [SKIP][254] ([i915#9917]) +1 other test skip [254]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@sriov_basic@enable-vfs-autoprobe-on.html * igt@sriov_basic@enable-vfs-bind-unbind-each@numvfs-2: - shard-tglu-1: NOTRUN -> [FAIL][255] ([i915#12910]) +8 other tests fail [255]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-1/igt@sriov_basic@enable-vfs-bind-unbind-each@numvfs-2.html #### Possible fixes #### * igt@gem_lmem_swapping@smem-oom@lmem0: - shard-dg2: [TIMEOUT][256] ([i915#5493]) -> [PASS][257] +1 other test pass [256]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-10/igt@gem_lmem_swapping@smem-oom@lmem0.html [257]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@gem_lmem_swapping@smem-oom@lmem0.html * igt@i915_module_load@load: - shard-dg2: ([PASS][258], [PASS][259], [PASS][260], [PASS][261], [PASS][262], [PASS][263], [PASS][264], [PASS][265], [PASS][266], [PASS][267], [PASS][268], [PASS][269], [DMESG-WARN][270], [PASS][271], [PASS][272], [DMESG-WARN][273], [PASS][274], [PASS][275], [PASS][276], [PASS][277], [PASS][278], [PASS][279]) ([i915#13368]) -> ([PASS][280], [PASS][281], [PASS][282], [PASS][283], [PASS][284], [PASS][285], [PASS][286], [PASS][287], [PASS][288], [PASS][289], [PASS][290], [PASS][291], [PASS][292], [PASS][293], [PASS][294], [PASS][295], [PASS][296], [PASS][297], [PASS][298], [PASS][299], [PASS][300], [PASS][301], [PASS][302], [PASS][303]) [258]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-7/igt@i915_module_load@load.html [259]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-4/igt@i915_module_load@load.html [260]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-11/igt@i915_module_load@load.html [261]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-8/igt@i915_module_load@load.html [262]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-10/igt@i915_module_load@load.html [263]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-11/igt@i915_module_load@load.html [264]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-8/igt@i915_module_load@load.html [265]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-8/igt@i915_module_load@load.html [266]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-10/igt@i915_module_load@load.html [267]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-1/igt@i915_module_load@load.html [268]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-1/igt@i915_module_load@load.html [269]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-6/igt@i915_module_load@load.html [270]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-2/igt@i915_module_load@load.html [271]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-2/igt@i915_module_load@load.html [272]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-6/igt@i915_module_load@load.html [273]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-2/igt@i915_module_load@load.html [274]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-2/igt@i915_module_load@load.html [275]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-5/igt@i915_module_load@load.html [276]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-3/igt@i915_module_load@load.html [277]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-3/igt@i915_module_load@load.html [278]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-5/igt@i915_module_load@load.html [279]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-4/igt@i915_module_load@load.html [280]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@i915_module_load@load.html [281]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-7/igt@i915_module_load@load.html [282]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-5/igt@i915_module_load@load.html [283]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-5/igt@i915_module_load@load.html [284]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-1/igt@i915_module_load@load.html [285]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-1/igt@i915_module_load@load.html [286]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-2/igt@i915_module_load@load.html [287]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-7/igt@i915_module_load@load.html [288]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-4/igt@i915_module_load@load.html [289]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-11/igt@i915_module_load@load.html [290]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@i915_module_load@load.html [291]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-11/igt@i915_module_load@load.html [292]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-8/igt@i915_module_load@load.html [293]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@i915_module_load@load.html [294]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-8/igt@i915_module_load@load.html [295]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-1/igt@i915_module_load@load.html [296]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@i915_module_load@load.html [297]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@i915_module_load@load.html [298]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-6/igt@i915_module_load@load.html [299]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-2/igt@i915_module_load@load.html [300]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-8/igt@i915_module_load@load.html [301]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@i915_module_load@load.html [302]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-11/igt@i915_module_load@load.html [303]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@i915_module_load@load.html * igt@i915_module_load@reload-with-fault-injection: - shard-glk: [ABORT][304] -> [PASS][305] [304]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-glk8/igt@i915_module_load@reload-with-fault-injection.html [305]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-glk6/igt@i915_module_load@reload-with-fault-injection.html * igt@kms_atomic_transition@modeset-transition-nonblocking-fencing: - shard-glk: [FAIL][306] ([i915#12238]) -> [PASS][307] [306]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-glk8/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing.html [307]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-glk2/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing.html * igt@kms_atomic_transition@modeset-transition-nonblocking-fencing@2x-outputs: - shard-glk: [FAIL][308] ([i915#11859]) -> [PASS][309] [308]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-glk8/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing@2x-outputs.html [309]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-glk2/igt@kms_atomic_transition@modeset-transition-nonblocking-fencing@2x-outputs.html * igt@kms_cursor_legacy@cursora-vs-flipb-varying-size: - shard-snb: [SKIP][310] -> [PASS][311] [310]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-snb7/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html [311]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-snb7/igt@kms_cursor_legacy@cursora-vs-flipb-varying-size.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-glk: [FAIL][312] ([i915#2346]) -> [PASS][313] [312]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [313]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * igt@kms_cursor_legacy@flip-vs-cursor-toggle: - shard-mtlp: [FAIL][314] ([i915#2346]) -> [PASS][315] [314]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-mtlp-6/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html [315]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-mtlp-5/igt@kms_cursor_legacy@flip-vs-cursor-toggle.html * igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1: - shard-snb: [FAIL][316] ([i915#11989]) -> [PASS][317] +1 other test pass [316]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-snb7/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1.html [317]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-snb2/igt@kms_flip@2x-flip-vs-absolute-wf_vblank-interruptible@ab-vga1-hdmi-a1.html * igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1: - shard-mtlp: [FAIL][318] ([i915#12741]) -> [PASS][319] [318]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-mtlp-1/igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1.html [319]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-mtlp-1/igt@kms_flip@flip-vs-blocking-wf-vblank@a-edp1.html * igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1: - shard-mtlp: [FAIL][320] ([i915#11989]) -> [PASS][321] +1 other test pass [320]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-mtlp-1/igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1.html [321]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-mtlp-1/igt@kms_flip@flip-vs-blocking-wf-vblank@c-edp1.html * igt@kms_flip@flip-vs-blocking-wf-vblank@d-edp1: - shard-mtlp: [FAIL][322] ([i915#11989] / [i915#12740]) -> [PASS][323] +1 other test pass [322]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-mtlp-1/igt@kms_flip@flip-vs-blocking-wf-vblank@d-edp1.html [323]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-mtlp-1/igt@kms_flip@flip-vs-blocking-wf-vblank@d-edp1.html * igt@kms_flip@wf_vblank-ts-check-interruptible@a-hdmi-a1: - shard-tglu: [FAIL][324] ([i915#11989]) -> [PASS][325] +1 other test pass [324]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-tglu-4/igt@kms_flip@wf_vblank-ts-check-interruptible@a-hdmi-a1.html [325]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-10/igt@kms_flip@wf_vblank-ts-check-interruptible@a-hdmi-a1.html * igt@kms_joiner@basic-force-big-joiner: - shard-dg2: [SKIP][326] ([i915#12388]) -> [PASS][327] [326]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-3/igt@kms_joiner@basic-force-big-joiner.html [327]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_joiner@basic-force-big-joiner.html * igt@kms_pm_rpm@modeset-non-lpsp-stress: - shard-dg2: [SKIP][328] ([i915#9519]) -> [PASS][329] +1 other test pass [328]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-8/igt@kms_pm_rpm@modeset-non-lpsp-stress.html [329]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-1/igt@kms_pm_rpm@modeset-non-lpsp-stress.html - shard-rkl: [SKIP][330] ([i915#9519]) -> [PASS][331] +1 other test pass [330]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-rkl-2/igt@kms_pm_rpm@modeset-non-lpsp-stress.html [331]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-1/igt@kms_pm_rpm@modeset-non-lpsp-stress.html * igt@kms_rotation_crc@primary-rotation-90: - shard-rkl: [DMESG-WARN][332] ([i915#12964]) -> [PASS][333] [332]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-rkl-2/igt@kms_rotation_crc@primary-rotation-90.html [333]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-1/igt@kms_rotation_crc@primary-rotation-90.html * igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1: - shard-glk: [INCOMPLETE][334] ([i915#12276]) -> [PASS][335] [334]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-glk2/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1.html [335]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-glk8/igt@kms_vblank@ts-continuation-dpms-suspend@pipe-a-hdmi-a-1.html * igt@perf_pmu@render-node-busy-idle: - shard-mtlp: [FAIL][336] ([i915#4349]) -> [PASS][337] +1 other test pass [336]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-mtlp-2/igt@perf_pmu@render-node-busy-idle.html [337]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-mtlp-4/igt@perf_pmu@render-node-busy-idle.html #### Warnings #### * igt@i915_module_load@reload-with-fault-injection: - shard-tglu: [ABORT][338] ([i915#12817] / [i915#9820]) -> [ABORT][339] ([i915#10887] / [i915#12817] / [i915#9820]) [338]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-tglu-2/igt@i915_module_load@reload-with-fault-injection.html [339]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-tglu-3/igt@i915_module_load@reload-with-fault-injection.html - shard-mtlp: [ABORT][340] ([i915#10131] / [i915#9820]) -> [ABORT][341] ([i915#10131] / [i915#10887]) [340]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-mtlp-2/igt@i915_module_load@reload-with-fault-injection.html [341]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-mtlp-4/igt@i915_module_load@reload-with-fault-injection.html * igt@i915_pm_rpm@system-suspend: - shard-rkl: [SKIP][342] ([i915#13328]) -> [DMESG-WARN][343] ([i915#12964]) [342]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-rkl-2/igt@i915_pm_rpm@system-suspend.html [343]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-rkl-1/igt@i915_pm_rpm@system-suspend.html * igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip: - shard-dg1: [SKIP][344] ([i915#4538] / [i915#5286]) -> [SKIP][345] ([i915#4423] / [i915#4538] / [i915#5286]) [344]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg1-12/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html [345]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-14/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html - shard-mtlp: [DMESG-FAIL][346] ([i915#13314]) -> [DMESG-FAIL][347] ([i915#11627] / [i915#13314]) [346]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-mtlp-3/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html [347]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-mtlp-2/igt@kms_big_fb@4-tiled-max-hw-stride-64bpp-rotate-0-hflip.html * igt@kms_content_protection@atomic: - shard-dg2: [SKIP][348] ([i915#7118] / [i915#9424]) -> [TIMEOUT][349] ([i915#7173]) [348]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-3/igt@kms_content_protection@atomic.html [349]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-10/igt@kms_content_protection@atomic.html * igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size: - shard-dg1: [SKIP][350] ([i915#4423]) -> [SKIP][351] +1 other test skip [350]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg1-13/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html [351]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-18/igt@kms_cursor_legacy@cursorb-vs-flipb-varying-size.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt: - shard-dg2: [SKIP][352] ([i915#10433] / [i915#3458]) -> [SKIP][353] ([i915#3458]) +2 other tests skip [352]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-4/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html [353]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-indfb-plflip-blt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt: - shard-dg1: [SKIP][354] ([i915#8708]) -> [SKIP][355] ([i915#4423] / [i915#8708]) [354]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg1-13/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt.html [355]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg1-12/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu: - shard-dg2: [SKIP][356] ([i915#3458]) -> [SKIP][357] ([i915#10433] / [i915#3458]) +3 other tests skip [356]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu.html [357]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-4/igt@kms_frontbuffer_tracking@psr-1p-primscrn-cur-indfb-draw-mmap-cpu.html * igt@kms_hdr@brightness-with-hdr: - shard-dg2: [SKIP][358] ([i915#13331]) -> [SKIP][359] ([i915#12713]) [358]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_15873/shard-dg2-10/igt@kms_hdr@brightness-with-hdr.html [359]: https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_142853v1/shard-dg2-3/igt@kms_hdr@brightness-with-hdr.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [i915#10131]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10131 [i915#10307]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10307 [i915#10433]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10433 [i915#10434]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10434 [i915#10656]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10656 [i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072 [i915#10887]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/10887 [i915#1099]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1099 [i915#11078]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11078 [i915#11520]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11520 [i915#11616]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11616 [i915#11627]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11627 [i915#11681]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11681 [i915#11859]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11859 [i915#11920]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11920 [i915#11943]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11943 [i915#11989]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/11989 [i915#12238]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12238 [i915#12247]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12247 [i915#12276]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12276 [i915#12313]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12313 [i915#12339]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12339 [i915#12343]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12343 [i915#12388]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12388 [i915#12392]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12392 [i915#12402]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12402 [i915#12713]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12713 [i915#12739]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12739 [i915#12740]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12740 [i915#12741]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12741 [i915#12755]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12755 [i915#12817]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12817 [i915#12910]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12910 [i915#12917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12917 [i915#12964]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12964 [i915#13033]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13033 [i915#13045]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13045 [i915#13046]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13046 [i915#13049]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13049 [i915#13197]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13197 [i915#13287]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13287 [i915#13314]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13314 [i915#13328]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13328 [i915#13331]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13331 [i915#13368]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13368 [i915#1769]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1769 [i915#1825]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1825 [i915#1839]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1839 [i915#2190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2190 [i915#2346]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2346 [i915#2435]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2435 [i915#2437]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2437 [i915#2527]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2527 [i915#2587]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2587 [i915#2672]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2672 [i915#280]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/280 [i915#2856]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/2856 [i915#3023]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3023 [i915#3116]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3116 [i915#3281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282 [i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291 [i915#3297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3297 [i915#3299]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3299 [i915#3323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3323 [i915#3458]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3458 [i915#3539]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3539 [i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555 [i915#3591]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3591 [i915#3637]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3638 [i915#3708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3708 [i915#3828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3828 [i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840 [i915#3936]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3936 [i915#4077]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4077 [i915#4079]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4079 [i915#4083]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4083 [i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103 [i915#4212]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4212 [i915#4270]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4270 [i915#4281]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4281 [i915#4349]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4349 [i915#4387]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4387 [i915#4423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4423 [i915#4525]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4525 [i915#4537]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4537 [i915#4538]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4538 [i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613 [i915#4771]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4771 [i915#4812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4812 [i915#4852]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4852 [i915#4860]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4860 [i915#4880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4880 [i915#4881]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4881 [i915#4885]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4885 [i915#4958]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4958 [i915#5107]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5107 [i915#5190]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5190 [i915#5286]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5286 [i915#5289]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5289 [i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354 [i915#5439]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5439 [i915#5493]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5493 [i915#5507]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5507 [i915#5882]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5882 [i915#5956]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5956 [i915#5978]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5978 [i915#6095]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6095 [i915#6188]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6188 [i915#6335]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6335 [i915#6344]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6344 [i915#6524]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6524 [i915#658]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/658 [i915#6590]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6590 [i915#6621]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6621 [i915#6880]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6880 [i915#6953]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/6953 [i915#7118]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7118 [i915#7173]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7173 [i915#7213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7213 [i915#7297]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7297 [i915#7697]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7697 [i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707 [i915#7790]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7790 [i915#7828]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7828 [i915#7975]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7975 [i915#8213]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8213 [i915#8228]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8228 [i915#8381]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8381 [i915#8399]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8399 [i915#8411]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8411 [i915#8414]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8414 [i915#8428]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8428 [i915#8516]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8516 [i915#8555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8555 [i915#8588]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8588 [i915#8623]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8623 [i915#8708]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8708 [i915#8709]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8709 [i915#8806]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/8806 [i915#9053]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9053 [i915#9067]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9067 [i915#9100]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9100 [i915#9323]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9323 [i915#9351]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9351 [i915#9412]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9412 [i915#9423]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9423 [i915#9424]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9424 [i915#9519]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9519 [i915#9531]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9531 [i915#9683]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9683 [i915#9685]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9685 [i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732 [i915#9766]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9766 [i915#9812]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9812 [i915#9820]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9820 [i915#9833]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9833 [i915#9878]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9878 [i915#9917]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9917 [i915#9934]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9934 [i915#9979]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9979 Build changes ------------- * Linux: CI_DRM_15873 -> Patchwork_142853v1 CI-20190529: 20190529 CI_DRM_15873: a5b4c40929f3263a92e34e3f6b3c3c0de57e0e58 @ git://anongit.freedesktop.org/gfx-ci/linux IGT_8166: 197cca38ae5c494511843112d43351aeab2314be @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Patchwork_142853v1: a5b4c40929f3263a92e34e3f6b3c3c0de57e0e58 @ 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_142853v1/index.html [-- Attachment #2: Type: text/html, Size: 116622 bytes --] ^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2024-12-20 19:50 UTC | newest] Thread overview: 21+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-12-19 21:48 [PATCH 0/3] drm/i915/display: Reduce global state funcs boilerplate Gustavo Sousa 2024-12-19 21:48 ` [PATCH 1/3] drm/i915/display: Do not assume zero offset when duplicating global state Gustavo Sousa 2024-12-19 22:43 ` Cavitt, Jonathan 2024-12-20 9:11 ` Ville Syrjälä 2024-12-20 13:37 ` Gustavo Sousa 2024-12-19 21:48 ` [PATCH 2/3] drm/i915/display: Add infra to reduce global state funcs boilerplate Gustavo Sousa 2024-12-19 22:44 ` Cavitt, Jonathan 2024-12-20 13:43 ` Gustavo Sousa 2024-12-20 8:50 ` Jani Nikula 2024-12-20 13:54 ` Gustavo Sousa 2024-12-20 8:51 ` Jani Nikula 2024-12-20 13:56 ` Gustavo Sousa 2024-12-20 9:23 ` Ville Syrjälä 2024-12-20 14:02 ` Gustavo Sousa 2024-12-19 21:48 ` [PATCH 3/3] drm/i915/display: Use INTEL_GLOBAL_STATE_DEFAULTS Gustavo Sousa 2024-12-19 22:45 ` Cavitt, Jonathan 2024-12-20 14:08 ` Gustavo Sousa 2024-12-19 22:23 ` ✗ Fi.CI.CHECKPATCH: warning for drm/i915/display: Reduce global state funcs boilerplate Patchwork 2024-12-19 22:23 ` ✗ Fi.CI.SPARSE: " Patchwork 2024-12-19 23:00 ` ✓ i915.CI.BAT: success " Patchwork 2024-12-20 19:50 ` ✓ i915.CI.Full: " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox