Re: [Intel-gfx] [PATCH] drm/ttm: replace busy placement with flags v2

2023-11-09 Thread kernel test robot
Hi Somalapuram,

kernel test robot noticed the following build errors:

[auto build test ERROR on drm-tip/drm-tip]

url:
https://github.com/intel-lab-lkp/linux/commits/Somalapuram-Amaranath/drm-ttm-replace-busy-placement-with-flags-v2/20231109-104055
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
patch link:
https://lore.kernel.org/r/20231109023843.32326-1-Amaranath.Somalapuram%40amd.com
patch subject: [Intel-gfx] [PATCH] drm/ttm: replace busy placement with flags v2
config: arc-randconfig-001-20231109 
(https://download.01.org/0day-ci/archive/20231109/202311091529.kil0h6z5-...@intel.com/config)
compiler: arc-elf-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20231109/202311091529.kil0h6z5-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot 
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202311091529.kil0h6z5-...@intel.com/

All errors (new ones prefixed by >>):

   drivers/gpu/drm/loongson/lsdc_ttm.c: In function 'lsdc_bo_set_placement':
>> drivers/gpu/drm/loongson/lsdc_ttm.c:57:24: error: 'struct ttm_placement' has 
>> no member named 'busy_placement'; did you mean 'num_placement'?
  57 | lbo->placement.busy_placement = lbo->placements;
 |^~
 |num_placement
>> drivers/gpu/drm/loongson/lsdc_ttm.c:80:24: error: 'struct ttm_placement' has 
>> no member named 'num_busy_placement'; did you mean 'num_placement'?
  80 | lbo->placement.num_busy_placement = c;
 |^~
 |num_placement


vim +57 drivers/gpu/drm/loongson/lsdc_ttm.c

f39db26c54281d Sui Jingfeng 2023-06-15  46  
f39db26c54281d Sui Jingfeng 2023-06-15  47  static void 
lsdc_bo_set_placement(struct lsdc_bo *lbo, u32 domain)
f39db26c54281d Sui Jingfeng 2023-06-15  48  {
f39db26c54281d Sui Jingfeng 2023-06-15  49  u32 c = 0;
f39db26c54281d Sui Jingfeng 2023-06-15  50  u32 pflags = 0;
f39db26c54281d Sui Jingfeng 2023-06-15  51  u32 i;
f39db26c54281d Sui Jingfeng 2023-06-15  52  
f39db26c54281d Sui Jingfeng 2023-06-15  53  if (lbo->tbo.base.size <= 
PAGE_SIZE)
f39db26c54281d Sui Jingfeng 2023-06-15  54  pflags |= 
TTM_PL_FLAG_TOPDOWN;
f39db26c54281d Sui Jingfeng 2023-06-15  55  
f39db26c54281d Sui Jingfeng 2023-06-15  56  lbo->placement.placement = 
lbo->placements;
f39db26c54281d Sui Jingfeng 2023-06-15 @57  lbo->placement.busy_placement = 
lbo->placements;
f39db26c54281d Sui Jingfeng 2023-06-15  58  
f39db26c54281d Sui Jingfeng 2023-06-15  59  if (domain & 
LSDC_GEM_DOMAIN_VRAM) {
f39db26c54281d Sui Jingfeng 2023-06-15  60  
lbo->placements[c].mem_type = TTM_PL_VRAM;
f39db26c54281d Sui Jingfeng 2023-06-15  61  
lbo->placements[c++].flags = pflags;
f39db26c54281d Sui Jingfeng 2023-06-15  62  }
f39db26c54281d Sui Jingfeng 2023-06-15  63  
f39db26c54281d Sui Jingfeng 2023-06-15  64  if (domain & 
LSDC_GEM_DOMAIN_GTT) {
f39db26c54281d Sui Jingfeng 2023-06-15  65  
lbo->placements[c].mem_type = TTM_PL_TT;
f39db26c54281d Sui Jingfeng 2023-06-15  66  
lbo->placements[c++].flags = pflags;
f39db26c54281d Sui Jingfeng 2023-06-15  67  }
f39db26c54281d Sui Jingfeng 2023-06-15  68  
f39db26c54281d Sui Jingfeng 2023-06-15  69  if (domain & 
LSDC_GEM_DOMAIN_SYSTEM) {
f39db26c54281d Sui Jingfeng 2023-06-15  70  
lbo->placements[c].mem_type = TTM_PL_SYSTEM;
f39db26c54281d Sui Jingfeng 2023-06-15  71  
lbo->placements[c++].flags = 0;
f39db26c54281d Sui Jingfeng 2023-06-15  72  }
f39db26c54281d Sui Jingfeng 2023-06-15  73  
f39db26c54281d Sui Jingfeng 2023-06-15  74  if (!c) {
f39db26c54281d Sui Jingfeng 2023-06-15  75  
lbo->placements[c].mem_type = TTM_PL_SYSTEM;
f39db26c54281d Sui Jingfeng 2023-06-15  76  
lbo->placements[c++].flags = 0;
f39db26c54281d Sui Jingfeng 2023-06-15  77  }
f39db26c54281d Sui Jingfeng 2023-06-15  78  
f39db26c54281d Sui Jingfeng 2023-06-15  79  lbo->placement.num_placement = 
c;
f39db26c54281d Sui Jingfeng 2023-06-15 @80  
lbo->placement.num_busy_placement = c;
f39db26c54281d Sui Jingfeng 2023-06-15  81  
f39db26c54281d Sui Jingfeng 2023-06-15  82  for (i = 0; i < c; ++i) {
f39db26c54281d Sui Jingfeng 2023-06-15  83  lbo->placements[i].fpfn 
= 0;
f39db26c54281d Sui Jingfeng 2023-06-15  84  lbo->placements[i].lpfn 
= 0;
f39db26c54281d Sui Jingfeng 2023-06-15  85  }
f39db26c54281d Sui Jingfeng 2023-06-15  86  }
f39db26c54281d Sui Jingfeng 2023-06-15  87  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


Re: [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/vma: Fix potential UAF on multi-tile platforms (rev2)

2023-11-09 Thread Janusz Krzysztofik
On Wednesday, 8 November 2023 22:27:35 CET Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915/vma: Fix potential UAF on multi-tile platforms (rev2)
> URL   : https://patchwork.freedesktop.org/series/126012/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_13852 -> Patchwork_126012v2
> 
> 
> Summary
> ---
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_126012v2 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_126012v2, please notify your bug team 
> (lgci.bug.fil...@intel.com) to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/index.html
> 
> Participating hosts (34 -> 33)
> --
> 
>   Additional (1): bat-mtlp-8 
>   Missing(2): fi-hsw-4770 bat-dg2-9 
> 
> Possible new issues
> ---
> 
>   Here are the unknown changes that may have been introduced in 
> Patchwork_126012v2:
> 
> ### IGT changes ###
> 
>  Possible regressions 
> 
>   * igt@i915_suspend@basic-s2idle-without-i915:
> - bat-adlp-11:NOTRUN -> [FAIL][1] +1 other test fail
>[1]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-11/igt@i915_susp...@basic-s2idle-without-i915.html

Stderr looks pretty much like here:
https://gitlab.freedesktop.org/drm/intel/issues/9092

> 
>   * igt@i915_suspend@basic-s3-without-i915:
> - bat-rplp-1: NOTRUN -> [INCOMPLETE][2]
>[2]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-rplp-1/igt@i915_susp...@basic-s3-without-i915.html

Kernel warning looks the same as here: 
https://gitlab.freedesktop.org/drm/intel/issues/9570

@BUG Filing, please update filters and re-report.

Thanks,
Janusz


> 
>   
> Known issues
> 
> 
>   Here are the changes found in Patchwork_126012v2 that come from known 
> issues:
> 
> ### CI changes ###
> 
>  Possible fixes 
> 
>   * boot:
> - bat-adlp-11:[FAIL][3] ([i915#8293]) -> [PASS][4]
>[3]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13852/bat-adlp-11/boot.html
>[4]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-11/boot.html
> 
>   
> 
> ### IGT changes ###
> 
>  Issues hit 
> 
>   * igt@debugfs_test@basic-hwmon:
> - bat-mtlp-8: NOTRUN -> [SKIP][5] ([i915#9318])
>[5]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-mtlp-8/igt@debugfs_t...@basic-hwmon.html
> - bat-adlp-11:NOTRUN -> [SKIP][6] ([i915#9318])
>[6]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-11/igt@debugfs_t...@basic-hwmon.html
> 
>   * igt@gem_lmem_swapping@basic:
> - bat-adln-1: NOTRUN -> [SKIP][7] ([i915#4613]) +3 other tests 
> skip
>[7]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adln-1/igt@gem_lmem_swapp...@basic.html
> 
>   * igt@gem_lmem_swapping@parallel-random-engines:
> - bat-rplp-1: NOTRUN -> [SKIP][8] ([i915#4613]) +3 other tests 
> skip
>[8]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-rplp-1/igt@gem_lmem_swapp...@parallel-random-engines.html
> 
>   * igt@gem_lmem_swapping@random-engines:
> - bat-adlp-6: NOTRUN -> [SKIP][9] ([i915#4613]) +3 other tests 
> skip
>[9]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-6/igt@gem_lmem_swapp...@random-engines.html
> 
>   * igt@gem_lmem_swapping@verify-random:
> - bat-adlp-11:NOTRUN -> [SKIP][10] ([i915#4613]) +3 other tests 
> skip
>[10]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-11/igt@gem_lmem_swapp...@verify-random.html
> - bat-mtlp-8: NOTRUN -> [SKIP][11] ([i915#4613]) +3 other tests 
> skip
>[11]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-mtlp-8/igt@gem_lmem_swapp...@verify-random.html
> 
>   * igt@gem_mmap@basic:
> - bat-mtlp-8: NOTRUN -> [SKIP][12] ([i915#4083])
>[12]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-mtlp-8/igt@gem_m...@basic.html
> 
>   * igt@gem_mmap_gtt@basic:
> - bat-mtlp-8: NOTRUN -> [SKIP][13] ([i915#4077]) +3 other tests 
> skip
>[13]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-mtlp-8/igt@gem_mmap_...@basic.html
> 
>   * igt@gem_render_tiled_blits@basic:
> - bat-mtlp-8: NOTRUN -> [SKIP][14] ([i915#4079]) +1 other test 
> skip
>[14]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-mtlp-8/igt@gem_render_tiled_bl...@basic.html
> 
>   * igt@gem_tiled_pread_basic:
> - bat-adlp-11:NOTRUN -> [SKIP][15] ([i915#3282])
>[15]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-11/igt@gem

Re: [Intel-gfx] [PATCH] drm/ttm: replace busy placement with flags v2

2023-11-09 Thread kernel test robot
Hi Somalapuram,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-tip/drm-tip]

url:
https://github.com/intel-lab-lkp/linux/commits/Somalapuram-Amaranath/drm-ttm-replace-busy-placement-with-flags-v2/20231109-104055
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
patch link:
https://lore.kernel.org/r/20231109023843.32326-1-Amaranath.Somalapuram%40amd.com
patch subject: [Intel-gfx] [PATCH] drm/ttm: replace busy placement with flags v2
config: i386-buildonly-randconfig-001-20231109 
(https://download.01.org/0day-ci/archive/20231109/202311091846.p6fn32ip-...@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20231109/202311091846.p6fn32ip-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot 
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202311091846.p6fn32ip-...@intel.com/

All warnings (new ones prefixed by >>):

   In function 'i915_ttm_placement_from_obj',
   inlined from 'i915_ttm_get_pages' at 
drivers/gpu/drm/i915/gem/i915_gem_ttm.c:847:2:
>> drivers/gpu/drm/i915/gem/i915_gem_ttm.c:165:18: warning: 'places[0].flags' 
>> is used uninitialized [-Wuninitialized]
 165 | places[0].flags |= TTM_PL_FLAG_IDLE;
 | ~^~
   drivers/gpu/drm/i915/gem/i915_gem_ttm.c: In function 'i915_ttm_get_pages':
   drivers/gpu/drm/i915/gem/i915_gem_ttm.c:837:26: note: 'places' declared here
 837 | struct ttm_place places[I915_TTM_MAX_PLACEMENTS + 1];
 |  ^~


vim +165 drivers/gpu/drm/i915/gem/i915_gem_ttm.c

   155  
   156  static void
   157  i915_ttm_placement_from_obj(const struct drm_i915_gem_object *obj,
   158  struct ttm_place *places,
   159  struct ttm_placement *placement)
   160  {
   161  unsigned int num_allowed = obj->mm.n_placements;
   162  unsigned int flags = obj->flags;
   163  unsigned int i;
   164  
 > 165  places[0].flags |= TTM_PL_FLAG_IDLE;
   166  i915_ttm_place_from_region(num_allowed ? obj->mm.placements[0] :
   167 obj->mm.region, &places[0], 
obj->bo_offset,
   168 obj->base.size, flags);
   169  
   170  /* Cache this on object? */
   171  for (i = 0; i < num_allowed; ++i) {
   172  i915_ttm_place_from_region(obj->mm.placements[i],
   173 &places[i + 1], 
obj->bo_offset,
   174 obj->base.size, flags);
   175  places[i + 1].flags |= TTM_PL_FLAG_BUSY;
   176  }
   177  
   178  placement->num_placement = num_allowed + 1;
   179  placement->placement = places;
   180  }
   181  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


Re: [Intel-gfx] [PATCH] drm: i915: Adapt to -Walloc-size

2023-11-09 Thread Jani Nikula
On Wed, 08 Nov 2023, Jani Nikula  wrote:
> On Tue, 07 Nov 2023, Sam James  wrote:
>> GCC 14 introduces a new -Walloc-size included in -Wextra which errors out
>> like:
>> ```
>> drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c: In function 
>> ‘eb_copy_relocations’:
>> drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c:1681:24: error: allocation of 
>> insufficient size ‘1’ for type ‘struct drm_i915_gem_relocation_entry’ with 
>> size ‘32’ [-Werror=alloc-size]
>>  1681 | relocs = kvmalloc_array(size, 1, GFP_KERNEL);
>>   |^
>>
>> ```
>>
>> So, just swap the number of members and size arguments to match the 
>> prototype, as
>> we're initialising 1 element of size `size`. GCC then sees we're not
>> doing anything wrong.
>>
>> Signed-off-by: Sam James 
>
> The short answer,
>
> Reviewed-by: Jani Nikula 

And pushed to drm-intel-gt-next, thanks for the patch.

BR,
Jani.

>
> but please read on.
>
>> ---
>>  drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c 
>> b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
>> index 683fd8d3151c..45b9d9e34b8b 100644
>> --- a/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
>> +++ b/drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c
>> @@ -1678,7 +1678,7 @@ static int eb_copy_relocations(const struct 
>> i915_execbuffer *eb)
>>  urelocs = u64_to_user_ptr(eb->exec[i].relocs_ptr);
>>  size = nreloc * sizeof(*relocs);
>>  
>> -relocs = kvmalloc_array(size, 1, GFP_KERNEL);
>> +relocs = kvmalloc_array(1, size, GFP_KERNEL);
>
> Based on the patch context, we should really be calling:
>
>   kvmalloc_array(nreloc, sizeof(*relocs), GFP_KERNEL);
>
> and we'd get mul overflow checks too.
>
> However, the code below also needs size, unless it's refactored to
> operate on multiples of sizeof(*relocs) and it all gets a bit annoying.
>
> Maybe there's a better way, but for the short term the patch at hand is
> no worse than what we currently have, and it'll silence the warning, so
> let's go with this.
>
>
>>  if (!relocs) {
>>  err = -ENOMEM;
>>  goto err;

-- 
Jani Nikula, Intel


[Intel-gfx] [PATCH v2] drm/i915/mtl: C20 state verification

2023-11-09 Thread Mika Kahola
Add state verification for C20 as we have one
for C10.

V2: Use abstractation of HW readout (Gustavo)
Drop MPLLA/B from message for TX and CMN
parameters (Gustavo)

Reviewed-by: Gustavo Sousa  (v1)
Signed-off-by: Mika Kahola 
---
 drivers/gpu/drm/i915/display/intel_cx0_phy.c  | 120 +-
 drivers/gpu/drm/i915/display/intel_cx0_phy.h  |   2 +-
 .../drm/i915/display/intel_modeset_verify.c   |   2 +-
 3 files changed, 88 insertions(+), 36 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_cx0_phy.c 
b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
index b2ad4c6172f6..a8fa76580802 100644
--- a/drivers/gpu/drm/i915/display/intel_cx0_phy.c
+++ b/drivers/gpu/drm/i915/display/intel_cx0_phy.c
@@ -3017,55 +3017,33 @@ intel_mtl_port_pll_type(struct intel_encoder *encoder,
return ICL_PORT_DPLL_DEFAULT;
 }
 
-void intel_c10pll_state_verify(struct intel_atomic_state *state,
-  struct intel_crtc *crtc)
+static void intel_c10pll_state_verify(const struct intel_crtc_state *state,
+ struct intel_crtc *crtc,
+ struct intel_encoder *encoder,
+ struct intel_c10pll_state *mpllb_hw_state)
 {
-   struct drm_i915_private *i915 = to_i915(state->base.dev);
-   const struct intel_crtc_state *new_crtc_state =
-   intel_atomic_get_new_crtc_state(state, crtc);
-   struct intel_c10pll_state mpllb_hw_state = {};
-   const struct intel_c10pll_state *mpllb_sw_state = 
&new_crtc_state->cx0pll_state.c10;
-   struct intel_encoder *encoder;
-   enum phy phy;
+   struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+   const struct intel_c10pll_state *mpllb_sw_state = 
&state->cx0pll_state.c10;
int i;
 
-   if (DISPLAY_VER(i915) < 14)
-   return;
-
-   if (!new_crtc_state->hw.active)
-   return;
-
-   /* intel_get_crtc_new_encoder() only works for modeset/fastset commits 
*/
-   if (!intel_crtc_needs_modeset(new_crtc_state) &&
-   !intel_crtc_needs_fastset(new_crtc_state))
-   return;
-
-   encoder = intel_get_crtc_new_encoder(state, new_crtc_state);
-   phy = intel_port_to_phy(i915, encoder->port);
-
-   if (!intel_is_c10phy(i915, phy))
-   return;
-
-   intel_c10pll_readout_hw_state(encoder, &mpllb_hw_state);
-
for (i = 0; i < ARRAY_SIZE(mpllb_sw_state->pll); i++) {
u8 expected = mpllb_sw_state->pll[i];
 
-   I915_STATE_WARN(i915, mpllb_hw_state.pll[i] != expected,
+   I915_STATE_WARN(i915, mpllb_hw_state->pll[i] != expected,
"[CRTC:%d:%s] mismatch in C10MPLLB: 
Register[%d] (expected 0x%02x, found 0x%02x)",
crtc->base.base.id, crtc->base.name, i,
-   expected, mpllb_hw_state.pll[i]);
+   expected, mpllb_hw_state->pll[i]);
}
 
-   I915_STATE_WARN(i915, mpllb_hw_state.tx != mpllb_sw_state->tx,
+   I915_STATE_WARN(i915, mpllb_hw_state->tx != mpllb_sw_state->tx,
"[CRTC:%d:%s] mismatch in C10MPLLB: Register TX0 
(expected 0x%02x, found 0x%02x)",
crtc->base.base.id, crtc->base.name,
-   mpllb_sw_state->tx, mpllb_hw_state.tx);
+   mpllb_sw_state->tx, mpllb_hw_state->tx);
 
-   I915_STATE_WARN(i915, mpllb_hw_state.cmn != mpllb_sw_state->cmn,
+   I915_STATE_WARN(i915, mpllb_hw_state->cmn != mpllb_sw_state->cmn,
"[CRTC:%d:%s] mismatch in C10MPLLB: Register CMN0 
(expected 0x%02x, found 0x%02x)",
crtc->base.base.id, crtc->base.name,
-   mpllb_sw_state->cmn, mpllb_hw_state.cmn);
+   mpllb_sw_state->cmn, mpllb_hw_state->cmn);
 }
 
 void intel_cx0pll_readout_hw_state(struct intel_encoder *encoder,
@@ -3091,3 +3069,77 @@ int intel_cx0pll_calc_port_clock(struct intel_encoder 
*encoder,
 
return intel_c20pll_calc_port_clock(encoder, &pll_state->c20);
 }
+
+static void intel_c20pll_state_verify(const struct intel_crtc_state *state,
+ struct intel_crtc *crtc,
+ struct intel_encoder *encoder,
+ struct intel_c20pll_state *mpll_hw_state)
+{
+   struct drm_i915_private *i915 = to_i915(crtc->base.dev);
+   const struct intel_c20pll_state *mpll_sw_state = 
&state->cx0pll_state.c20;
+   bool use_mplla;
+   int i;
+
+   use_mplla = intel_c20_use_mplla(mpll_hw_state->clock);
+   if (use_mplla) {
+   for (i = 0; i < ARRAY_SIZE(mpll_sw_state->mplla); i++) {
+   I915_STATE_WARN(i915, mpll_hw_state->mplla[i] != 
mpll_sw_state->mplla[i],
+   "[CRTC:%d:%s] mismatch in C20MPLLA: 
Register[%d]

Re: [Intel-gfx] [PATCH] drm/ttm: replace busy placement with flags v2

2023-11-09 Thread kernel test robot
Hi Somalapuram,

kernel test robot noticed the following build warnings:

[auto build test WARNING on drm-tip/drm-tip]

url:
https://github.com/intel-lab-lkp/linux/commits/Somalapuram-Amaranath/drm-ttm-replace-busy-placement-with-flags-v2/20231109-104055
base:   git://anongit.freedesktop.org/drm/drm-tip drm-tip
patch link:
https://lore.kernel.org/r/20231109023843.32326-1-Amaranath.Somalapuram%40amd.com
patch subject: [Intel-gfx] [PATCH] drm/ttm: replace busy placement with flags v2
config: i386-randconfig-012-20231109 
(https://download.01.org/0day-ci/archive/20231109/202311091943.7pztiigs-...@intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build): 
(https://download.01.org/0day-ci/archive/20231109/202311091943.7pztiigs-...@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot 
| Closes: 
https://lore.kernel.org/oe-kbuild-all/202311091943.7pztiigs-...@intel.com/

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/i915/gem/i915_gem_ttm.c: In function 'i915_ttm_get_pages':
>> drivers/gpu/drm/i915/gem/i915_gem_ttm.c:165:18: warning: 'places.flags' is 
>> used uninitialized in this function [-Wuninitialized]
 165 |  places[0].flags |= TTM_PL_FLAG_IDLE;
 |  ^~


vim +165 drivers/gpu/drm/i915/gem/i915_gem_ttm.c

   155  
   156  static void
   157  i915_ttm_placement_from_obj(const struct drm_i915_gem_object *obj,
   158  struct ttm_place *places,
   159  struct ttm_placement *placement)
   160  {
   161  unsigned int num_allowed = obj->mm.n_placements;
   162  unsigned int flags = obj->flags;
   163  unsigned int i;
   164  
 > 165  places[0].flags |= TTM_PL_FLAG_IDLE;
   166  i915_ttm_place_from_region(num_allowed ? obj->mm.placements[0] :
   167 obj->mm.region, &places[0], 
obj->bo_offset,
   168 obj->base.size, flags);
   169  
   170  /* Cache this on object? */
   171  for (i = 0; i < num_allowed; ++i) {
   172  i915_ttm_place_from_region(obj->mm.placements[i],
   173 &places[i + 1], 
obj->bo_offset,
   174 obj->base.size, flags);
   175  places[i + 1].flags |= TTM_PL_FLAG_BUSY;
   176  }
   177  
   178  placement->num_placement = num_allowed + 1;
   179  placement->placement = places;
   180  }
   181  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


Re: [Intel-gfx] [PATCH v9 1/6] drm/panelreplay: dpcd register definition for panelreplay

2023-11-09 Thread Jani Nikula
On Wed, 08 Nov 2023, Animesh Manna  wrote:
> Add DPCD register definition for discovering, enabling and
> checking status of panel replay of the sink.
>
> Cc: Jouni Högander 
> Cc: Arun R Murthy 
> Cc: Jani Nikula 
> Reviewed-by: Arun R Murthy 
> Signed-off-by: Animesh Manna 

You got the ack, please keep track of it.

https://lore.kernel.org/r/elcebygxs432bcj7oez7ndlfvb3lru7m7yznyqp2ei4ocjkvxp@23lf2rh45fmt

> ---
>  include/drm/display/drm_dp.h | 23 +++
>  1 file changed, 23 insertions(+)
>
> diff --git a/include/drm/display/drm_dp.h b/include/drm/display/drm_dp.h
> index e69cece404b3..fc42b622ef32 100644
> --- a/include/drm/display/drm_dp.h
> +++ b/include/drm/display/drm_dp.h
> @@ -543,6 +543,10 @@
>  /* DFP Capability Extension */
>  #define DP_DFP_CAPABILITY_EXTENSION_SUPPORT  0x0a3   /* 2.0 */
>  
> +#define DP_PANEL_REPLAY_CAP 0x0b0  /* DP 2.0 */
> +# define DP_PANEL_REPLAY_SUPPORT(1 << 0)
> +# define DP_PANEL_REPLAY_SU_SUPPORT (1 << 1)
> +
>  /* Link Configuration */
>  #define  DP_LINK_BW_SET  0x100
>  # define DP_LINK_RATE_TABLE  0x00/* eDP 1.4 */
> @@ -716,6 +720,13 @@
>  #define DP_BRANCH_DEVICE_CTRL0x1a1
>  # define DP_BRANCH_DEVICE_IRQ_HPD(1 << 0)
>  
> +#define PANEL_REPLAY_CONFIG 0x1b0  /* DP 2.0 */
> +# define DP_PANEL_REPLAY_ENABLE (1 << 0)
> +# define DP_PANEL_REPLAY_UNRECOVERABLE_ERROR_EN (1 << 3)
> +# define DP_PANEL_REPLAY_RFB_STORAGE_ERROR_EN   (1 << 4)
> +# define DP_PANEL_REPLAY_ACTIVE_FRAME_CRC_ERROR_EN  (1 << 5)
> +# define DP_PANEL_REPLAY_SU_ENABLE  (1 << 6)
> +
>  #define DP_PAYLOAD_ALLOCATE_SET  0x1c0
>  #define DP_PAYLOAD_ALLOCATE_START_TIME_SLOT 0x1c1
>  #define DP_PAYLOAD_ALLOCATE_TIME_SLOT_COUNT 0x1c2
> @@ -1105,6 +1116,18 @@
>  #define DP_LANE_ALIGN_STATUS_UPDATED_ESI   0x200e /* status same as 
> 0x204 */
>  #define DP_SINK_STATUS_ESI 0x200f /* status same as 
> 0x205 */
>  
> +#define DP_PANEL_REPLAY_ERROR_STATUS   0x2020  /* DP 2.1*/
> +# define DP_PANEL_REPLAY_LINK_CRC_ERROR(1 << 0)
> +# define DP_PANEL_REPLAY_RFB_STORAGE_ERROR (1 << 1)
> +# define DP_PANEL_REPLAY_VSC_SDP_UNCORRECTABLE_ERROR   (1 << 2)
> +
> +#define DP_SINK_DEVICE_PR_AND_FRAME_LOCK_STATUS0x2022  /* DP 2.1 */
> +# define DP_SINK_DEVICE_PANEL_REPLAY_STATUS_MASK   (7 << 0)
> +# define DP_SINK_FRAME_LOCKED_SHIFT3
> +# define DP_SINK_FRAME_LOCKED_MASK (3 << 3)
> +# define DP_SINK_FRAME_LOCKED_STATUS_VALID_SHIFT   5
> +# define DP_SINK_FRAME_LOCKED_STATUS_VALID_MASK(1 << 5)
> +
>  /* Extended Receiver Capability: See DP_DPCD_REV for definitions */
>  #define DP_DP13_DPCD_REV0x2200

-- 
Jani Nikula, Intel


Re: [Intel-gfx] [PATCH v4] drm/i915/display: Support PSR entry VSC packet to be transmitted one frame earlier

2023-11-09 Thread Kahola, Mika
> -Original Message-
> From: Jani Nikula 
> Sent: Wednesday, November 8, 2023 7:42 PM
> To: Ville Syrjälä ; Kahola, Mika 
> 
> Cc: intel-gfx@lists.freedesktop.org
> Subject: Re: [Intel-gfx] [PATCH v4] drm/i915/display: Support PSR entry VSC 
> packet to be transmitted one frame earlier
> 
> On Wed, 08 Nov 2023, Ville Syrjälä  wrote:
> > On Wed, Nov 08, 2023 at 06:59:18PM +0200, Ville Syrjälä wrote:
> >> On Mon, Nov 06, 2023 at 01:42:28PM +0200, Mika Kahola wrote:
> >> > Display driver shall read DPCD 00071h[3:1] during configuration to
> >> > get PSR setup time. This register provides the setup time
> >> > requirement on the VSC SDP entry packet. If setup time cannot be
> >> > met with the current timings (e.g., PSR setup time + other blanking
> >> > requirements > blanking time), driver should enable sending VSC SDP
> >> > one frame earlier before sending the capture frame.
> >> >
> >> > BSpec: 69895 (PSR Entry Setup Frames 17:16)
> >> >
> >> > v2: Write frames before su entry to correct register (Ville, Jouni)
> >> > Move frames before su entry calculation to it's
> >> > own function (Ville, Jouni)
> >> > Rename PSR Entry Setup Frames register to indicate
> >> > Lunarlake specificity (Jouni)
> >> > v3: Modify setup entry frames calculation function to
> >> > return the actual frames (Ville)
> >> > Match comment with actual implementation (Jouni)
> >> > v4: Drop "set" from function naming (Jouni, Ville)
> >> > Use i915 instead of dev_priv (Jouni)
> >> >
> >> > Signed-off-by: Mika Kahola 
> >> > ---
> >> >  .../drm/i915/display/intel_display_types.h|  1 +
> >> >  drivers/gpu/drm/i915/display/intel_psr.c  | 82 +++
> >> >  drivers/gpu/drm/i915/display/intel_psr_regs.h |  2 +
> >> >  3 files changed, 71 insertions(+), 14 deletions(-)
> >> >
> >> > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> >> > b/drivers/gpu/drm/i915/display/intel_display_types.h
> >> > index 047fe3f8905a..92f06d67fd1e 100644
> >> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> >> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> >> > @@ -1708,6 +1708,7 @@ struct intel_psr {
> >> >  u32 dc3co_exitline;
> >> >  u32 dc3co_exit_delay;
> >> >  struct delayed_work dc3co_work;
> >> > +u8 entry_setup_frames;
> >> >  };
> >> >
> >> >  struct intel_dp {
> >> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> >> > b/drivers/gpu/drm/i915/display/intel_psr.c
> >> > index 920f77336163..fc242916349b 100644
> >> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> >> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> >> > @@ -593,6 +593,9 @@ static void intel_psr_enable_sink(struct intel_dp 
> >> > *intel_dp)
> >> >  if (intel_dp->psr.req_psr2_sdp_prior_scanline)
> >> >  dpcd_val |= DP_PSR_SU_REGION_SCANLINE_CAPTURE;
> >> >
> >> > +if (intel_dp->psr.entry_setup_frames > 0)
> >> > +dpcd_val |= DP_PSR_FRAME_CAPTURE;
> >> > +
> >> >  drm_dp_dpcd_writeb(&intel_dp->aux, DP_PSR_EN_CFG, dpcd_val);
> >> >
> >> >  drm_dp_dpcd_writeb(&intel_dp->aux, DP_SET_POWER,
> >> > DP_SET_POWER_D0); @@ -691,6 +694,9 @@ static void 
> >> > hsw_activate_psr1(struct intel_dp *intel_dp)
> >> >  if (DISPLAY_VER(dev_priv) >= 8)
> >> >  val |= EDP_PSR_CRC_ENABLE;
> >> >
> >> > +if (DISPLAY_VER(dev_priv) >= 20)
> >> > +val |=
> >> > +LNL_EDP_PSR_ENTRY_SETUP_FRAMES(intel_dp->psr.entry_setup_frames);
> >> > +
> >> >  intel_de_rmw(dev_priv, psr_ctl_reg(dev_priv, cpu_transcoder),
> >> >   ~EDP_PSR_RESTORE_PSR_ACTIVE_CTX_MASK, val);  } @@ 
> >> > -728,11
> >> > +734,27 @@ static int psr2_block_count(struct intel_dp *intel_dp)
> >> >  return psr2_block_count_lines(intel_dp) / 4;  }
> >> >
> >> > +static u8 frames_before_su_entry(struct intel_dp *intel_dp)
> >>   ^^
> >>
> >> That vs -ETIME broke my tgl.
> >>
> >> > +static u8 intel_psr_entry_setup_frames(struct intel_dp *intel_dp,
> > ^^
> > No, actually that ...
> 
> *sigh*
> 
> I eyeballed the patch and the u8 and thought about giving my standard issue 
> "please use ints unless you have specific reasons to
> use something else" comment. But didn't.

So it's time to switch to use ints. Thought entry_setup_frames would fit to u8 
but I guess wasn't the case after all.

Thanks for spotting this!

-Mika- 
> 
> It's a "code smell". It's suspicious even if it isn't broken.
> 
> BR,
> Jani.
> 
> 
> >
> >> > +   const struct 
> >> > drm_display_mode *adjusted_mode) {
> >> > +struct drm_i915_private *i915 = dp_to_i915(intel_dp);
> >> > +int psr_setup_time = drm_dp_psr_setup_time(intel_dp->psr_dpcd);
> >> > +u8 entry_setup_frames = 0;
> > ^^
> > ... and that.
> 
> --
> Jani Nikula, Intel


Re: [Intel-gfx] [PATCH v2] drm/i915/vma: Fix potential UAF on multi-tile platforms

2023-11-09 Thread Andi Shyti
Hi Janusz,

On Wed, Nov 08, 2023 at 05:29:06PM +0100, Janusz Krzysztofik wrote:
> Object debugging tools were sporadically reporting illegal attempts to
> free a still active i915 VMA object from when parking a GPU tile believed
> to be idle.
> 
> [161.359441] ODEBUG: free active (active state 0) object: 88811643b958 
> object type: i915_active hint: __i915_vma_active+0x0/0x50 [i915]
> [161.360082] WARNING: CPU: 5 PID: 276 at lib/debugobjects.c:514 
> debug_print_object+0x80/0xb0
> ...
> [161.360304] CPU: 5 PID: 276 Comm: kworker/5:2 Not tainted 
> 6.5.0-rc1-CI_DRM_13375-g003f860e5577+ #1
> [161.360314] Hardware name: Intel Corporation Rocket Lake Client 
> Platform/RocketLake S UDIMM 6L RVP, BIOS RKLSFWI1.R00.3173.A03.2204210138 
> 04/21/2022
> [161.360322] Workqueue: i915-unordered __intel_wakeref_put_work [i915]
> [161.360592] RIP: 0010:debug_print_object+0x80/0xb0
> ...
> [161.361347] debug_object_free+0xeb/0x110
> [161.361362] i915_active_fini+0x14/0x130 [i915]
> [161.361866] release_references+0xfe/0x1f0 [i915]
> [161.362543] i915_vma_parked+0x1db/0x380 [i915]
> [161.363129] __gt_park+0x121/0x230 [i915]
> [161.363515] intel_wakeref_put_last+0x1f/0x70 [i915]
> 
> That has been tracked down to be happening when another thread was
> deactivating the VMA inside __active_retire() helper, after the VMA's
> active counter was already decremented to 0, but before deactivation of
> the VMA's object was reported to the object debugging tools.  Root cause
> has been identified as premature release of last wakeref for the GPU tile
> to which the active VMA belonged.
> 
> In case of single-tile platforms, an engine associated with a request that
> uses the VMA is usually keeping the tile's wakeref long enough for that
> VMA to be deactivated on time, before it is going to be freed on last put
> of that wakeref.  However, on multi-tile platforms, a request may use a
> VMA from a tile other than the one that hosts the request's engine, then,
> not protected with the engine's wakeref.
> 
> Get an extra wakeref for the VMA's tile when activating it, and put that
> wakeref only after the VMA is deactivated.  However, exclude GGTT from
> that processing path, otherwise the GPU never goes idle.  Since
> __i915_vma_retire() may be called from atomic contexts, use async variant
> of wakeref put.
> 
> CI reports indicate that single-tile platforms also suffer sporadically
> from the same race, however, unlike in case of multi-tile, exact scenario
> when that happens hasn't been discovered yet.  Then, while I submit this
> patch as fix for multi-tile cases, and in hope it also addresses single-
> tile, I'm not able to blame any particular commit for that issue.
> However, I'm going to ask i915 maintainers to include this fix, if
> accepted, in the current rc cycle (6.7-rc) as important for the first
> supported multi-tile platform -- Meteor Lake.
> 
> v2: Get the wakeref before vm mutex to avoid circular locking dependency,
>   - drop questionable Fixes: tag.
> 
> Closes: https://gitlab.freedesktop.org/drm/intel/issues/8875
> Signed-off-by: Janusz Krzysztofik 

Can it be:

Fixes: 12c255b5dad1 ("drm/i915: Provide an i915_active.acquire callback")
Cc: Chris Wilson 
Cc:  # v5.4+

It's not exactly the one fix we need for as this patch is fixing
something on its own but not explicitely stated (maybe it was a
precautionary measure).

But if the fix has to be applied, it has to date back to that
period, I guess.

Reviewed-by: Andi Shyti 

Andi


Re: [Intel-gfx] [PATCH v2 0/6] drm/edid: split out drm_eld.[ch], add some SAD helpers

2023-11-09 Thread Jani Nikula
On Thu, 02 Nov 2023, Jani Nikula  wrote:
> On Tue, 31 Oct 2023, Jani Nikula  wrote:
>> v2 of https://patchwork.freedesktop.org/series/123384/
>>
>> Jani Nikula (6):
>>   drm/edid: split out drm_eld.h from drm_edid.h
>>   drm/eld: replace uint8_t with u8
>>   drm/edid: include drm_eld.h only where required
>>   drm/edid: use a temp variable for sads to drop one level of
>> dereferences
>>   drm/edid: add helpers to get/set struct cea_sad from/to 3-byte sad
>>   drm/eld: add helpers to modify the SADs of an ELD
>
> Maxime, Maarten, Thomas -
>
> I'm moving a bunch of code around here, and would like to get your acks
> before merging. I'm planning on merging this via drm-misc-next, it's
> just that it only has Intel reviews, and don't want to feel like I'm
> sneaking this in.

Merged with Maxime's IRC ack, which I forgot to add to the commit
messages. *facepalm*. Sorry about that.

Thanks Mitul for reviews!

BR,
Jani.

>
> Thanks,
> Jani.
>
>>
>>  Documentation/gpu/drm-kms-helpers.rst |   6 +
>>  drivers/gpu/drm/Makefile  |   1 +
>>  .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |   1 +
>>  drivers/gpu/drm/drm_edid.c|  43 +++--
>>  drivers/gpu/drm/drm_eld.c |  55 ++
>>  drivers/gpu/drm/drm_internal.h|   6 +
>>  drivers/gpu/drm/i915/display/intel_audio.c|   1 +
>>  .../drm/i915/display/intel_crtc_state_dump.c  |   1 +
>>  drivers/gpu/drm/i915/display/intel_sdvo.c |   1 +
>>  drivers/gpu/drm/nouveau/dispnv50/disp.c   |   1 +
>>  drivers/gpu/drm/radeon/radeon_audio.c |   1 +
>>  drivers/gpu/drm/tegra/hdmi.c  |   1 +
>>  drivers/gpu/drm/tegra/sor.c   |   1 +
>>  include/drm/drm_edid.h| 148 
>>  include/drm/drm_eld.h | 164 ++
>>  sound/core/pcm_drm_eld.c  |   1 +
>>  sound/soc/codecs/hdac_hdmi.c  |   1 +
>>  sound/soc/codecs/hdmi-codec.c |   1 +
>>  sound/x86/intel_hdmi_audio.c  |   1 +
>>  19 files changed, 275 insertions(+), 160 deletions(-)
>>  create mode 100644 drivers/gpu/drm/drm_eld.c
>>  create mode 100644 include/drm/drm_eld.h

-- 
Jani Nikula, Intel


[Intel-gfx] [PATCH 3/3] drm/i915: Use a different vblank worker for atomic unpin

2023-11-09 Thread Maarten Lankhorst
For the atomic codepath we unpin_work in old_plane_state to unpin the
old fb. As this happened after swapping state, this is allowed.

Use the unpin_work only as a barrier, and keep doing the actual
unpinning in the atomic path.

Signed-off-by: Maarten Lankhorst 
---
 .../gpu/drm/i915/display/intel_atomic_plane.c | 18 
 .../gpu/drm/i915/display/intel_atomic_plane.h |  2 ++
 drivers/gpu/drm/i915/display/intel_crtc.c | 28 +++
 3 files changed, 48 insertions(+)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c 
b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 06c2455bdd788..6ddb4f4ec79ac 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -1164,6 +1164,9 @@ intel_cleanup_plane_fb(struct drm_plane *plane,
intel_display_rps_mark_interactive(dev_priv, state, false);
 
/* Should only be called after a successful intel_prepare_plane_fb()! */
+   if (old_plane_state->unpin_work.vblank)
+   drm_vblank_work_flush(&old_plane_state->unpin_work);
+
intel_plane_unpin_fb(old_plane_state);
 }
 
@@ -1176,3 +1179,18 @@ void intel_plane_helper_add(struct intel_plane *plane)
 {
drm_plane_helper_add(&plane->base, &intel_plane_helper_funcs);
 }
+
+/* Completion is enough */
+static void intel_plane_cursor_vblank_work(struct kthread_work *base)
+{ }
+
+void intel_plane_init_cursor_vblank_work(struct intel_plane_state 
*old_plane_state,
+struct intel_plane_state 
*new_plane_state)
+{
+   if (!old_plane_state->ggtt_vma ||
+   old_plane_state->ggtt_vma == new_plane_state->ggtt_vma)
+   return;
+
+   drm_vblank_work_init(&old_plane_state->unpin_work, 
old_plane_state->uapi.crtc,
+intel_plane_cursor_vblank_work);
+}
diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.h 
b/drivers/gpu/drm/i915/display/intel_atomic_plane.h
index 191dad0efc8e6..5a897cf6fa021 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.h
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.h
@@ -66,5 +66,7 @@ int intel_plane_check_src_coordinates(struct 
intel_plane_state *plane_state);
 void intel_plane_set_invisible(struct intel_crtc_state *crtc_state,
   struct intel_plane_state *plane_state);
 void intel_plane_helper_add(struct intel_plane *plane);
+void intel_plane_init_cursor_vblank_work(struct intel_plane_state 
*old_plane_state,
+struct intel_plane_state 
*new_plane_state);
 
 #endif /* __INTEL_ATOMIC_PLANE_H__ */
diff --git a/drivers/gpu/drm/i915/display/intel_crtc.c 
b/drivers/gpu/drm/i915/display/intel_crtc.c
index 1fd068e6e26ca..755c40fd0ac13 100644
--- a/drivers/gpu/drm/i915/display/intel_crtc.c
+++ b/drivers/gpu/drm/i915/display/intel_crtc.c
@@ -559,6 +559,19 @@ void intel_pipe_update_start(struct intel_atomic_state 
*state,
if (intel_crtc_needs_vblank_work(new_crtc_state))
intel_crtc_vblank_work_init(new_crtc_state);
 
+   if (state->base.legacy_cursor_update) {
+   struct intel_plane *plane;
+   struct intel_plane_state *old_plane_state, *new_plane_state;
+   int i;
+
+   for_each_oldnew_intel_plane_in_state(state, plane, 
old_plane_state,
+new_plane_state, i) {
+   if (old_plane_state->uapi.crtc == &crtc->base)
+   
intel_plane_init_cursor_vblank_work(old_plane_state,
+   
new_plane_state);
+   }
+   }
+
intel_crtc_vblank_evade_scanlines(state, crtc, &min, &max, 
&vblank_start);
if (min <= 0 || max <= 0)
goto irq_disable;
@@ -721,6 +734,21 @@ void intel_pipe_update_end(struct intel_atomic_state 
*state,
new_crtc_state->uapi.event = NULL;
}
 
+   if (state->base.legacy_cursor_update) {
+   struct intel_plane *plane;
+   struct intel_plane_state *old_plane_state;
+   int i;
+
+   for_each_old_intel_plane_in_state(state, plane, 
old_plane_state, i) {
+   if (old_plane_state->uapi.crtc == &crtc->base &&
+   old_plane_state->unpin_work.vblank) {
+   
drm_vblank_work_schedule(&old_plane_state->unpin_work,
+
drm_crtc_accurate_vblank_count(&crtc->base) + 1,
+false);
+   }
+   }
+   }
+
/*
 * Send VRR Push to terminate Vblank. If we are already in vblank
 * this has to be done _after_ sampling the frame counter, as
-- 
2.39.2



[Intel-gfx] [PATCH 2/3] drm/i915: Use vblank worker to unpin old legacy cursor fb safely

2023-11-09 Thread Maarten Lankhorst
From: Ville Syrjälä 

The cursor hardware only does sync updates, and thus the hardware
will be scanning out from the old fb until the next start of vblank.
So in order to make the legacy cursor fastpath actually safe we
should not unpin the old fb until we're sure the hardware has
ceased accessing it. The simplest approach is to just use a vblank
work here to do the delayed unpin.

Not 100% sure it's a good idea to put this onto the same high
priority vblank worker as eg. our timing critical gamma updates.
But let's keep it simple for now, and it we later discover that
this is causing problems we can think about adding a lower
priority worker for such things.

This patch is slightly reworked by Maarten

Cc: Maarten Lankhorst 
Signed-off-by: Ville Syrjälä 
Signed-off-by: Maarten Lankhorst 
---
 drivers/gpu/drm/i915/display/intel_cursor.c   | 37 ---
 drivers/gpu/drm/i915/display/intel_display.c  |  3 ++
 .../drm/i915/display/intel_display_types.h|  3 ++
 3 files changed, 38 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_cursor.c 
b/drivers/gpu/drm/i915/display/intel_cursor.c
index b342fad180ca5..1728ecd5cc782 100644
--- a/drivers/gpu/drm/i915/display/intel_cursor.c
+++ b/drivers/gpu/drm/i915/display/intel_cursor.c
@@ -603,6 +603,17 @@ static bool intel_cursor_format_mod_supported(struct 
drm_plane *_plane,
return format == DRM_FORMAT_ARGB;
 }
 
+static void intel_cursor_unpin_work(struct kthread_work *base)
+{
+   struct drm_vblank_work *work = to_drm_vblank_work(base);
+   struct intel_plane_state *plane_state =
+   container_of(work, typeof(*plane_state), unpin_work);
+   struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
+
+   intel_plane_unpin_fb(plane_state);
+   intel_plane_destroy_state(&plane->base, &plane_state->uapi);
+}
+
 static int
 intel_legacy_cursor_update(struct drm_plane *_plane,
   struct drm_crtc *_crtc,
@@ -688,9 +699,14 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
if (ret)
goto out_free;
 
-   ret = intel_plane_pin_fb(new_plane_state);
-   if (ret)
-   goto out_free;
+   if (new_plane_state->uapi.fb != old_plane_state->uapi.fb) {
+   ret = intel_plane_pin_fb(new_plane_state);
+   if (ret)
+   goto out_free;
+   } else {
+   /* magic trick */
+   swap(new_plane_state->ggtt_vma, old_plane_state->ggtt_vma);
+   }
 
intel_frontbuffer_flush(to_intel_frontbuffer(new_plane_state->hw.fb),
ORIGIN_CURSOR_UPDATE);
@@ -730,14 +746,25 @@ intel_legacy_cursor_update(struct drm_plane *_plane,
 
local_irq_enable();
 
-   intel_plane_unpin_fb(old_plane_state);
+   if (old_plane_state->uapi.fb != new_plane_state->uapi.fb) {
+   drm_vblank_work_init(&old_plane_state->unpin_work, &crtc->base,
+intel_cursor_unpin_work);
+
+   drm_vblank_work_schedule(&old_plane_state->unpin_work,
+
drm_crtc_accurate_vblank_count(&crtc->base) + 1,
+false);
+
+   old_plane_state = NULL;
+   } else {
+   intel_plane_unpin_fb(old_plane_state);
+   }
 
 out_free:
if (new_crtc_state)
intel_crtc_destroy_state(&crtc->base, &new_crtc_state->uapi);
if (ret)
intel_plane_destroy_state(&plane->base, &new_plane_state->uapi);
-   else
+   else if (old_plane_state)
intel_plane_destroy_state(&plane->base, &old_plane_state->uapi);
return ret;
 
diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 3effafcbb411a..9b43810f9a934 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -64,6 +64,7 @@
 #include "intel_crt.h"
 #include "intel_crtc.h"
 #include "intel_crtc_state_dump.h"
+#include "intel_cursor.h"
 #include "intel_ddi.h"
 #include "intel_de.h"
 #include "intel_display_driver.h"
@@ -6883,6 +6884,8 @@ static void intel_commit_modeset_disables(struct 
intel_atomic_state *state)
 
intel_pre_plane_update(state, crtc);
intel_crtc_disable_planes(state, crtc);
+
+   drm_vblank_work_flush_all(&crtc->base);
}
 
/* Only disable port sync and MST slaves */
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
b/drivers/gpu/drm/i915/display/intel_display_types.h
index 926bf9c1a3ede..6d27cfb4f08e7 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -709,6 +709,9 @@ struct intel_plane_state {
 
struct intel_fb_view view;
 
+   /* for legacy cursor fb unpin */
+   struct drm_vblank_work unpin_work;
+
/* 

[Intel-gfx] [PATCH 1/3] drm: Add drm_vblank_work_flush_all().

2023-11-09 Thread Maarten Lankhorst
In some cases we want to flush all vblank work, right before vblank_off
for example. Add a simple function to make this possible.

Signed-off-by: Maarten Lankhorst 
---
 drivers/gpu/drm/drm_vblank_work.c | 22 ++
 include/drm/drm_vblank_work.h |  2 ++
 2 files changed, 24 insertions(+)

diff --git a/drivers/gpu/drm/drm_vblank_work.c 
b/drivers/gpu/drm/drm_vblank_work.c
index bd481fdd6b870..27c8646a79c8e 100644
--- a/drivers/gpu/drm/drm_vblank_work.c
+++ b/drivers/gpu/drm/drm_vblank_work.c
@@ -229,6 +229,28 @@ void drm_vblank_work_flush(struct drm_vblank_work *work)
 }
 EXPORT_SYMBOL(drm_vblank_work_flush);
 
+/**
+ * drm_vblank_work_flush_all - flush all currently pending vblank work on crtc.
+ * @crtc: crtc for which vblank work to flush
+ *
+ * Wait until all currently queued vblank work on @crtc
+ * has finished executing once.
+ */
+void drm_vblank_work_flush_all(struct drm_crtc *crtc)
+{
+   struct drm_device *dev = crtc->dev;
+   struct drm_vblank_crtc *vblank = &dev->vblank[drm_crtc_index(crtc)];
+
+   spin_lock_irq(&dev->event_lock);
+   wait_event_lock_irq(vblank->work_wait_queue,
+   waitqueue_active(&vblank->work_wait_queue),
+   dev->event_lock);
+   spin_unlock_irq(&dev->event_lock);
+
+   kthread_flush_worker(vblank->worker);
+}
+EXPORT_SYMBOL(drm_vblank_work_flush_all);
+
 /**
  * drm_vblank_work_init - initialize a vblank work item
  * @work: vblank work item
diff --git a/include/drm/drm_vblank_work.h b/include/drm/drm_vblank_work.h
index eb41d0810c4ff..e04d436b72973 100644
--- a/include/drm/drm_vblank_work.h
+++ b/include/drm/drm_vblank_work.h
@@ -17,6 +17,7 @@ struct drm_crtc;
  * drm_vblank_work_init()
  * drm_vblank_work_cancel_sync()
  * drm_vblank_work_flush()
+ * drm_vblank_work_flush_all()
  */
 struct drm_vblank_work {
/**
@@ -67,5 +68,6 @@ void drm_vblank_work_init(struct drm_vblank_work *work, 
struct drm_crtc *crtc,
  void (*func)(struct kthread_work *work));
 bool drm_vblank_work_cancel_sync(struct drm_vblank_work *work);
 void drm_vblank_work_flush(struct drm_vblank_work *work);
+void drm_vblank_work_flush_all(struct drm_crtc *crtc);
 
 #endif /* !_DRM_VBLANK_WORK_H_ */
-- 
2.39.2



[Intel-gfx] [PATCH 2/2] drm/i915: remove excess functions from plane protection check

2023-11-09 Thread Jani Nikula
Reduce the function calls by reusing ->decrypt.

Signed-off-by: Jani Nikula 
---
 .../gpu/drm/i915/display/skl_universal_plane.c | 18 --
 1 file changed, 4 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c 
b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index 98acf25a5ca3..39499a0ec6c0 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -1854,29 +1854,19 @@ static bool skl_fb_scalable(const struct 
drm_framebuffer *fb)
}
 }
 
-static bool bo_has_valid_encryption(struct drm_i915_gem_object *obj)
-{
-   struct drm_i915_private *i915 = to_i915(obj->base.dev);
-
-   return intel_pxp_key_check(i915->pxp, obj, false) == 0;
-}
-
-static bool pxp_is_borked(struct drm_i915_gem_object *obj)
-{
-   return i915_gem_object_is_protected(obj) && 
!bo_has_valid_encryption(obj);
-}
-
 static void check_protection(struct intel_plane_state *plane_state)
 {
struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
struct drm_i915_private *i915 = to_i915(plane->base.dev);
const struct drm_framebuffer *fb = plane_state->hw.fb;
+   struct drm_i915_gem_object *obj = intel_fb_obj(fb);
 
if (DISPLAY_VER(i915) < 11)
return;
 
-   plane_state->decrypt = bo_has_valid_encryption(intel_fb_obj(fb));
-   plane_state->force_black = pxp_is_borked(intel_fb_obj(fb));
+   plane_state->decrypt = intel_pxp_key_check(i915->pxp, obj, false) == 0;
+   plane_state->force_black = i915_gem_object_is_protected(obj) &&
+   !plane_state->decrypt;
 }
 
 static int skl_plane_check(struct intel_crtc_state *crtc_state,
-- 
2.39.2



[Intel-gfx] [PATCH 1/2] drm/i915: abstract plane protection check

2023-11-09 Thread Jani Nikula
Centralize the conditions in a function.

Signed-off-by: Jani Nikula 
---
 .../gpu/drm/i915/display/skl_universal_plane.c | 18 ++
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c 
b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index 68035675ae3c..98acf25a5ca3 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -1866,6 +1866,19 @@ static bool pxp_is_borked(struct drm_i915_gem_object 
*obj)
return i915_gem_object_is_protected(obj) && 
!bo_has_valid_encryption(obj);
 }
 
+static void check_protection(struct intel_plane_state *plane_state)
+{
+   struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
+   struct drm_i915_private *i915 = to_i915(plane->base.dev);
+   const struct drm_framebuffer *fb = plane_state->hw.fb;
+
+   if (DISPLAY_VER(i915) < 11)
+   return;
+
+   plane_state->decrypt = bo_has_valid_encryption(intel_fb_obj(fb));
+   plane_state->force_black = pxp_is_borked(intel_fb_obj(fb));
+}
+
 static int skl_plane_check(struct intel_crtc_state *crtc_state,
   struct intel_plane_state *plane_state)
 {
@@ -1910,10 +1923,7 @@ static int skl_plane_check(struct intel_crtc_state 
*crtc_state,
if (ret)
return ret;
 
-   if (DISPLAY_VER(dev_priv) >= 11) {
-   plane_state->decrypt = 
bo_has_valid_encryption(intel_fb_obj(fb));
-   plane_state->force_black = pxp_is_borked(intel_fb_obj(fb));
-   }
+   check_protection(plane_state);
 
/* HW only has 8 bits pixel precision, disable plane if invisible */
if (!(plane_state->hw.alpha >> 8))
-- 
2.39.2



[Intel-gfx] Regression on linux-next (next-20231107)

2023-11-09 Thread Borah, Chaitanya Kumar
Hello Krister,
 
Hope you are doing well. I am Chaitanya from the linux graphics team in Intel.
 
This mail is regarding a regression we are seeing in our CI runs[1] for some 
machines (dg2 and adl-p) on linux-next  repository.

Since the version next-20231107 [2], we are seeing the following error
```
<4>[   32.015910] stack segment:  [#1] PREEMPT SMP NOPTI
<4>[   32.021048] CPU: 15 PID: 766 Comm: fusermount Not tainted 
6.6.0-next-20231107-next-20231107-g5cd631a52568+ #1
<4>[   32.031135] Hardware name: Intel Corporation Raptor Lake Client 
Platform/RPL-S ADP-S DDR5 UDIMM CRB, BIOS RPLSFWI1.R00.4221.A00.2305271351 
05/27/2023
<4>[   32.044657] RIP: 0010:fuse_evict_inode+0x61/0x150 [fuse]
`

Details log can be found in [3].

After bisecting the tree, the following patch [4] seems to be the first "bad" 
commit

 
`
513dfacefd712bcbfab64e1a9c9c3e0d51c2dca5 is the first bad commit
commit 513dfacefd712bcbfab64e1a9c9c3e0d51c2dca5
Author: Krister Johansen k...@templeofstupid.com
Date:   Fri Nov 3 10:39:47 2023 -0700

fuse: share lookup state between submount and its parent

Fuse submounts do not perform a lookup for the nodeid that they inherit
from their parent.  Instead, the code decrements the nlookup on the
submount's fuse_inode when it is instantiated, and no forget is
performed when a submount root is evicted.

Trouble arises when the submount's parent is evicted despite the
submount itself being in use.  In this author's case, the submount was
in a container and deatched from the initial mount namespace via a
MNT_DEATCH operation.  When memory pressure triggered the shrinker, the
inode from the parent was evicted, which triggered enough forgets to
render the submount's nodeid invalid.

Since submounts should still function, even if their parent goes away,
solve this problem by sharing refcounted state between the parent and
its submount.  When all of the references on this shared state reach
zero, it's safe to forget the final lookup of the fuse nodeid.

 
`
 
We also verified that if we revert the patch the issue is not seen.

Could you please check why the patch causes this regression and provide a fix 
if necessary?

Thank you.

Regards

Chaitanya

[1] https://intel-gfx-ci.01.org/tree/linux-next/combined-alt.html?
[2] 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20231107
[3] 
http://gfx-ci.igk.intel.com/tree/linux-next/next-20231109/bat-dg2-14/boot0.txt
[4] 
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?h=next-20231107&id=513dfacefd712bcbfab64e1a9c9c3e0d51c2dca5


Re: [Intel-gfx] [PATCH] drm/i915/quirk: Add quirk for devices with incorrect PWM frequency

2023-11-09 Thread Dmitry Torokhov
Hi Allen,

On Tue, Oct 17, 2023 at 06:01:39PM +, Allen Ballway wrote:
> Cyernet T10C has a bad default PWM frequency causing the display to
> strobe when the brightness is less than 100%. Create a new quirk to use
> the value from the BIOS rather than the default register value.
> 
> Signed-off-by: Allen Ballway 
> 
> ---
> 
>  .../gpu/drm/i915/display/intel_backlight.c|  3 ++-
>  drivers/gpu/drm/i915/display/intel_quirks.c   | 26 +++
>  drivers/gpu/drm/i915/display/intel_quirks.h   |  1 +
>  3 files changed, 29 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/intel_backlight.c 
> b/drivers/gpu/drm/i915/display/intel_backlight.c
> index 2e8f17c045222..c4dcfece9deca 100644
> --- a/drivers/gpu/drm/i915/display/intel_backlight.c
> +++ b/drivers/gpu/drm/i915/display/intel_backlight.c
> @@ -1388,7 +1388,8 @@ static int vlv_setup_backlight(struct intel_connector 
> *connector, enum pipe pipe
>   ctl = intel_de_read(i915, VLV_BLC_PWM_CTL(pipe));
>   panel->backlight.pwm_level_max = ctl >> 16;
> 
> - if (!panel->backlight.pwm_level_max)
> + if (!panel->backlight.pwm_level_max ||
> + intel_has_quirk(i915, QUIRK_IGNORE_DEFAULT_PWM_FREQUENCY))
>   panel->backlight.pwm_level_max = 
> get_backlight_max_vbt(connector);

I think it would be better if we did:

if (!intel_has_quirk(i915, QUIRK_IGNORE_DEFAULT_PWM_FREQUENCY)) {
ctl = intel_de_read(i915, VLV_BLC_PWM_CTL(pipe));
panel->backlight.pwm_level_max = ctl >> 16;
} else {
panel->backlight.pwm_level_max = 0;
}

if (!panel->backlight.pwm_level_max)
panel->backlight.pwm_level_max = 
get_backlight_max_vbt(connector);

The "else" branch can potentially be omitted if we know that backlight
member is initialized to 0 (I suspect it is).

> 
>   if (!panel->backlight.pwm_level_max)
> diff --git a/drivers/gpu/drm/i915/display/intel_quirks.c 
> b/drivers/gpu/drm/i915/display/intel_quirks.c
> index a280448df771a..ff6cb499428ce 100644
> --- a/drivers/gpu/drm/i915/display/intel_quirks.c
> +++ b/drivers/gpu/drm/i915/display/intel_quirks.c
> @@ -65,6 +65,12 @@ static void quirk_no_pps_backlight_power_hook(struct 
> drm_i915_private *i915)
>   drm_info(&i915->drm, "Applying no pps backlight power quirk\n");
>  }
> 
> +static void quirk_ignore_default_pwm_frequency(struct drm_i915_private *i915)
> +{
> + intel_set_quirk(i915, QUIRK_IGNORE_DEFAULT_PWM_FREQUENCY);
> + drm_info(&i915->drm, "Applying ignore default pwm frequency quirk");
> +}
> +
>  struct intel_quirk {
>   int device;
>   int subsystem_vendor;
> @@ -90,6 +96,12 @@ static int intel_dmi_no_pps_backlight(const struct 
> dmi_system_id *id)
>   return 1;
>  }
> 
> +static int intel_dmi_ignore_default_pwm_frequency(const struct dmi_system_id 
> *id)
> +{
> + DRM_INFO("Default PWM frequency is incorrect and is overridden on 
> %s\n", id->ident);
> + return 1;
> +}
> +
>  static const struct intel_dmi_quirk intel_dmi_quirks[] = {
>   {
>   .dmi_id_list = &(const struct dmi_system_id[]) {
> @@ -136,6 +148,20 @@ static const struct intel_dmi_quirk intel_dmi_quirks[] = 
> {
>   },
>   .hook = quirk_no_pps_backlight_power_hook,
>   },
> + {
> + .dmi_id_list = &(const struct dmi_system_id[]) {
> + {
> + .callback = 
> intel_dmi_ignore_default_pwm_frequency,
> + .ident = "Cybernet T10C Tablet",
> + .matches = {DMI_EXACT_MATCH(DMI_BOARD_VENDOR,
> + "Cybernet 
> Manufacturing Inc."),
> + DMI_EXACT_MATCH(DMI_BOARD_NAME, 
> "T10C Tablet"),
> + },
> + },
> + { }
> + },
> + .hook = quirk_ignore_default_pwm_frequency,
> + },
>  };
> 
>  static struct intel_quirk intel_quirks[] = {
> diff --git a/drivers/gpu/drm/i915/display/intel_quirks.h 
> b/drivers/gpu/drm/i915/display/intel_quirks.h
> index 10a4d163149fd..70589505e5a0e 100644
> --- a/drivers/gpu/drm/i915/display/intel_quirks.h
> +++ b/drivers/gpu/drm/i915/display/intel_quirks.h
> @@ -17,6 +17,7 @@ enum intel_quirk_id {
>   QUIRK_INVERT_BRIGHTNESS,
>   QUIRK_LVDS_SSC_DISABLE,
>   QUIRK_NO_PPS_BACKLIGHT_POWER_HOOK,
> + QUIRK_IGNORE_DEFAULT_PWM_FREQUENCY

You want a trailing comma here.

>  };
> 
>  void intel_init_quirks(struct drm_i915_private *i915);
> --
> 2.42.0.655.g421f12c284-goog
> 

Thanks.

-- 
Dmitry


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [CI,1/6] drm/i915: Add ability for tracking buffer objects per client (rev5)

2023-11-09 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/6] drm/i915: Add ability for tracking buffer 
objects per client (rev5)
URL   : https://patchwork.freedesktop.org/series/126064/
State : warning

== Summary ==

Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.




[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [CI,1/6] drm/i915: Add ability for tracking buffer objects per client (rev5)

2023-11-09 Thread Patchwork
== Series Details ==

Series: series starting with [CI,1/6] drm/i915: Add ability for tracking buffer 
objects per client (rev5)
URL   : https://patchwork.freedesktop.org/series/126064/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13856 -> Patchwork_126064v5


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126064v5/index.html

Participating hosts (34 -> 32)
--

  Additional (1): fi-kbl-soraka 
  Missing(3): bat-rpls-1 bat-dg2-9 bat-dg2-8 

Known issues


  Here are the changes found in Patchwork_126064v5 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka:  NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#2190])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126064v5/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html

  * igt@gem_lmem_swapping@basic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#4613]) +3 
other tests skip
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126064v5/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html

  * igt@i915_module_load@load:
- fi-kbl-soraka:  NOTRUN -> [DMESG-WARN][3] ([i915#1982])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126064v5/fi-kbl-soraka/igt@i915_module_l...@load.html

  * igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka:  NOTRUN -> [DMESG-FAIL][4] ([i915#1886])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126064v5/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@kms_dsc@dsc-basic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][5] ([fdo#109271]) +9 other tests skip
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126064v5/fi-kbl-soraka/igt@kms_...@dsc-basic.html

  
 Possible fixes 

  * igt@i915_module_load@reload:
- fi-skl-6600u:   [DMESG-WARN][6] ([i915#1982]) -> [PASS][7]
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-skl-6600u/igt@i915_module_l...@reload.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126064v5/fi-skl-6600u/igt@i915_module_l...@reload.html

  * igt@i915_selftest@live@gt_heartbeat:
- fi-apl-guc: [DMESG-FAIL][8] ([i915#5334]) -> [PASS][9]
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126064v5/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-bsw-nick:[FAIL][10] ([i915#9276]) -> [PASS][11]
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-bsw-nick/igt@kms_frontbuffer_track...@basic.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126064v5/fi-bsw-nick/igt@kms_frontbuffer_track...@basic.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1:
- bat-rplp-1: [ABORT][12] ([i915#8668]) -> [PASS][13]
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-edp-1.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126064v5/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-edp-1.html

  * igt@kms_psr@sprite_plane_onoff:
- bat-jsl-3:  [SKIP][14] -> [PASS][15] +3 other tests pass
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126064v5/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#7359]: https://gitlab.freedesktop.org/drm/intel/issues/7359
  [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
  [i915#8981]: https://gitlab.freedesktop.org/drm/intel/issues/8981
  [i915#9276]: https://gitlab.freedesktop.org/drm/intel/issues/9276


Build changes
-

  * Linux: CI_DRM_13856 -> Patchwork_126064v5

  CI-20190529: 20190529
  CI_DRM_13856: b81818fa6745cf79a86da57dc3a379bd80c7ea5f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7580: 847ee1e7d365e2fb08bf4198d3bf5ee8a852649f @ 
https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_126064v5: b81818fa6745cf79a86da57dc3a379bd80c7ea5f @ 
git://anongit.freedesktop.org/gfx-ci/linux


### Linux commits

f3cddb7510e8 drm/i915: Impleme

[Intel-gfx] [PATCH] drm/i915: Read a shadowed mmio register for ggtt flush

2023-11-09 Thread Vinay Belgaumkar
We read RENDER_HEAD as a part of the flush. If GT is in
deeper sleep states, this could lead to read errors since we are
not using a forcewake. Safer to read a shadowed register instead.

Cc: John Harrison 
Cc: Daniele Ceraolo Spurio 
Signed-off-by: Vinay Belgaumkar 
---
 drivers/gpu/drm/i915/gt/intel_gt.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c 
b/drivers/gpu/drm/i915/gt/intel_gt.c
index ed32bf5b1546..ea814ea5f700 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt.c
@@ -451,7 +451,7 @@ void intel_gt_flush_ggtt_writes(struct intel_gt *gt)
 
spin_lock_irqsave(&uncore->lock, flags);
intel_uncore_posting_read_fw(uncore,
-RING_HEAD(RENDER_RING_BASE));
+RING_TAIL(RENDER_RING_BASE));
spin_unlock_irqrestore(&uncore->lock, flags);
}
 }
-- 
2.38.1



Re: [Intel-gfx] [PATCH] drm/i915: Read a shadowed mmio register for ggtt flush

2023-11-09 Thread Ville Syrjälä
On Thu, Nov 09, 2023 at 11:21:48AM -0800, Vinay Belgaumkar wrote:
> We read RENDER_HEAD as a part of the flush. If GT is in
> deeper sleep states, this could lead to read errors since we are
> not using a forcewake. Safer to read a shadowed register instead.

IIRC shadowing is only thing for writes, not reads.

> 
> Cc: John Harrison 
> Cc: Daniele Ceraolo Spurio 
> Signed-off-by: Vinay Belgaumkar 
> ---
>  drivers/gpu/drm/i915/gt/intel_gt.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c 
> b/drivers/gpu/drm/i915/gt/intel_gt.c
> index ed32bf5b1546..ea814ea5f700 100644
> --- a/drivers/gpu/drm/i915/gt/intel_gt.c
> +++ b/drivers/gpu/drm/i915/gt/intel_gt.c
> @@ -451,7 +451,7 @@ void intel_gt_flush_ggtt_writes(struct intel_gt *gt)
>  
>   spin_lock_irqsave(&uncore->lock, flags);
>   intel_uncore_posting_read_fw(uncore,
> -  RING_HEAD(RENDER_RING_BASE));
> +  RING_TAIL(RENDER_RING_BASE));
>   spin_unlock_irqrestore(&uncore->lock, flags);
>   }
>  }
> -- 
> 2.38.1

-- 
Ville Syrjälä
Intel


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/mtl: C20 state verification (rev4)

2023-11-09 Thread Patchwork
== Series Details ==

Series: drm/i915/mtl: C20 state verification (rev4)
URL   : https://patchwork.freedesktop.org/series/125855/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13856 -> Patchwork_125855v4


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_125855v4/index.html

Participating hosts (34 -> 32)
--

  Additional (1): fi-hsw-4770 
  Missing(3): bat-rpls-1 bat-dg2-9 bat-dg2-8 

Known issues


  Here are the changes found in Patchwork_125855v4 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- fi-hsw-4770:NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#5190])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_125855v4/fi-hsw-4770/igt@kms_addfb_ba...@addfb25-y-tiled-small-legacy.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-vga-1:
- fi-hsw-4770:NOTRUN -> [SKIP][2] ([fdo#109271]) +12 other tests 
skip
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_125855v4/fi-hsw-4770/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-n...@pipe-a-vga-1.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-c-vga-1:
- fi-hsw-4770:NOTRUN -> [DMESG-WARN][3] ([i915#8841]) +6 other 
tests dmesg-warn
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_125855v4/fi-hsw-4770/igt@kms_pipe_crc_basic@suspend-read-...@pipe-c-vga-1.html

  * igt@kms_psr@sprite_plane_onoff:
- fi-hsw-4770:NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#1072]) +3 
other tests skip
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_125855v4/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html

  
 Possible fixes 

  * igt@i915_module_load@reload:
- fi-skl-6600u:   [DMESG-WARN][5] ([i915#1982]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-skl-6600u/igt@i915_module_l...@reload.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_125855v4/fi-skl-6600u/igt@i915_module_l...@reload.html

  * igt@i915_selftest@live@gt_heartbeat:
- fi-apl-guc: [DMESG-FAIL][7] ([i915#5334]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_125855v4/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1:
- bat-rplp-1: [ABORT][9] ([i915#8668]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-edp-1.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_125855v4/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-edp-1.html

  * igt@kms_psr@sprite_plane_onoff:
- bat-jsl-3:  [SKIP][11] -> [PASS][12] +3 other tests pass
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_125855v4/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
  [i915#8841]: https://gitlab.freedesktop.org/drm/intel/issues/8841


Build changes
-

  * Linux: CI_DRM_13856 -> Patchwork_125855v4

  CI-20190529: 20190529
  CI_DRM_13856: b81818fa6745cf79a86da57dc3a379bd80c7ea5f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7580: 847ee1e7d365e2fb08bf4198d3bf5ee8a852649f @ 
https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_125855v4: b81818fa6745cf79a86da57dc3a379bd80c7ea5f @ 
git://anongit.freedesktop.org/gfx-ci/linux


### Linux commits

cca2dd2b04d8 drm/i915/mtl: C20 state verification

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_125855v4/index.html


Re: [Intel-gfx] [PULL] drm-misc-next

2023-11-09 Thread David Edelsohn
On Mon, Nov 6, 2023 at 5:55 AM Maxime Ripard  wrote:

> On Mon, Nov 06, 2023 at 11:37:34AM +0100, Thomas Hellström wrote:
> > On 11/6/23 11:20, Maxime Ripard wrote:
> > > On Mon, Nov 06, 2023 at 11:01:51AM +0100, Thomas Hellström wrote:
> > > > Hi, David.
> > > >
> > > > On 11/3/23 17:37, David Edelsohn wrote:
> > > > > Dual-license drm_gpuvm to GPL-2.0 OR MIT.
> > > > > diff --git a/drivers/gpu/drm/drm_gpuvm.c
> b/drivers/gpu/drm/drm_gpuvm.c
> > > > > index 02ce6baacdad..08c088319652 100644 ---
> > > > > a/drivers/gpu/drm/drm_gpuvm.c <
> https://cgit.freedesktop.org/drm/drm-misc/tree/drivers/gpu/drm/drm_gpuvm.c?id=6f2eeef4a0aa9791bbba9d353641a6e067bb86c1
> >
> > > > > +++ b/drivers/gpu/drm/drm_gpuvm.c <
> https://cgit.freedesktop.org/drm/drm-misc/tree/drivers/gpu/drm/drm_gpuvm.c?id=f7749a549b4f4db0c02e6b3d3800ea400dd76c12
> >
> > > > > @@ -1,4 +1,4 @@
> > > > > -// SPDX-License-Identifier: GPL-2.0-only
> > > > > +// SPDX-License-Identifier: GPL-2.0 OR MIT
> > > > > /*
> > > > > * Copyright (c) 2022 Red Hat.
> > > > > *
> > > > > The above SPDX License Identifier change is incorrect and no longer
> > > > > valid. The change misunderstood the syntax of SPDX license
> identifiers
> > > > > and boolean operations. GPL-2.0-only is the name of the license
> and means
> > > > > GPL 2.0 only, as opposed to GPL 2.0 or later. The "only" does not
> > > > > refer to restrictions on other licenses in the identifier and
> should not
> > > > > have been
> > > > > removed. The hyphens designated that the name was a single unit.
> > > > > The SPDX License Identifier boolean operators, such as OR, are a
> > > > > separate layer
> > > > > of syntax.
> > > > > The SPDX License Identifier should be
> > > > > GPL-2.0-only OR MIT
> > > > > Thanks, David
> > > > The author has acked the change / relicensing, which is also
> described in
> > > > the commit title so could you please elaborate why you think it is
> not
> > > > valid?
> > > I think their point isn't so much about the license itself but rather
> > > the SPDX syntax to express it.
> > >
> > > Maxime
> >
> > Hm. There are a pretty large number of these in drm with the same syntax:
> >
> > SPDX-License-Identifier: GPL-2.0 OR MIT
> >
> > So I read it as whe shouldn't have change "Licence A" to "Licence B OR
> > C" but instead should have changed it to "Licence A OR C", hence the
> > *change* (rather than the syntax) would no longer be valid.
> >
> > Perhaps I have had too little coffee this morning.
> >
> > I'd appreciate if David could clarify.
>
> Either way, one of the issue is that GPL-2.0 was deprecated in favour of
> GPL-2.0-only
>
> https://spdx.org/licenses/GPL-2.0.html
>
> So you effectively changed the preferred syntax to the deprecated one in
> the process of adding the new license.
>
> I think that's what David was saying, but there might be something else :)
>

Yes, that is what I was trying to express.

And thanks for posting the patch to correct the name of the identifier.
I'm not requesting that all uses of the deprecated identifier be changed in
the Linux kernel, but it would be good to not regress.

Thanks, David


Re: [Intel-gfx] [PATCH] drm/i915: Read a shadowed mmio register for ggtt flush

2023-11-09 Thread Belgaumkar, Vinay



On 11/9/2023 11:30 AM, Ville Syrjälä wrote:

On Thu, Nov 09, 2023 at 11:21:48AM -0800, Vinay Belgaumkar wrote:

We read RENDER_HEAD as a part of the flush. If GT is in
deeper sleep states, this could lead to read errors since we are
not using a forcewake. Safer to read a shadowed register instead.

IIRC shadowing is only thing for writes, not reads.


Sure, but reading from a shadowed register does return the cached value 
(even though we don't care about the vakue here). When GT is in deeper 
sleep states, it is better to read a shadowed (cached) value instead of 
trying to attempt an mmio register read without a force wake anyways.


Thanks,

Vinay.




Cc: John Harrison 
Cc: Daniele Ceraolo Spurio 
Signed-off-by: Vinay Belgaumkar 
---
  drivers/gpu/drm/i915/gt/intel_gt.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c 
b/drivers/gpu/drm/i915/gt/intel_gt.c
index ed32bf5b1546..ea814ea5f700 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt.c
@@ -451,7 +451,7 @@ void intel_gt_flush_ggtt_writes(struct intel_gt *gt)
  
  		spin_lock_irqsave(&uncore->lock, flags);

intel_uncore_posting_read_fw(uncore,
-RING_HEAD(RENDER_RING_BASE));
+RING_TAIL(RENDER_RING_BASE));
spin_unlock_irqrestore(&uncore->lock, flags);
}
  }
--
2.38.1


Re: [Intel-gfx] [PATCH 2/2] drm/i915/guc: Add a selftest for FAST_REQUEST errors

2023-11-09 Thread Daniele Ceraolo Spurio




On 11/6/2023 3:59 PM, john.c.harri...@intel.com wrote:

From: John Harrison 

There is a mechanism for reporting errors from fire and forget H2G
messages. This is the only way to find out about almost any error in
the GuC backend submission path. So it would be useful to know that it
is working.

Signed-off-by: John Harrison 
---
  drivers/gpu/drm/i915/gt/uc/intel_guc.h|   4 +
  drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c |   9 ++
  drivers/gpu/drm/i915/gt/uc/selftest_guc.c | 122 ++
  3 files changed, 135 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.h 
b/drivers/gpu/drm/i915/gt/uc/intel_guc.h
index 2b6dfe62c8f2a..e22c12ce245ad 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.h
@@ -297,6 +297,10 @@ struct intel_guc {
 * @number_guc_id_stolen: The number of guc_ids that have been stolen
 */
int number_guc_id_stolen;
+   /**
+* @fast_response_selftest: Backdoor to CT handler for fast response 
selftest
+*/
+   u32 fast_response_selftest;
  #endif
  };
  
diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c

index 89e314b3756bb..9d958afb78b7f 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
@@ -1076,6 +1076,15 @@ static int ct_handle_response(struct intel_guc_ct *ct, 
struct ct_incoming_msg *r
found = true;
break;
}
+
+#ifdef CONFIG_DRM_I915_SELFTEST
+   if (!found && ct_to_guc(ct)->fast_response_selftest) {
+   CT_DEBUG(ct, "Assuming unsolicited response due to FAST_REQUEST 
selftest\n");
+   ct_to_guc(ct)->fast_response_selftest++;
+   found = 1;


found = true ? it's the same thing, but it's cleaner to assign boolean 
values to bool variables



+   }
+#endif
+
if (!found) {
CT_ERROR(ct, "Unsolicited response message: len %u, data %#x (fence 
%u, last %u)\n",
 len, hxg[0], fence, ct->requests.last_fence);
diff --git a/drivers/gpu/drm/i915/gt/uc/selftest_guc.c 
b/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
index bfb72143566f6..97fbbb396336c 100644
--- a/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
+++ b/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
@@ -286,11 +286,133 @@ static int intel_guc_steal_guc_ids(void *arg)
return ret;
  }
  
+/*

+ * Send a context schedule H2G message with an invalid context id.
+ * This should generate a GUC_RESULT_INVALID_CONTEXT response.
+ */
+static int bad_h2g(struct intel_guc *guc)
+{
+   u32 action[3], len = 0;


AFAICS This is a 2 DW command, so you can use action[2].


+
+   action[len++] = INTEL_GUC_ACTION_SCHED_CONTEXT;
+   action[len++] = 0x12345678;
+
+   return intel_guc_send_nb(guc, action, len, 0);
+}
+
+/*
+ * Set a spinner running to make sure the system is alive and active,
+ * then send a bad but asynchronous H2G command and wait to see if an
+ * error response is returned. If no response is received or if the
+ * spinner dies then the test will fail.
+ */
+#define FAST_RESPONSE_TIMEOUT_MS   1000
+static int intel_guc_fast_request(void *arg)
+{
+   struct intel_gt *gt = arg;
+   struct intel_context *ce;
+   struct igt_spinner spin;
+   struct i915_request *rq;
+   intel_wakeref_t wakeref;
+   struct intel_engine_cs *engine = intel_selftest_find_any_engine(gt);
+   ktime_t before, now, delta;
+   bool spinning = false;
+   u64 delta_ms;
+   int ret = 0;
+
+   if (!engine)
+   return 0;
+
+   wakeref = intel_runtime_pm_get(gt->uncore->rpm);
+
+   ce = intel_context_create(engine);
+   if (IS_ERR(ce)) {
+   ret = PTR_ERR(ce);
+   gt_err(gt, "Failed to create spinner request: %pe\n", ce);
+   goto err_pm;
+   }
+
+   ret = igt_spinner_init(&spin, engine->gt);
+   if (ret) {
+   gt_err(gt, "Failed to create spinner: %pe\n", ERR_PTR(ret));
+   goto err_pm;
+   }
+   spinning = true;
+
+   rq = igt_spinner_create_request(&spin, ce, MI_ARB_CHECK);
+   intel_context_put(ce);
+   if (IS_ERR(rq)) {
+   ret = PTR_ERR(rq);
+   gt_err(gt, "Failed to create spinner request: %pe\n", rq);
+   goto err_spin;
+   }
+
+   ret = request_add_spin(rq, &spin);
+   if (ret) {
+   gt_err(gt, "Failed to add Spinner request: %pe\n", 
ERR_PTR(ret));
+   goto err_rq;
+   }
+
+   gt->uc.guc.fast_response_selftest = 1;
+
+   ret = bad_h2g(>->uc.guc);
+   if (ret) {
+   gt_err(gt, "Failed to send H2G: %pe\n", ERR_PTR(ret));
+   goto err_rq;
+   }
+
+   before = ktime_get();
+   while (gt->uc.guc.fast_response_selftest == 1) {
+   ret = i915_request_wait(rq, 0, 1);
+   if (ret != -ETIME) {
+

Re: [Intel-gfx] [PATCH 1/2] drm/i915/guc: Fix for potential false positives in GuC hang selftest

2023-11-09 Thread Daniele Ceraolo Spurio




On 11/6/2023 3:59 PM, john.c.harri...@intel.com wrote:

From: John Harrison 

Noticed that the hangcheck selftest is submitting a non-preemptoble
spinner. That means that even if the GuC does not die, the heartbeat
will still kick in and trigger a reset. Which is rather defeating the
purpose of the test - to verify that the heartbeat will kick in if the
GuC itself has died. The test is deliberately killing the GuC, so it
should never hit the case of a non-dead GuC. But it is not impossible
that the kill might fail at some future point due to other driver
re-work.

So, make the spinner pre-emptible. That way the heartbeat can get
through if the GuC is alive and context switching. Thus a reset only
happens if the GuC dies. Thus, if the kill should stop working the
test will now fail rather than claim to pass.

Signed-off-by: John Harrison 


Reviewed-by: Daniele Ceraolo Spurio 

Daniele


---
  drivers/gpu/drm/i915/gt/uc/selftest_guc_hangcheck.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/selftest_guc_hangcheck.c 
b/drivers/gpu/drm/i915/gt/uc/selftest_guc_hangcheck.c
index 34b5d952e2bcb..26fdc392fce6c 100644
--- a/drivers/gpu/drm/i915/gt/uc/selftest_guc_hangcheck.c
+++ b/drivers/gpu/drm/i915/gt/uc/selftest_guc_hangcheck.c
@@ -74,7 +74,7 @@ static int intel_hang_guc(void *arg)
goto err;
}
  
-	rq = igt_spinner_create_request(&spin, ce, MI_NOOP);

+   rq = igt_spinner_create_request(&spin, ce, MI_ARB_CHECK);
intel_context_put(ce);
if (IS_ERR(rq)) {
ret = PTR_ERR(rq);




Re: [Intel-gfx] [PATCH] drm/i915: Read a shadowed mmio register for ggtt flush

2023-11-09 Thread Ville Syrjälä
On Thu, Nov 09, 2023 at 12:01:26PM -0800, Belgaumkar, Vinay wrote:
> 
> On 11/9/2023 11:30 AM, Ville Syrjälä wrote:
> > On Thu, Nov 09, 2023 at 11:21:48AM -0800, Vinay Belgaumkar wrote:
> >> We read RENDER_HEAD as a part of the flush. If GT is in
> >> deeper sleep states, this could lead to read errors since we are
> >> not using a forcewake. Safer to read a shadowed register instead.
> > IIRC shadowing is only thing for writes, not reads.
> 
> Sure, but reading from a shadowed register does return the cached value

Does it? I suppose that would make some sense, but I don't recall that
ever being stated anywhere. At least before the shadow registers
existed reads would just give you zeroes when not awake.

> (even though we don't care about the vakue here). When GT is in deeper 
> sleep states, it is better to read a shadowed (cached) value instead of 
> trying to attempt an mmio register read without a force wake anyways.

So you're saying reads from non-shadowed registers fails somehow
when not awake? How exactly do they fail? And when reading from
a shadowed register that failure never happens?

> 
> Thanks,
> 
> Vinay.
> 
> >
> >> Cc: John Harrison 
> >> Cc: Daniele Ceraolo Spurio 
> >> Signed-off-by: Vinay Belgaumkar 
> >> ---
> >>   drivers/gpu/drm/i915/gt/intel_gt.c | 2 +-
> >>   1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c 
> >> b/drivers/gpu/drm/i915/gt/intel_gt.c
> >> index ed32bf5b1546..ea814ea5f700 100644
> >> --- a/drivers/gpu/drm/i915/gt/intel_gt.c
> >> +++ b/drivers/gpu/drm/i915/gt/intel_gt.c
> >> @@ -451,7 +451,7 @@ void intel_gt_flush_ggtt_writes(struct intel_gt *gt)
> >>   
> >>spin_lock_irqsave(&uncore->lock, flags);
> >>intel_uncore_posting_read_fw(uncore,
> >> -   RING_HEAD(RENDER_RING_BASE));
> >> +   RING_TAIL(RENDER_RING_BASE));
> >>spin_unlock_irqrestore(&uncore->lock, flags);
> >>}
> >>   }
> >> -- 
> >> 2.38.1

-- 
Ville Syrjälä
Intel


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/3] drm: Add drm_vblank_work_flush_all().

2023-11-09 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm: Add drm_vblank_work_flush_all().
URL   : https://patchwork.freedesktop.org/series/126202/
State : warning

== Summary ==

Error: dim checkpatch failed
abec0d586564 drm: Add drm_vblank_work_flush_all().
-:33: WARNING:WAITQUEUE_ACTIVE: waitqueue_active without comment
#33: FILE: drivers/gpu/drm/drm_vblank_work.c:249:
+   waitqueue_active(&vblank->work_wait_queue),

total: 0 errors, 1 warnings, 0 checks, 41 lines checked
cb714c854956 drm/i915: Use vblank worker to unpin old legacy cursor fb safely
30be1a454d5a drm/i915: Use a different vblank worker for atomic unpin
-:96: WARNING:LONG_LINE: line length of 105 exceeds 100 columns
#96: FILE: drivers/gpu/drm/i915/display/intel_crtc.c:746:
+
drm_crtc_accurate_vblank_count(&crtc->base) + 1,

total: 0 errors, 1 warnings, 0 checks, 74 lines checked




[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/3] drm: Add drm_vblank_work_flush_all().

2023-11-09 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm: Add drm_vblank_work_flush_all().
URL   : https://patchwork.freedesktop.org/series/126202/
State : warning

== Summary ==

Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return'
+./arch/x86/include/asm/bitops.h:117:1: warning: unreplaced symbol 'return

[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/3] drm: Add drm_vblank_work_flush_all().

2023-11-09 Thread Patchwork
== Series Details ==

Series: series starting with [1/3] drm: Add drm_vblank_work_flush_all().
URL   : https://patchwork.freedesktop.org/series/126202/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_13856 -> Patchwork_126202v1


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_126202v1 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_126202v1, please notify your bug team 
(lgci.bug.fil...@intel.com) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/index.html

Participating hosts (34 -> 34)
--

  Additional (1): fi-hsw-4770 
  Missing(1): bat-dg2-8 

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_126202v1:

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@ring_submission:
- fi-hsw-4770:NOTRUN -> [INCOMPLETE][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/fi-hsw-4770/igt@i915_selftest@live@ring_submission.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-d-dp-5:
- bat-adlp-11:[PASS][2] -> [FAIL][3]
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-adlp-11/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-n...@pipe-d-dp-5.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/bat-adlp-11/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-n...@pipe-d-dp-5.html

  
Known issues


  Here are the changes found in Patchwork_126202v1 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- fi-hsw-4770:NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#5190])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/fi-hsw-4770/igt@kms_addfb_ba...@addfb25-y-tiled-small-legacy.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-vga-1:
- fi-hsw-4770:NOTRUN -> [SKIP][5] ([fdo#109271]) +12 other tests 
skip
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/fi-hsw-4770/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-n...@pipe-a-vga-1.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-c-dp-5:
- bat-adlp-11:[PASS][6] -> [DMESG-FAIL][7] ([i915#6868])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-adlp-11/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-n...@pipe-c-dp-5.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/bat-adlp-11/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-n...@pipe-c-dp-5.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-b-hdmi-a-1:
- fi-rkl-11600:   [PASS][8] -> [FAIL][9] ([fdo#103375])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-rkl-11600/igt@kms_pipe_crc_basic@suspend-read-...@pipe-b-hdmi-a-1.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/fi-rkl-11600/igt@kms_pipe_crc_basic@suspend-read-...@pipe-b-hdmi-a-1.html

  * igt@kms_psr@sprite_plane_onoff:
- fi-hsw-4770:NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#1072]) +3 
other tests skip
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html

  
 Possible fixes 

  * igt@gem_exec_suspend@basic-s0@lmem0:
- bat-dg2-9:  [INCOMPLETE][11] ([i915#9275]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-dg2-9/igt@gem_exec_suspend@basic...@lmem0.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/bat-dg2-9/igt@gem_exec_suspend@basic...@lmem0.html

  * igt@i915_module_load@reload:
- fi-skl-6600u:   [DMESG-WARN][13] ([i915#1982]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-skl-6600u/igt@i915_module_l...@reload.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/fi-skl-6600u/igt@i915_module_l...@reload.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1:
- bat-rplp-1: [ABORT][15] ([i915#8668]) -> [PASS][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-edp-1.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-edp-1.html

  * igt@kms_psr@sprite_plane_onoff:
- bat-jsl-3:  [SKIP][17] -> [PASS][18] +3 other tests pass
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126202v1/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html

  

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/vma: Fix potential UAF on multi-tile platforms (rev3)

2023-11-09 Thread Patchwork
== Series Details ==

Series: drm/i915/vma: Fix potential UAF on multi-tile platforms (rev3)
URL   : https://patchwork.freedesktop.org/series/126012/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_13856 -> Patchwork_126012v3


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_126012v3 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_126012v3, please notify your bug team 
(lgci.bug.fil...@intel.com) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/index.html

Participating hosts (34 -> 34)
--

  Additional (1): fi-kbl-soraka 
  Missing(1): bat-dg2-8 

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_126012v3:

### IGT changes ###

 Possible regressions 

  * igt@i915_suspend@basic-s2idle-without-i915:
- bat-adlp-11:NOTRUN -> [FAIL][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@i915_susp...@basic-s2idle-without-i915.html

  
Known issues


  Here are the changes found in Patchwork_126012v3 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka:  NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html

  * igt@gem_lmem_swapping@basic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 
other tests skip
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html
- bat-adln-1: NOTRUN -> [SKIP][4] ([i915#4613]) +3 other tests skip
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adln-1/igt@gem_lmem_swapp...@basic.html

  * igt@gem_lmem_swapping@parallel-random-engines:
- bat-rplp-1: NOTRUN -> [SKIP][5] ([i915#4613]) +3 other tests skip
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-rplp-1/igt@gem_lmem_swapp...@parallel-random-engines.html

  * igt@gem_lmem_swapping@random-engines:
- bat-adlp-6: NOTRUN -> [SKIP][6] ([i915#4613]) +3 other tests skip
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-6/igt@gem_lmem_swapp...@random-engines.html

  * igt@gem_lmem_swapping@verify-random:
- bat-adlp-11:NOTRUN -> [SKIP][7] ([i915#4613]) +3 other tests skip
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@gem_lmem_swapp...@verify-random.html

  * igt@i915_pm_rps@basic-api:
- bat-adlp-6: NOTRUN -> [SKIP][8] ([i915#6621])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-6/igt@i915_pm_...@basic-api.html
- bat-rplp-1: NOTRUN -> [SKIP][9] ([i915#6621])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-rplp-1/igt@i915_pm_...@basic-api.html
- bat-adlp-11:NOTRUN -> [SKIP][10] ([i915#6621])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@i915_pm_...@basic-api.html
- bat-adln-1: NOTRUN -> [SKIP][11] ([i915#6621])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adln-1/igt@i915_pm_...@basic-api.html

  * igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka:  NOTRUN -> [DMESG-FAIL][12] ([i915#1886])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@kms_dsc@dsc-basic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][13] ([fdo#109271]) +9 other tests 
skip
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-soraka/igt@kms_...@dsc-basic.html

  * igt@kms_psr@primary_page_flip:
- bat-rplp-1: NOTRUN -> [SKIP][14] ([i915#1072]) +3 other tests skip
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-rplp-1/igt@kms_psr@primary_page_flip.html
- bat-adlp-11:NOTRUN -> [SKIP][15] ([i915#1072]) +3 other tests skip
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@kms_psr@primary_page_flip.html

  * igt@kms_setmode@basic-clone-single-crtc:
- bat-adlp-6: NOTRUN -> [SKIP][16] ([i915#3555])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-6/igt@kms_setm...@basic-clone-single-crtc.html
- bat-rplp-1: NOTRUN -> [SKIP][17] ([i915#3555])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-rplp-1/igt@kms_setm...@basic-clone-single-crtc.html
- bat-adlp-11:NOTRUN -> [SKIP][18] ([i915#3555])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip

[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: abstract plane protection check

2023-11-09 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915: abstract plane protection check
URL   : https://patchwork.freedesktop.org/series/126205/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_13856 -> Patchwork_126205v1


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_126205v1 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_126205v1, please notify your bug team 
(lgci.bug.fil...@intel.com) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v1/index.html

Participating hosts (34 -> 33)
--

  Additional (1): fi-hsw-4770 
  Missing(2): bat-dg2-8 fi-pnv-d510 

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_126205v1:

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@dmabuf:
- fi-hsw-4770:NOTRUN -> [INCOMPLETE][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v1/fi-hsw-4770/igt@i915_selftest@l...@dmabuf.html

  
Known issues


  Here are the changes found in Patchwork_126205v1 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- fi-hsw-4770:NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#5190])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v1/fi-hsw-4770/igt@kms_addfb_ba...@addfb25-y-tiled-small-legacy.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-vga-1:
- fi-hsw-4770:NOTRUN -> [SKIP][3] ([fdo#109271]) +12 other tests 
skip
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v1/fi-hsw-4770/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-n...@pipe-a-vga-1.html

  * igt@kms_psr@sprite_plane_onoff:
- fi-hsw-4770:NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#1072]) +3 
other tests skip
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v1/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html

  
 Possible fixes 

  * igt@gem_exec_suspend@basic-s0@lmem0:
- bat-dg2-9:  [INCOMPLETE][5] ([i915#9275]) -> [PASS][6]
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-dg2-9/igt@gem_exec_suspend@basic...@lmem0.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v1/bat-dg2-9/igt@gem_exec_suspend@basic...@lmem0.html

  * igt@i915_module_load@reload:
- fi-skl-6600u:   [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-skl-6600u/igt@i915_module_l...@reload.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v1/fi-skl-6600u/igt@i915_module_l...@reload.html

  * igt@i915_selftest@live@gt_heartbeat:
- fi-apl-guc: [DMESG-FAIL][9] ([i915#5334]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v1/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1:
- bat-rplp-1: [ABORT][11] ([i915#8668]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-edp-1.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v1/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-edp-1.html

  * igt@kms_psr@sprite_plane_onoff:
- bat-jsl-3:  [SKIP][13] -> [PASS][14] +3 other tests pass
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v1/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
  [i915#9275]: https://gitlab.freedesktop.org/drm/intel/issues/9275


Build changes
-

  * Linux: CI_DRM_13856 -> Patchwork_126205v1

  CI-20190529: 20190529
  CI_DRM_13856: b81818fa6745cf79a86da57dc3a379bd80c7ea5f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7580: 847ee1e7d365e2fb08bf4198d3bf5ee8a852649f @ 
https://gitlab.freedesktop.o

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Read a shadowed mmio register for ggtt flush

2023-11-09 Thread Patchwork
== Series Details ==

Series: drm/i915: Read a shadowed mmio register for ggtt flush
URL   : https://patchwork.freedesktop.org/series/126217/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13856 -> Patchwork_126217v1


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126217v1/index.html

Participating hosts (34 -> 34)
--

  Additional (1): fi-hsw-4770 
  Missing(1): bat-dg2-8 

Known issues


  Here are the changes found in Patchwork_126217v1 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@gem_exec_suspend@basic-s0@smem:
- bat-dg2-9:  [PASS][1] -> [INCOMPLETE][2] ([i915#9275])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-dg2-9/igt@gem_exec_suspend@basic...@smem.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126217v1/bat-dg2-9/igt@gem_exec_suspend@basic...@smem.html

  * igt@i915_selftest@live@hangcheck:
- fi-hsw-4770:NOTRUN -> [INCOMPLETE][3] ([i915#9527])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126217v1/fi-hsw-4770/igt@i915_selftest@l...@hangcheck.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- fi-hsw-4770:NOTRUN -> [SKIP][4] ([fdo#109271] / [i915#5190])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126217v1/fi-hsw-4770/igt@kms_addfb_ba...@addfb25-y-tiled-small-legacy.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-nv12@pipe-a-vga-1:
- fi-hsw-4770:NOTRUN -> [SKIP][5] ([fdo#109271]) +12 other tests 
skip
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126217v1/fi-hsw-4770/igt@kms_pipe_crc_basic@compare-crc-sanitycheck-n...@pipe-a-vga-1.html

  * igt@kms_psr@sprite_plane_onoff:
- fi-hsw-4770:NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#1072]) +3 
other tests skip
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126217v1/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html

  
 Possible fixes 

  * igt@i915_module_load@reload:
- fi-skl-6600u:   [DMESG-WARN][7] ([i915#1982]) -> [PASS][8]
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-skl-6600u/igt@i915_module_l...@reload.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126217v1/fi-skl-6600u/igt@i915_module_l...@reload.html

  * igt@i915_selftest@live@gt_heartbeat:
- fi-apl-guc: [DMESG-FAIL][9] ([i915#5334]) -> [PASS][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126217v1/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-d-edp-1:
- bat-rplp-1: [ABORT][11] ([i915#8668]) -> [PASS][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-edp-1.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126217v1/bat-rplp-1/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-d-edp-1.html

  * igt@kms_psr@sprite_plane_onoff:
- bat-jsl-3:  [SKIP][13] -> [PASS][14] +3 other tests pass
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126217v1/bat-jsl-3/igt@kms_psr@sprite_plane_onoff.html

  
  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#7359]: https://gitlab.freedesktop.org/drm/intel/issues/7359
  [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668
  [i915#8981]: https://gitlab.freedesktop.org/drm/intel/issues/8981
  [i915#9275]: https://gitlab.freedesktop.org/drm/intel/issues/9275
  [i915#9527]: https://gitlab.freedesktop.org/drm/intel/issues/9527


Build changes
-

  * Linux: CI_DRM_13856 -> Patchwork_126217v1

  CI-20190529: 20190529
  CI_DRM_13856: b81818fa6745cf79a86da57dc3a379bd80c7ea5f @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_7580: 847ee1e7d365e2fb08bf4198d3bf5ee8a852649f @ 
https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  Patchwork_126217v1: b81818fa6745cf79a86da57dc3a379bd80c7ea5f @ 
git://anongit.freedesktop.org/gfx-ci/linux


### Linux commits

1412e4ebae9f drm/i915: Read a shadowed mmio register for ggtt flush

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126217v1/index

Re: [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/vma: Fix potential UAF on multi-tile platforms (rev3)

2023-11-09 Thread Janusz Krzysztofik
On Thursday, 9 November 2023 22:44:02 CET Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915/vma: Fix potential UAF on multi-tile platforms (rev3)
> URL   : https://patchwork.freedesktop.org/series/126012/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_13856 -> Patchwork_126012v3
> 
> 
> Summary
> ---
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_126012v3 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_126012v3, please notify your bug team 
> (lgci.bug.fil...@intel.com) to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/index.html
> 
> Participating hosts (34 -> 34)
> --
> 
>   Additional (1): fi-kbl-soraka 
>   Missing(1): bat-dg2-8 
> 
> Possible new issues
> ---
> 
>   Here are the unknown changes that may have been introduced in 
> Patchwork_126012v3:
> 
> ### IGT changes ###
> 
>  Possible regressions 
> 
>   * igt@i915_suspend@basic-s2idle-without-i915:
> - bat-adlp-11:NOTRUN -> [FAIL][1]
>[1]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@i915_susp...@basic-s2idle-without-i915.html

Andi,
Since that issue popped up again after your re-run, I've had a closer look.

The test igt@i915_suspend@basic-s2idle-without-i915 seems to be never executed 
on BAT ADL machines (e.g., adlp-11, adln-1) because of an abort triggered on 
those machines by igt@kms_pm_rpm@basic-pci-d3-state.  The latter can be found 
below among possible fixes -- it succeeded, and that explains why 
igt@i915_suspend@basic-s2idle-without-i915 was executed this time, and also 
for my original submission (rev2).

I suspect there must be an issue with adlp-11 machine that results in failures 
from igt@i915_suspend@basic-s2idle-without-i915.  Unfortunately, that issue is 
not visible for now because that test is never executed on that machine.

@BUG Filing,
I'm no sure how re-reporting works, but once you have filters updated after my 
request submitted earlier today for rev2 of this patch, please also re-report 
results of rev3 (re-run of rev2).

Thanks,
Janusz

> 
>   
> Known issues
> 
> 
>   Here are the changes found in Patchwork_126012v3 that come from known 
> issues:
> 
> ### IGT changes ###
> 
>  Issues hit 
> 
>   * igt@gem_huc_copy@huc-copy:
> - fi-kbl-soraka:  NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190])
>[2]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html
> 
>   * igt@gem_lmem_swapping@basic:
> - fi-kbl-soraka:  NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 
> other tests skip
>[3]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html
> - bat-adln-1: NOTRUN -> [SKIP][4] ([i915#4613]) +3 other tests 
> skip
>[4]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adln-1/igt@gem_lmem_swapp...@basic.html
> 
>   * igt@gem_lmem_swapping@parallel-random-engines:
> - bat-rplp-1: NOTRUN -> [SKIP][5] ([i915#4613]) +3 other tests 
> skip
>[5]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-rplp-1/igt@gem_lmem_swapp...@parallel-random-engines.html
> 
>   * igt@gem_lmem_swapping@random-engines:
> - bat-adlp-6: NOTRUN -> [SKIP][6] ([i915#4613]) +3 other tests 
> skip
>[6]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-6/igt@gem_lmem_swapp...@random-engines.html
> 
>   * igt@gem_lmem_swapping@verify-random:
> - bat-adlp-11:NOTRUN -> [SKIP][7] ([i915#4613]) +3 other tests 
> skip
>[7]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@gem_lmem_swapp...@verify-random.html
> 
>   * igt@i915_pm_rps@basic-api:
> - bat-adlp-6: NOTRUN -> [SKIP][8] ([i915#6621])
>[8]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-6/igt@i915_pm_...@basic-api.html
> - bat-rplp-1: NOTRUN -> [SKIP][9] ([i915#6621])
>[9]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-rplp-1/igt@i915_pm_...@basic-api.html
> - bat-adlp-11:NOTRUN -> [SKIP][10] ([i915#6621])
>[10]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@i915_pm_...@basic-api.html
> - bat-adln-1: NOTRUN -> [SKIP][11] ([i915#6621])
>[11]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adln-1/igt@i915_pm_...@basic-api.html
> 
>   * igt@i915_selftest@live@gt_pm:
> - fi-kbl-soraka:  NOTRUN -> [DMESG-FAIL][12] ([i915#1886])
>[12]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork

[Intel-gfx] [PATCH] drm/i915/gsc: Assign a uabi class number to the GSC CS

2023-11-09 Thread Daniele Ceraolo Spurio
The GSC CS is not exposed to the user, so we skipped assigning a uabi
class number for it. However, the trace logs use the uabi class and
instance to identify the engine, so leaving uabi class unset makes the
GSC CS show up as the RCS in those logs.
Given that the engine is not exposed to the user, we can't add a new
case in the uabi enum, so we insted internally define a kernel
reserved class using the next free number.

Fixes: 194babe26bdc ("drm/i915/mtl: don't expose GSC command streamer to the 
user")
Signed-off-by: Daniele Ceraolo Spurio 
Cc: Tvrtko Ursulin 
Cc: Alan Previn 
Cc: Matt Roper 
---
 drivers/gpu/drm/i915/gt/intel_engine_user.c | 17 -
 drivers/gpu/drm/i915/gt/intel_engine_user.h |  4 
 drivers/gpu/drm/i915/i915_drm_client.h  |  2 +-
 drivers/gpu/drm/i915/i915_drv.h |  2 +-
 4 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_engine_user.c 
b/drivers/gpu/drm/i915/gt/intel_engine_user.c
index 118164ddbb2e..3fd32bedd6e7 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_user.c
+++ b/drivers/gpu/drm/i915/gt/intel_engine_user.c
@@ -47,6 +47,7 @@ static const u8 uabi_classes[] = {
[VIDEO_DECODE_CLASS] = I915_ENGINE_CLASS_VIDEO,
[VIDEO_ENHANCEMENT_CLASS] = I915_ENGINE_CLASS_VIDEO_ENHANCE,
[COMPUTE_CLASS] = I915_ENGINE_CLASS_COMPUTE,
+   [OTHER_CLASS] = I915_KERNEL_RSVD_CLASS,
 };
 
 static int engine_cmp(void *priv, const struct list_head *A,
@@ -138,7 +139,7 @@ const char *intel_engine_class_repr(u8 class)
[COPY_ENGINE_CLASS] = "bcs",
[VIDEO_DECODE_CLASS] = "vcs",
[VIDEO_ENHANCEMENT_CLASS] = "vecs",
-   [OTHER_CLASS] = "other",
+   [OTHER_CLASS] = "gsc",
[COMPUTE_CLASS] = "ccs",
};
 
@@ -216,14 +217,8 @@ void intel_engines_driver_register(struct drm_i915_private 
*i915)
if (intel_gt_has_unrecoverable_error(engine->gt))
continue; /* ignore incomplete engines */
 
-   /*
-* We don't want to expose the GSC engine to the users, but we
-* still rename it so it is easier to identify in the debug logs
-*/
-   if (engine->id == GSC0) {
-   engine_rename(engine, "gsc", 0);
-   continue;
-   }
+   /* The only engine we expect in OTHER_CLASS is GSC0 */
+   GEM_WARN_ON(engine->class == OTHER_CLASS && engine->id != GSC0);
 
GEM_BUG_ON(engine->class >= ARRAY_SIZE(uabi_classes));
engine->uabi_class = uabi_classes[engine->class];
@@ -238,6 +233,10 @@ void intel_engines_driver_register(struct drm_i915_private 
*i915)
  intel_engine_class_repr(engine->class),
  engine->uabi_instance);
 
+   /* We don't want to expose the GSC engine to the users */
+   if (engine->id == GSC0)
+   continue;
+
rb_link_node(&engine->uabi_node, prev, p);
rb_insert_color(&engine->uabi_node, &i915->uabi_engines);
 
diff --git a/drivers/gpu/drm/i915/gt/intel_engine_user.h 
b/drivers/gpu/drm/i915/gt/intel_engine_user.h
index 3dc7e8ab9fbc..dd31805b2a5a 100644
--- a/drivers/gpu/drm/i915/gt/intel_engine_user.h
+++ b/drivers/gpu/drm/i915/gt/intel_engine_user.h
@@ -11,6 +11,10 @@
 struct drm_i915_private;
 struct intel_engine_cs;
 
+#define I915_LAST_UABI_ENGINE_CLASS I915_ENGINE_CLASS_COMPUTE
+#define I915_KERNEL_RSVD_CLASS (I915_LAST_UABI_ENGINE_CLASS + 1)
+#define I915_MAX_UABI_CLASSES (I915_KERNEL_RSVD_CLASS + 1)
+
 struct intel_engine_cs *
 intel_engine_lookup_user(struct drm_i915_private *i915, u8 class, u8 instance);
 
diff --git a/drivers/gpu/drm/i915/i915_drm_client.h 
b/drivers/gpu/drm/i915/i915_drm_client.h
index 67816c912bca..c42cb2511348 100644
--- a/drivers/gpu/drm/i915/i915_drm_client.h
+++ b/drivers/gpu/drm/i915/i915_drm_client.h
@@ -12,7 +12,7 @@
 
 #include 
 
-#define I915_LAST_UABI_ENGINE_CLASS I915_ENGINE_CLASS_COMPUTE
+#include "gt/intel_engine_user.h"
 
 struct drm_file;
 struct drm_printer;
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index f3be9033a93f..a718b4cb5a2d 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -238,7 +238,7 @@ struct drm_i915_private {
struct list_head uabi_engines_list;
struct rb_root uabi_engines;
};
-   unsigned int engine_uabi_class_count[I915_LAST_UABI_ENGINE_CLASS + 1];
+   unsigned int engine_uabi_class_count[I915_MAX_UABI_CLASSES];
 
/* protects the irq masks */
spinlock_t irq_lock;
-- 
2.41.0



[Intel-gfx] [PATCH] drm/i915/huc: Stop printing about unsupported HuC on MTL

2023-11-09 Thread Daniele Ceraolo Spurio
On MTL, the HuC is only supported on the media GT, so our validation
check on the module parameter detects an inconsistency on the root GT
(the modparams asks to enable HuC, but the support is not there) and
prints the following info message:

[drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!

This can be confusing to the user and make them think that something is
wrong when it isn't, so we need to silence it.
Given that any platform that supports HuC also supports GuC, if a user
tries to enable HuC on a platform that really doesn't support it they'll
already see a message about GuC not being supported, so instead of just
silencing the HuC message on newer platforms we can just get rid of it
entirely.

Signed-off-by: Daniele Ceraolo Spurio 
Cc: John Harrison 
---
 drivers/gpu/drm/i915/gt/uc/intel_uc.c | 5 -
 1 file changed, 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c 
b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
index 27f6561dd731..3872d309ed31 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
@@ -106,11 +106,6 @@ static void __confirm_options(struct intel_uc *uc)
gt_info(gt,  "Incompatible option enable_guc=%d - %s\n",
i915->params.enable_guc, "GuC is not supported!");
 
-   if (i915->params.enable_guc & ENABLE_GUC_LOAD_HUC &&
-   !intel_uc_supports_huc(uc))
-   gt_info(gt, "Incompatible option enable_guc=%d - %s\n",
-   i915->params.enable_guc, "HuC is not supported!");
-
if (i915->params.enable_guc & ENABLE_GUC_SUBMISSION &&
!intel_uc_supports_guc_submission(uc))
gt_info(gt, "Incompatible option enable_guc=%d - %s\n",
-- 
2.41.0



[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: abstract plane protection check (rev2)

2023-11-09 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915: abstract plane protection check 
(rev2)
URL   : https://patchwork.freedesktop.org/series/126205/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_13856 -> Patchwork_126205v2


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_126205v2 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_126205v2, please notify your bug team 
(lgci.bug.fil...@intel.com) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/index.html

Participating hosts (34 -> 35)
--

  Additional (2): fi-kbl-soraka fi-hsw-4770 
  Missing(1): fi-pnv-d510 

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_126205v2:

### IGT changes ###

 Possible regressions 

  * igt@i915_selftest@live@guc_hang:
- fi-hsw-4770:NOTRUN -> [INCOMPLETE][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/fi-hsw-4770/igt@i915_selftest@live@guc_hang.html

  * igt@i915_suspend@basic-s3-without-i915:
- fi-cfl-8109u:   [PASS][2] -> [ABORT][3]
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/fi-cfl-8109u/igt@i915_susp...@basic-s3-without-i915.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/fi-cfl-8109u/igt@i915_susp...@basic-s3-without-i915.html

  * igt@kms_pipe_crc_basic@nonblocking-crc@pipe-d-dp-5:
- bat-adlp-11:[PASS][4] -> [FAIL][5]
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-adlp-11/igt@kms_pipe_crc_basic@nonblocking-...@pipe-d-dp-5.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/bat-adlp-11/igt@kms_pipe_crc_basic@nonblocking-...@pipe-d-dp-5.html

  
Known issues


  Here are the changes found in Patchwork_126205v2 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka:  NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#2190])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html

  * igt@gem_lmem_swapping@basic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#4613]) +3 
other tests skip
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html

  * igt@gem_softpin@allocator-basic-reserve:
- fi-hsw-4770:NOTRUN -> [SKIP][8] ([fdo#109271]) +12 other tests 
skip
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/fi-hsw-4770/igt@gem_soft...@allocator-basic-reserve.html

  * igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka:  NOTRUN -> [DMESG-FAIL][9] ([i915#1886])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@i915_suspend@basic-s3-without-i915:
- bat-dg2-8:  NOTRUN -> [SKIP][10] ([i915#6645])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/bat-dg2-8/igt@i915_susp...@basic-s3-without-i915.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- fi-hsw-4770:NOTRUN -> [SKIP][11] ([fdo#109271] / [i915#5190])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/fi-hsw-4770/igt@kms_addfb_ba...@addfb25-y-tiled-small-legacy.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][12] ([fdo#109271]) +9 other tests 
skip
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/fi-kbl-soraka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_pipe_crc_basic@nonblocking-crc@pipe-c-dp-5:
- bat-adlp-11:[PASS][13] -> [DMESG-FAIL][14] ([i915#6868])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-adlp-11/igt@kms_pipe_crc_basic@nonblocking-...@pipe-c-dp-5.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/bat-adlp-11/igt@kms_pipe_crc_basic@nonblocking-...@pipe-c-dp-5.html

  * igt@kms_pipe_crc_basic@read-crc-frame-sequence@pipe-b-dp-5:
- bat-adlp-11:[PASS][15] -> [ABORT][16] ([i915#8668])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13856/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-b-dp-5.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/bat-adlp-11/igt@kms_pipe_crc_basic@read-crc-frame-seque...@pipe-b-dp-5.html

  * igt@kms_pipe_crc_basic@suspend-read-crc@pipe-d-dp-1:
- bat-dg2-8:  NOTRUN -> [INCOMPLETE][17] ([i915#9280])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126205v2/bat-dg2-8/igt@kms_pipe_crc_basic@suspend-read-...@pipe-d-dp-1.html

[Intel-gfx] [PATCH 0/2] Don't send double context enable/disable requests

2023-11-09 Thread John . C . Harrison
From: John Harrison 

The driver could sometimes send context enable/disable requests when a
previous request was still pending. This is not allowed. So stop doing
it.

Signed-off-by: John Harrison 


John Harrison (2):
  drm/i915/guc: Don't double enable a context
  drm/i915/guc: Don't disable a context whose enable is still pending

 .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 33 +++
 1 file changed, 26 insertions(+), 7 deletions(-)

-- 
2.41.0



[Intel-gfx] [PATCH 2/2] drm/i915/guc: Don't disable a context whose enable is still pending

2023-11-09 Thread John . C . Harrison
From: John Harrison 

Various processes involve requesting GuC to disable a given context.
However context enable/disable is an asynchronous process in the GuC.
Thus, it is possible the previous enable request is still being
processed when the disable request is triggered. Having both enable
and disable in flight concurrently is illegal - GuC will return an
error and fail the second operation. The KMD side handler for the
completion message also can't cope with having both pending flags set.
So delay the disable request until it is safe to send.

Signed-off-by: John Harrison 
---
 .../gpu/drm/i915/gt/uc/intel_guc_submission.c | 31 +++
 1 file changed, 25 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
index d399e4d238c10..8c34b0a5abf9a 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
@@ -3150,7 +3150,8 @@ guc_context_revoke(struct intel_context *ce, struct 
i915_request *rq,
guc_cancel_context_requests(ce);
intel_engine_signal_breadcrumbs(ce->engine);
} else if (!context_pending_disable(ce)) {
-   u16 guc_id;
+   u16 guc_id = ~0;
+   bool pending_enable = context_pending_enable(ce);
 
/*
 * We add +2 here as the schedule disable complete CTB handler
@@ -3158,7 +3159,11 @@ guc_context_revoke(struct intel_context *ce, struct 
i915_request *rq,
 */
atomic_add(2, &ce->pin_count);
 
-   guc_id = prep_context_pending_disable(ce);
+   if (pending_enable)
+   guc_id = ce->guc_id.id;
+   else
+   guc_id = prep_context_pending_disable(ce);
+
spin_unlock_irqrestore(&ce->guc_state.lock, flags);
 
/*
@@ -3169,7 +3174,15 @@ guc_context_revoke(struct intel_context *ce, struct 
i915_request *rq,
with_intel_runtime_pm(runtime_pm, wakeref) {
__guc_context_set_preemption_timeout(guc, guc_id,
 
preempt_timeout_ms);
-   __guc_context_sched_disable(guc, ce, guc_id);
+   if (!pending_enable)
+   __guc_context_sched_disable(guc, ce, guc_id);
+   }
+
+   if (pending_enable) {
+   /* Can't have both in flight concurrently, so try again 
later... */
+   mod_delayed_work(system_unbound_wq,
+
&ce->guc_state.sched_disable_delay_work,
+msecs_to_jiffies(1));
}
} else {
if (!context_guc_id_invalid(ce))
@@ -3222,7 +3235,13 @@ static void __delay_sched_disable(struct work_struct 
*wrk)
 
spin_lock_irqsave(&ce->guc_state.lock, flags);
 
-   if (bypass_sched_disable(guc, ce)) {
+   if (context_pending_enable(ce)) {
+   spin_unlock_irqrestore(&ce->guc_state.lock, flags);
+   /* Can't have both in flight concurrently, so try again 
later... */
+   mod_delayed_work(system_unbound_wq,
+&ce->guc_state.sched_disable_delay_work,
+msecs_to_jiffies(1));
+   } else if (bypass_sched_disable(guc, ce)) {
spin_unlock_irqrestore(&ce->guc_state.lock, flags);
intel_context_sched_disable_unpin(ce);
} else {
@@ -3257,8 +3276,8 @@ static void guc_context_sched_disable(struct 
intel_context *ce)
if (bypass_sched_disable(guc, ce)) {
spin_unlock_irqrestore(&ce->guc_state.lock, flags);
intel_context_sched_disable_unpin(ce);
-   } else if (!intel_context_is_closed(ce) && !guc_id_pressure(guc, ce) &&
-  delay) {
+   } else if ((!intel_context_is_closed(ce) && !guc_id_pressure(guc, ce) &&
+   delay) || context_pending_enable(ce)) {
spin_unlock_irqrestore(&ce->guc_state.lock, flags);
mod_delayed_work(system_unbound_wq,
 &ce->guc_state.sched_disable_delay_work,
-- 
2.41.0



[Intel-gfx] [PATCH 1/2] drm/i915/guc: Don't double enable a context

2023-11-09 Thread John . C . Harrison
From: John Harrison 

If a context is blocked, unblocked and subitted repeatedly in rapid
succession, the driver can end up trying to enable the context while
the previous enable request is still in flight. This can lead to much
confusion in the state tracking.

Prevent that by checking the pending enable flag before trying to
enable a context.

Signed-off-by: John Harrison 
---
 drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
index d37698bd6b91a..d399e4d238c10 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_submission.c
@@ -720,7 +720,7 @@ static int __guc_add_request(struct intel_guc *guc, struct 
i915_request *rq)
if (unlikely(context_blocked(ce) && !intel_context_is_parent(ce)))
goto out;
 
-   enabled = context_enabled(ce) || context_blocked(ce);
+   enabled = context_enabled(ce) || context_blocked(ce) || 
context_pending_enable(ce);
 
if (!enabled) {
action[len++] = INTEL_GUC_ACTION_SCHED_CONTEXT_MODE_SET;
-- 
2.41.0



Re: [Intel-gfx] [PATCH] drm/i915: Read a shadowed mmio register for ggtt flush

2023-11-09 Thread Belgaumkar, Vinay



On 11/9/2023 12:35 PM, Ville Syrjälä wrote:

On Thu, Nov 09, 2023 at 12:01:26PM -0800, Belgaumkar, Vinay wrote:

On 11/9/2023 11:30 AM, Ville Syrjälä wrote:

On Thu, Nov 09, 2023 at 11:21:48AM -0800, Vinay Belgaumkar wrote:

We read RENDER_HEAD as a part of the flush. If GT is in
deeper sleep states, this could lead to read errors since we are
not using a forcewake. Safer to read a shadowed register instead.

IIRC shadowing is only thing for writes, not reads.

Sure, but reading from a shadowed register does return the cached value

Does it? I suppose that would make some sense, but I don't recall that
ever being stated anywhere. At least before the shadow registers
existed reads would just give you zeroes when not awake.


(even though we don't care about the vakue here). When GT is in deeper
sleep states, it is better to read a shadowed (cached) value instead of
trying to attempt an mmio register read without a force wake anyways.

So you're saying reads from non-shadowed registers fails somehow
when not awake? How exactly do they fail? And when reading from
a shadowed register that failure never happens?


We could hit problems like the one being addressed here - 
https://patchwork.freedesktop.org/series/125356/.  Reading from a 
shadowed register will avoid any needless references(without a wake) to 
the MMIO space. Shouldn't hurt to make this change for all gens IMO.


Thanks,

Vinay.




Thanks,

Vinay.


Cc: John Harrison 
Cc: Daniele Ceraolo Spurio 
Signed-off-by: Vinay Belgaumkar 
---
   drivers/gpu/drm/i915/gt/intel_gt.c | 2 +-
   1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/gt/intel_gt.c 
b/drivers/gpu/drm/i915/gt/intel_gt.c
index ed32bf5b1546..ea814ea5f700 100644
--- a/drivers/gpu/drm/i915/gt/intel_gt.c
+++ b/drivers/gpu/drm/i915/gt/intel_gt.c
@@ -451,7 +451,7 @@ void intel_gt_flush_ggtt_writes(struct intel_gt *gt)
   
   		spin_lock_irqsave(&uncore->lock, flags);

intel_uncore_posting_read_fw(uncore,
-RING_HEAD(RENDER_RING_BASE));
+RING_TAIL(RENDER_RING_BASE));
spin_unlock_irqrestore(&uncore->lock, flags);
}
   }
--
2.38.1


Re: [Intel-gfx] [PATCH 2/2] drm/i915/guc: Add a selftest for FAST_REQUEST errors

2023-11-09 Thread John Harrison

On 11/9/2023 12:33, Daniele Ceraolo Spurio wrote:

On 11/6/2023 3:59 PM, john.c.harri...@intel.com wrote:

From: John Harrison 

There is a mechanism for reporting errors from fire and forget H2G
messages. This is the only way to find out about almost any error in
the GuC backend submission path. So it would be useful to know that it
is working.

Signed-off-by: John Harrison 
---
  drivers/gpu/drm/i915/gt/uc/intel_guc.h    |   4 +
  drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c |   9 ++
  drivers/gpu/drm/i915/gt/uc/selftest_guc.c | 122 ++
  3 files changed, 135 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc.h 
b/drivers/gpu/drm/i915/gt/uc/intel_guc.h

index 2b6dfe62c8f2a..e22c12ce245ad 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc.h
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc.h
@@ -297,6 +297,10 @@ struct intel_guc {
   * @number_guc_id_stolen: The number of guc_ids that have been 
stolen

   */
  int number_guc_id_stolen;
+    /**
+ * @fast_response_selftest: Backdoor to CT handler for fast 
response selftest

+ */
+    u32 fast_response_selftest;
  #endif
  };
  diff --git a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c 
b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c

index 89e314b3756bb..9d958afb78b7f 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_guc_ct.c
@@ -1076,6 +1076,15 @@ static int ct_handle_response(struct 
intel_guc_ct *ct, struct ct_incoming_msg *r

  found = true;
  break;
  }
+
+#ifdef CONFIG_DRM_I915_SELFTEST
+    if (!found && ct_to_guc(ct)->fast_response_selftest) {
+    CT_DEBUG(ct, "Assuming unsolicited response due to 
FAST_REQUEST selftest\n");

+    ct_to_guc(ct)->fast_response_selftest++;
+    found = 1;


found = true ? it's the same thing, but it's cleaner to assign boolean 
values to bool variables

Doh.




+    }
+#endif
+
  if (!found) {
  CT_ERROR(ct, "Unsolicited response message: len %u, data 
%#x (fence %u, last %u)\n",

   len, hxg[0], fence, ct->requests.last_fence);
diff --git a/drivers/gpu/drm/i915/gt/uc/selftest_guc.c 
b/drivers/gpu/drm/i915/gt/uc/selftest_guc.c

index bfb72143566f6..97fbbb396336c 100644
--- a/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
+++ b/drivers/gpu/drm/i915/gt/uc/selftest_guc.c
@@ -286,11 +286,133 @@ static int intel_guc_steal_guc_ids(void *arg)
  return ret;
  }
  +/*
+ * Send a context schedule H2G message with an invalid context id.
+ * This should generate a GUC_RESULT_INVALID_CONTEXT response.
+ */
+static int bad_h2g(struct intel_guc *guc)
+{
+    u32 action[3], len = 0;


AFAICS This is a 2 DW command, so you can use action[2].

Yup. Copy and paste bug.




+
+    action[len++] = INTEL_GUC_ACTION_SCHED_CONTEXT;
+    action[len++] = 0x12345678;
+
+    return intel_guc_send_nb(guc, action, len, 0);
+}
+
+/*
+ * Set a spinner running to make sure the system is alive and active,
+ * then send a bad but asynchronous H2G command and wait to see if an
+ * error response is returned. If no response is received or if the
+ * spinner dies then the test will fail.
+ */
+#define FAST_RESPONSE_TIMEOUT_MS    1000
+static int intel_guc_fast_request(void *arg)
+{
+    struct intel_gt *gt = arg;
+    struct intel_context *ce;
+    struct igt_spinner spin;
+    struct i915_request *rq;
+    intel_wakeref_t wakeref;
+    struct intel_engine_cs *engine = 
intel_selftest_find_any_engine(gt);

+    ktime_t before, now, delta;
+    bool spinning = false;
+    u64 delta_ms;
+    int ret = 0;
+
+    if (!engine)
+    return 0;
+
+    wakeref = intel_runtime_pm_get(gt->uncore->rpm);
+
+    ce = intel_context_create(engine);
+    if (IS_ERR(ce)) {
+    ret = PTR_ERR(ce);
+    gt_err(gt, "Failed to create spinner request: %pe\n", ce);
+    goto err_pm;
+    }
+
+    ret = igt_spinner_init(&spin, engine->gt);
+    if (ret) {
+    gt_err(gt, "Failed to create spinner: %pe\n", ERR_PTR(ret));
+    goto err_pm;
+    }
+    spinning = true;
+
+    rq = igt_spinner_create_request(&spin, ce, MI_ARB_CHECK);
+    intel_context_put(ce);
+    if (IS_ERR(rq)) {
+    ret = PTR_ERR(rq);
+    gt_err(gt, "Failed to create spinner request: %pe\n", rq);
+    goto err_spin;
+    }
+
+    ret = request_add_spin(rq, &spin);
+    if (ret) {
+    gt_err(gt, "Failed to add Spinner request: %pe\n", 
ERR_PTR(ret));

+    goto err_rq;
+    }
+
+    gt->uc.guc.fast_response_selftest = 1;
+
+    ret = bad_h2g(>->uc.guc);
+    if (ret) {
+    gt_err(gt, "Failed to send H2G: %pe\n", ERR_PTR(ret));
+    goto err_rq;
+    }
+
+    before = ktime_get();
+    while (gt->uc.guc.fast_response_selftest == 1) {
+    ret = i915_request_wait(rq, 0, 1);
+    if (ret != -ETIME) {
+    gt_err(gt, "Request wait failed: %pe\n", ERR_PTR(ret));
+    goto err_rq;
+    }
+    now = ktime_get();
+    delta = ktime_sub(now, before);
+    delta_ms = ktime_to_ms(delta);
+
+  

Re: [Intel-gfx] [PATCH] drm/i915/huc: Stop printing about unsupported HuC on MTL

2023-11-09 Thread John Harrison

On 11/9/2023 15:54, Daniele Ceraolo Spurio wrote:

On MTL, the HuC is only supported on the media GT, so our validation
check on the module parameter detects an inconsistency on the root GT
(the modparams asks to enable HuC, but the support is not there) and
prints the following info message:

[drm] GT0: Incompatible option enable_guc=3 - HuC is not supported!

This can be confusing to the user and make them think that something is
wrong when it isn't, so we need to silence it.
Given that any platform that supports HuC also supports GuC, if a user
tries to enable HuC on a platform that really doesn't support it they'll
already see a message about GuC not being supported, so instead of just
silencing the HuC message on newer platforms we can just get rid of it
entirely.
Not following this argument. Someone might attempt to enable HuC only 
and do so on a older platform that supports neither HuC nor GuC. There 
would be no GuC warning because GuC was not requested. But now there 
would also be no HuC warning either.


John.



Signed-off-by: Daniele Ceraolo Spurio 
Cc: John Harrison 
---
  drivers/gpu/drm/i915/gt/uc/intel_uc.c | 5 -
  1 file changed, 5 deletions(-)

diff --git a/drivers/gpu/drm/i915/gt/uc/intel_uc.c 
b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
index 27f6561dd731..3872d309ed31 100644
--- a/drivers/gpu/drm/i915/gt/uc/intel_uc.c
+++ b/drivers/gpu/drm/i915/gt/uc/intel_uc.c
@@ -106,11 +106,6 @@ static void __confirm_options(struct intel_uc *uc)
gt_info(gt,  "Incompatible option enable_guc=%d - %s\n",
i915->params.enable_guc, "GuC is not supported!");
  
-	if (i915->params.enable_guc & ENABLE_GUC_LOAD_HUC &&

-   !intel_uc_supports_huc(uc))
-   gt_info(gt, "Incompatible option enable_guc=%d - %s\n",
-   i915->params.enable_guc, "HuC is not supported!");
-
if (i915->params.enable_guc & ENABLE_GUC_SUBMISSION &&
!intel_uc_supports_guc_submission(uc))
gt_info(gt, "Incompatible option enable_guc=%d - %s\n",




[Intel-gfx] [PATCH v6] drm/i915/dsb: DSB code refactoring

2023-11-09 Thread Animesh Manna
Refactor DSB implementation to be compatible with Xe driver.

v1: RFC version.
v2: Make intel_dsb structure opaque from external usage. [Jani]
v3: Rebased on latest.
v4:
- Add boundary check in dsb_buffer_memset(). [Luca]
- Use size_t instead of u32. [Luca]
v5: WARN_ON() added for out of boudary case with some optimization. [Luca]

Cc: Jani Nikula 
Reviewed-by: Luca Coelho 
Signed-off-by: Animesh Manna 
---
 drivers/gpu/drm/i915/Makefile |  1 +
 drivers/gpu/drm/i915/display/intel_dsb.c  | 98 +++
 .../gpu/drm/i915/display/intel_dsb_buffer.c   | 82 
 .../gpu/drm/i915/display/intel_dsb_buffer.h   | 29 ++
 4 files changed, 148 insertions(+), 62 deletions(-)
 create mode 100644 drivers/gpu/drm/i915/display/intel_dsb_buffer.c
 create mode 100644 drivers/gpu/drm/i915/display/intel_dsb_buffer.h

diff --git a/drivers/gpu/drm/i915/Makefile b/drivers/gpu/drm/i915/Makefile
index 239da40a401f..7e5d6a39d450 100644
--- a/drivers/gpu/drm/i915/Makefile
+++ b/drivers/gpu/drm/i915/Makefile
@@ -277,6 +277,7 @@ i915-y += \
display/intel_dpt.o \
display/intel_drrs.o \
display/intel_dsb.o \
+   display/intel_dsb_buffer.o \
display/intel_fb.o \
display/intel_fb_pin.o \
display/intel_fbc.o \
diff --git a/drivers/gpu/drm/i915/display/intel_dsb.c 
b/drivers/gpu/drm/i915/display/intel_dsb.c
index 78b6fe24dcd8..9598d50f68f2 100644
--- a/drivers/gpu/drm/i915/display/intel_dsb.c
+++ b/drivers/gpu/drm/i915/display/intel_dsb.c
@@ -4,9 +4,6 @@
  *
  */
 
-#include "gem/i915_gem_internal.h"
-#include "gem/i915_gem_lmem.h"
-
 #include "i915_drv.h"
 #include "i915_irq.h"
 #include "i915_reg.h"
@@ -14,12 +11,13 @@
 #include "intel_de.h"
 #include "intel_display_types.h"
 #include "intel_dsb.h"
+#include "intel_dsb_buffer.h"
 #include "intel_dsb_regs.h"
 #include "intel_vblank.h"
 #include "intel_vrr.h"
 #include "skl_watermark.h"
 
-struct i915_vma;
+#define CACHELINE_BYTES 64
 
 enum dsb_id {
INVALID_DSB = -1,
@@ -32,8 +30,7 @@ enum dsb_id {
 struct intel_dsb {
enum dsb_id id;
 
-   u32 *cmd_buf;
-   struct i915_vma *vma;
+   struct intel_dsb_buffer dsb_buf;
struct intel_crtc *crtc;
 
/*
@@ -109,15 +106,17 @@ static void intel_dsb_dump(struct intel_dsb *dsb)
 {
struct intel_crtc *crtc = dsb->crtc;
struct drm_i915_private *i915 = to_i915(crtc->base.dev);
-   const u32 *buf = dsb->cmd_buf;
int i;
 
drm_dbg_kms(&i915->drm, "[CRTC:%d:%s] DSB %d commands {\n",
crtc->base.base.id, crtc->base.name, dsb->id);
for (i = 0; i < ALIGN(dsb->free_pos, 64 / 4); i += 4)
drm_dbg_kms(&i915->drm,
-   " 0x%08x: 0x%08x 0x%08x 0x%08x 0x%08x\n",
-   i * 4, buf[i], buf[i+1], buf[i+2], buf[i+3]);
+   " 0x%08x: 0x%08x 0x%08x 0x%08x 0x%08x\n", i * 4,
+   intel_dsb_buffer_read(&dsb->dsb_buf, i),
+   intel_dsb_buffer_read(&dsb->dsb_buf, i + 1),
+   intel_dsb_buffer_read(&dsb->dsb_buf, i + 2),
+   intel_dsb_buffer_read(&dsb->dsb_buf, i + 3));
drm_dbg_kms(&i915->drm, "}\n");
 }
 
@@ -129,8 +128,6 @@ static bool is_dsb_busy(struct drm_i915_private *i915, enum 
pipe pipe,
 
 static void intel_dsb_emit(struct intel_dsb *dsb, u32 ldw, u32 udw)
 {
-   u32 *buf = dsb->cmd_buf;
-
if (!assert_dsb_has_room(dsb))
return;
 
@@ -139,14 +136,13 @@ static void intel_dsb_emit(struct intel_dsb *dsb, u32 
ldw, u32 udw)
 
dsb->ins_start_offset = dsb->free_pos;
 
-   buf[dsb->free_pos++] = ldw;
-   buf[dsb->free_pos++] = udw;
+   intel_dsb_buffer_write(&dsb->dsb_buf, dsb->free_pos++, ldw);
+   intel_dsb_buffer_write(&dsb->dsb_buf, dsb->free_pos++, udw);
 }
 
 static bool intel_dsb_prev_ins_is_write(struct intel_dsb *dsb,
u32 opcode, i915_reg_t reg)
 {
-   const u32 *buf = dsb->cmd_buf;
u32 prev_opcode, prev_reg;
 
/*
@@ -157,8 +153,10 @@ static bool intel_dsb_prev_ins_is_write(struct intel_dsb 
*dsb,
if (dsb->free_pos == 0)
return false;
 
-   prev_opcode = buf[dsb->ins_start_offset + 1] & ~DSB_REG_VALUE_MASK;
-   prev_reg = buf[dsb->ins_start_offset + 1] & DSB_REG_VALUE_MASK;
+   prev_opcode = intel_dsb_buffer_read(&dsb->dsb_buf,
+   dsb->ins_start_offset + 1) & 
~DSB_REG_VALUE_MASK;
+   prev_reg =  intel_dsb_buffer_read(&dsb->dsb_buf,
+ dsb->ins_start_offset + 1) & 
DSB_REG_VALUE_MASK;
 
return prev_opcode == opcode && prev_reg == i915_mmio_reg_offset(reg);
 }
@@ -191,6 +189,8 @@ static bool intel_dsb_prev_ins_is_indexed_write(struct 
intel_dsb *dsb, i915_reg_
 void intel_dsb_reg_write(struct intel_dsb *dsb,
 i915_reg_t reg, u32 v

Re: [Intel-gfx] Regression on linux-next (next-20231107)

2023-11-09 Thread Borah, Chaitanya Kumar
Hello Krister,

> -Original Message-
> From: Krister Johansen 
> Sent: Friday, November 10, 2023 2:10 AM
> To: Borah, Chaitanya Kumar 
> Cc: k...@templeofstupid.com; intel-gfx@lists.freedesktop.org; Kurmi, Suresh
> Kumar ; Saarinen, Jani
> ; Miklos Szeredi 
> Subject: Re: Regression on linux-next (next-20231107)
> 
> Hi Chaitanya,
> 
> On Thu, Nov 09, 2023 at 05:00:09PM +, Borah, Chaitanya Kumar wrote:
> > Hello Krister,
> >
> > Hope you are doing well. I am Chaitanya from the linux graphics team in
> Intel.
> >
> > This mail is regarding a regression we are seeing in our CI runs[1] for some
> machines (dg2 and adl-p) on linux-next  repository.
> >
> > Since the version next-20231107 [2], we are seeing the following error
> > ```
> > <4>[   32.015910] stack segment:  [#1] PREEMPT SMP NOPTI
> > <4>[   32.021048] CPU: 15 PID: 766 Comm: fusermount Not tainted 6.6.0-
> next-20231107-next-20231107-g5cd631a52568+ #1
> > <4>[   32.031135] Hardware name: Intel Corporation Raptor Lake Client
> Platform/RPL-S ADP-S DDR5 UDIMM CRB, BIOS
> RPLSFWI1.R00.4221.A00.2305271351 05/27/2023
> > <4>[   32.044657] RIP: 0010:fuse_evict_inode+0x61/0x150 [fuse]
> > ``
> > ```
> >
> > Details log can be found in [3].
> >
> > After bisecting the tree, the following patch [4] seems to be the
> > first "bad" commit
> >
> >
> > ``
> > ```
> > 513dfacefd712bcbfab64e1a9c9c3e0d51c2dca5 is the first bad commit
> > commit 513dfacefd712bcbfab64e1a9c9c3e0d51c2dca5
> > Author: Krister Johansen k...@templeofstupid.com
> > Date:   Fri Nov 3 10:39:47 2023 -0700
> >
> > fuse: share lookup state between submount and its parent
> >
> > Fuse submounts do not perform a lookup for the nodeid that they inherit
> > from their parent.  Instead, the code decrements the nlookup on the
> > submount's fuse_inode when it is instantiated, and no forget is
> > performed when a submount root is evicted.
> >
> > Trouble arises when the submount's parent is evicted despite the
> > submount itself being in use.  In this author's case, the submount was
> > in a container and deatched from the initial mount namespace via a
> > MNT_DEATCH operation.  When memory pressure triggered the shrinker,
> the
> > inode from the parent was evicted, which triggered enough forgets to
> > render the submount's nodeid invalid.
> >
> > Since submounts should still function, even if their parent goes away,
> > solve this problem by sharing refcounted state between the parent and
> > its submount.  When all of the references on this shared state reach
> > zero, it's safe to forget the final lookup of the fuse nodeid.
> >
> >
> > ``
> > ```
> >
> > We also verified that if we revert the patch the issue is not seen.
> >
> > Could you please check why the patch causes this regression and provide a
> fix if necessary?
> 
> Apologies for the inconvenience.  I've reproduced the problem, tested a fix,
> and am in the process of preparing patches to send to Miklos.  I'll cc the
> people on this e-mail in that thread.
> 
> > [3]
> > http://gfx-ci.igk.intel.com/tree/linux-next/next-20231109/bat-dg2-14/b
> > oot0.txt
> 
> This link didn't resolve in DNS when I tried to access it.  I needed to use 
> intel-
> gfx-ci.01.org as the hostname instead.
> 

My bad. I realized it too late. Hope you found the logs. If not here they are.

https://intel-gfx-ci.01.org/tree/linux-next/next-20231109/bat-dg2-14/boot0.txt

Regards

Chaitanya
> Thanks,
> 
> -K


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/gsc: Assign a uabi class number to the GSC CS

2023-11-09 Thread Patchwork
== Series Details ==

Series: drm/i915/gsc: Assign a uabi class number to the GSC CS
URL   : https://patchwork.freedesktop.org/series/126225/
State : warning

== Summary ==

Error: dim sparse failed
Sparse version: v0.6.2
Fast mode used, each commit won't be checked separately.




[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/gsc: Assign a uabi class number to the GSC CS

2023-11-09 Thread Patchwork
== Series Details ==

Series: drm/i915/gsc: Assign a uabi class number to the GSC CS
URL   : https://patchwork.freedesktop.org/series/126225/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13859 -> Patchwork_126225v1


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/index.html

Participating hosts (33 -> 34)
--

  Additional (2): fi-hsw-4770 bat-dg2-9 
  Missing(1): fi-kbl-soraka 

Known issues


  Here are the changes found in Patchwork_126225v1 that come from known issues:

### CI changes ###

 Issues hit 

  * boot:
- fi-hsw-4770:NOTRUN -> [FAIL][1] ([i915#8293])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/fi-hsw-4770/boot.html

  

### IGT changes ###

 Issues hit 

  * igt@gem_mmap@basic:
- bat-dg2-9:  NOTRUN -> [SKIP][2] ([i915#4083])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-dg2-9/igt@gem_m...@basic.html

  * igt@gem_mmap_gtt@basic:
- bat-dg2-9:  NOTRUN -> [SKIP][3] ([i915#4077]) +2 other tests skip
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-dg2-9/igt@gem_mmap_...@basic.html

  * igt@gem_render_tiled_blits@basic:
- bat-dg2-9:  NOTRUN -> [SKIP][4] ([i915#4079]) +1 other test skip
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-dg2-9/igt@gem_render_tiled_bl...@basic.html

  * igt@i915_pm_rps@basic-api:
- bat-dg2-9:  NOTRUN -> [SKIP][5] ([i915#6621])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-dg2-9/igt@i915_pm_...@basic-api.html

  * igt@i915_selftest@live@gt_heartbeat:
- fi-apl-guc: [PASS][6] -> [DMESG-FAIL][7] ([i915#5334])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13859/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_suspend@basic-s2idle-without-i915:
- fi-apl-guc: [PASS][8] -> [INCOMPLETE][9] ([i915#1982] / 
[i915#4528])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13859/fi-apl-guc/igt@i915_susp...@basic-s2idle-without-i915.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/fi-apl-guc/igt@i915_susp...@basic-s2idle-without-i915.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-dg2-9:  NOTRUN -> [SKIP][10] ([i915#5190])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-dg2-9/igt@kms_addfb_ba...@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
- bat-dg2-9:  NOTRUN -> [SKIP][11] ([i915#4215] / [i915#5190])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-dg2-9/igt@kms_addfb_ba...@basic-y-tiled-legacy.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
- bat-dg2-9:  NOTRUN -> [SKIP][12] ([i915#4212]) +6 other tests skip
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-dg2-9/igt@kms_addfb_ba...@framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@tile-pitch-mismatch:
- bat-dg2-9:  NOTRUN -> [SKIP][13] ([i915#4212] / [i915#5608])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-dg2-9/igt@kms_addfb_ba...@tile-pitch-mismatch.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-dg2-9:  NOTRUN -> [SKIP][14] ([i915#4103] / [i915#4213] / 
[i915#5608]) +1 other test skip
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-dg2-9/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@b-dp5:
- bat-adlp-11:[PASS][15] -> [DMESG-WARN][16] ([i915#6868])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13859/bat-adlp-11/igt@kms_flip@basic-flip-vs-wf_vbl...@b-dp5.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-adlp-11/igt@kms_flip@basic-flip-vs-wf_vbl...@b-dp5.html

  * igt@kms_flip@basic-flip-vs-wf_vblank@d-dp5:
- bat-adlp-11:[PASS][17] -> [FAIL][18] ([i915#6121]) +1 other test 
fail
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13859/bat-adlp-11/igt@kms_flip@basic-flip-vs-wf_vbl...@d-dp5.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-adlp-11/igt@kms_flip@basic-flip-vs-wf_vbl...@d-dp5.html

  * igt@kms_flip@basic-plain-flip@d-dp6:
- bat-adlp-11:NOTRUN -> [DMESG-WARN][19] ([i915#6868])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126225v1/bat-adlp-11/igt@kms_flip@basic-plain-f...@d-dp6.html

  * igt@kms_force_connector_basic@force-load-detect:
- bat-dg2-9:  NOTRUN -> [SKIP][20] ([fdo#109285])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/huc: Stop printing about unsupported HuC on MTL

2023-11-09 Thread Patchwork
== Series Details ==

Series: drm/i915/huc: Stop printing about unsupported HuC on MTL
URL   : https://patchwork.freedesktop.org/series/126226/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_13859 -> Patchwork_126226v1


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_126226v1 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_126226v1, please notify your bug team 
(lgci.bug.fil...@intel.com) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/index.html

Participating hosts (33 -> 32)
--

  Additional (1): bat-dg2-9 
  Missing(2): fi-kbl-soraka fi-pnv-d510 

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_126226v1:

### IGT changes ###

 Possible regressions 

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-d-dp-5:
- bat-adlp-11:[PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13859/bat-adlp-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-seque...@pipe-d-dp-5.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-adlp-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-seque...@pipe-d-dp-5.html

  
Known issues


  Here are the changes found in Patchwork_126226v1 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@gem_mmap@basic:
- bat-dg2-9:  NOTRUN -> [SKIP][3] ([i915#4083])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-9/igt@gem_m...@basic.html

  * igt@gem_mmap_gtt@basic:
- bat-dg2-9:  NOTRUN -> [SKIP][4] ([i915#4077]) +2 other tests skip
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-9/igt@gem_mmap_...@basic.html

  * igt@gem_render_tiled_blits@basic:
- bat-dg2-9:  NOTRUN -> [SKIP][5] ([i915#4079]) +1 other test skip
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-9/igt@gem_render_tiled_bl...@basic.html

  * igt@i915_pm_rps@basic-api:
- bat-dg2-9:  NOTRUN -> [SKIP][6] ([i915#6621])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-9/igt@i915_pm_...@basic-api.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-dg2-9:  NOTRUN -> [SKIP][7] ([i915#5190])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-9/igt@kms_addfb_ba...@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
- bat-dg2-9:  NOTRUN -> [SKIP][8] ([i915#4215] / [i915#5190])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-9/igt@kms_addfb_ba...@basic-y-tiled-legacy.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
- bat-dg2-9:  NOTRUN -> [SKIP][9] ([i915#4212]) +6 other tests skip
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-9/igt@kms_addfb_ba...@framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@tile-pitch-mismatch:
- bat-dg2-9:  NOTRUN -> [SKIP][10] ([i915#4212] / [i915#5608])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-9/igt@kms_addfb_ba...@tile-pitch-mismatch.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-dg2-9:  NOTRUN -> [SKIP][11] ([i915#4103] / [i915#4213] / 
[i915#5608]) +1 other test skip
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-9/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-legacy.html

  * igt@kms_force_connector_basic@force-load-detect:
- bat-dg2-9:  NOTRUN -> [SKIP][12] ([fdo#109285])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-9/igt@kms_force_connector_ba...@force-load-detect.html

  * igt@kms_force_connector_basic@prune-stale-modes:
- bat-dg2-9:  NOTRUN -> [SKIP][13] ([i915#5274])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-9/igt@kms_force_connector_ba...@prune-stale-modes.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
- bat-dg2-11: NOTRUN -> [SKIP][14] ([i915#1845] / [i915#9197]) +3 
other tests skip
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-dg2-11/igt@kms_pipe_crc_ba...@nonblocking-crc-frame-sequence.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence@pipe-c-dp-5:
- bat-adlp-11:[PASS][15] -> [DMESG-FAIL][16] ([i915#6868])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13859/bat-adlp-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-seque...@pipe-c-dp-5.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126226v1/bat-adlp-11/igt@kms_pi

Re: [Intel-gfx] [PATCH 1/2] drm/i915: abstract plane protection check

2023-11-09 Thread Kandpal, Suraj



> -Original Message-
> From: Intel-gfx  On Behalf Of Jani
> Nikula
> Sent: Thursday, November 9, 2023 9:37 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: Nikula, Jani 
> Subject: [Intel-gfx] [PATCH 1/2] drm/i915: abstract plane protection check
> 
> Centralize the conditions in a function.
> 
> Signed-off-by: Jani Nikula 

LGTM.

Reviewed-by: Suraj Kandpal 

> ---
>  .../gpu/drm/i915/display/skl_universal_plane.c | 18 ++
>  1 file changed, 14 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index 68035675ae3c..98acf25a5ca3 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -1866,6 +1866,19 @@ static bool pxp_is_borked(struct
> drm_i915_gem_object *obj)
>   return i915_gem_object_is_protected(obj) &&
> !bo_has_valid_encryption(obj);  }
> 
> +static void check_protection(struct intel_plane_state *plane_state) {
> + struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
> + struct drm_i915_private *i915 = to_i915(plane->base.dev);
> + const struct drm_framebuffer *fb = plane_state->hw.fb;
> +
> + if (DISPLAY_VER(i915) < 11)
> + return;
> +
> + plane_state->decrypt = bo_has_valid_encryption(intel_fb_obj(fb));
> + plane_state->force_black = pxp_is_borked(intel_fb_obj(fb)); }
> +
>  static int skl_plane_check(struct intel_crtc_state *crtc_state,
>  struct intel_plane_state *plane_state)  { @@ -
> 1910,10 +1923,7 @@ static int skl_plane_check(struct intel_crtc_state
> *crtc_state,
>   if (ret)
>   return ret;
> 
> - if (DISPLAY_VER(dev_priv) >= 11) {
> - plane_state->decrypt =
> bo_has_valid_encryption(intel_fb_obj(fb));
> - plane_state->force_black = pxp_is_borked(intel_fb_obj(fb));
> - }
> + check_protection(plane_state);
> 
>   /* HW only has 8 bits pixel precision, disable plane if invisible */
>   if (!(plane_state->hw.alpha >> 8))
> --
> 2.39.2



Re: [Intel-gfx] [PATCH 2/2] drm/i915: remove excess functions from plane protection check

2023-11-09 Thread Kandpal, Suraj



> -Original Message-
> From: Intel-gfx  On Behalf Of Jani
> Nikula
> Sent: Thursday, November 9, 2023 9:37 PM
> To: intel-gfx@lists.freedesktop.org
> Cc: Nikula, Jani 
> Subject: [Intel-gfx] [PATCH 2/2] drm/i915: remove excess functions from plane
> protection check
> 
> Reduce the function calls by reusing ->decrypt.
> 
> Signed-off-by: Jani Nikula 

LGTM.

Reviewed-by: Suraj Kandpal 

> ---
>  .../gpu/drm/i915/display/skl_universal_plane.c | 18 --
>  1 file changed, 4 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> index 98acf25a5ca3..39499a0ec6c0 100644
> --- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
> +++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
> @@ -1854,29 +1854,19 @@ static bool skl_fb_scalable(const struct
> drm_framebuffer *fb)
>   }
>  }
> 
> -static bool bo_has_valid_encryption(struct drm_i915_gem_object *obj) -{
> - struct drm_i915_private *i915 = to_i915(obj->base.dev);
> -
> - return intel_pxp_key_check(i915->pxp, obj, false) == 0;
> -}
> -
> -static bool pxp_is_borked(struct drm_i915_gem_object *obj) -{
> - return i915_gem_object_is_protected(obj) &&
> !bo_has_valid_encryption(obj);
> -}
> -
>  static void check_protection(struct intel_plane_state *plane_state)  {
>   struct intel_plane *plane = to_intel_plane(plane_state->uapi.plane);
>   struct drm_i915_private *i915 = to_i915(plane->base.dev);
>   const struct drm_framebuffer *fb = plane_state->hw.fb;
> + struct drm_i915_gem_object *obj = intel_fb_obj(fb);
> 
>   if (DISPLAY_VER(i915) < 11)
>   return;
> 
> - plane_state->decrypt = bo_has_valid_encryption(intel_fb_obj(fb));
> - plane_state->force_black = pxp_is_borked(intel_fb_obj(fb));
> + plane_state->decrypt = intel_pxp_key_check(i915->pxp, obj, false) == 0;
> + plane_state->force_black = i915_gem_object_is_protected(obj) &&
> + !plane_state->decrypt;
>  }
> 
>  static int skl_plane_check(struct intel_crtc_state *crtc_state,
> --
> 2.39.2



[Intel-gfx] ✗ Fi.CI.BAT: failure for Don't send double context enable/disable requests

2023-11-09 Thread Patchwork
== Series Details ==

Series: Don't send double context enable/disable requests
URL   : https://patchwork.freedesktop.org/series/126234/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_13859 -> Patchwork_126234v1


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_126234v1 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_126234v1, please notify your bug team 
(lgci.bug.fil...@intel.com) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/index.html

Participating hosts (33 -> 34)
--

  Additional (2): bat-dg2-8 bat-dg2-9 
  Missing(1): fi-kbl-soraka 

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_126234v1:

### IGT changes ###

 Possible regressions 

  * igt@gem_exec_parallel@engines@fds:
- bat-dg2-8:  NOTRUN -> [TIMEOUT][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-8/igt@gem_exec_parallel@engi...@fds.html

  * igt@i915_selftest@live@gem_contexts:
- bat-adlm-1: [PASS][2] -> [ABORT][3]
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13859/bat-adlm-1/igt@i915_selftest@live@gem_contexts.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-adlm-1/igt@i915_selftest@live@gem_contexts.html

  * igt@i915_selftest@live@requests:
- bat-atsm-1: [PASS][4] -> [ABORT][5]
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13859/bat-atsm-1/igt@i915_selftest@l...@requests.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-atsm-1/igt@i915_selftest@l...@requests.html

  * igt@i915_selftest@live@workarounds:
- bat-dg2-11: [PASS][6] -> [ABORT][7]
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13859/bat-dg2-11/igt@i915_selftest@l...@workarounds.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-11/igt@i915_selftest@l...@workarounds.html
- bat-dg2-9:  NOTRUN -> [ABORT][8]
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-9/igt@i915_selftest@l...@workarounds.html

  * igt@kms_pipe_crc_basic@read-crc@pipe-d-dp-5:
- bat-adlp-11:[PASS][9] -> [FAIL][10]
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13859/bat-adlp-11/igt@kms_pipe_crc_basic@read-...@pipe-d-dp-5.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-adlp-11/igt@kms_pipe_crc_basic@read-...@pipe-d-dp-5.html

  
Known issues


  Here are the changes found in Patchwork_126234v1 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@gem_flink_basic@bad-flink:
- bat-dg2-8:  NOTRUN -> [TIMEOUT][11] ([i915#8628]) +2 other tests 
timeout
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-8/igt@gem_flink_ba...@bad-flink.html

  * igt@gem_mmap@basic:
- bat-dg2-9:  NOTRUN -> [SKIP][12] ([i915#4083])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-9/igt@gem_m...@basic.html

  * igt@gem_mmap_gtt@basic:
- bat-dg2-9:  NOTRUN -> [SKIP][13] ([i915#4077]) +2 other tests skip
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-9/igt@gem_mmap_...@basic.html

  * igt@gem_render_tiled_blits@basic:
- bat-dg2-9:  NOTRUN -> [SKIP][14] ([i915#4079]) +1 other test skip
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-9/igt@gem_render_tiled_bl...@basic.html

  * igt@i915_pm_rps@basic-api:
- bat-dg2-9:  NOTRUN -> [SKIP][15] ([i915#6621])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-9/igt@i915_pm_...@basic-api.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- bat-dg2-9:  NOTRUN -> [SKIP][16] ([i915#5190])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-9/igt@kms_addfb_ba...@addfb25-y-tiled-small-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
- bat-dg2-9:  NOTRUN -> [SKIP][17] ([i915#4215] / [i915#5190])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-9/igt@kms_addfb_ba...@basic-y-tiled-legacy.html

  * igt@kms_addfb_basic@framebuffer-vs-set-tiling:
- bat-dg2-9:  NOTRUN -> [SKIP][18] ([i915#4212]) +6 other tests skip
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-9/igt@kms_addfb_ba...@framebuffer-vs-set-tiling.html

  * igt@kms_addfb_basic@tile-pitch-mismatch:
- bat-dg2-9:  NOTRUN -> [SKIP][19] ([i915#4212] / [i915#5608])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126234v1/bat-dg2-9/igt@kms_addfb_ba

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/vma: Fix potential UAF on multi-tile platforms (rev2)

2023-11-09 Thread Patchwork
== Series Details ==

Series: drm/i915/vma: Fix potential UAF on multi-tile platforms (rev2)
URL   : https://patchwork.freedesktop.org/series/126012/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_13852 -> Patchwork_126012v2


Summary
---

  **FAILURE**

  Serious unknown changes coming with Patchwork_126012v2 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_126012v2, please notify your bug team 
(lgci.bug.fil...@intel.com) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/index.html

Participating hosts (34 -> 34)
--

  Additional (1): bat-mtlp-8 
  Missing(1): bat-dg2-9 

Possible new issues
---

  Here are the unknown changes that may have been introduced in 
Patchwork_126012v2:

### IGT changes ###

 Possible regressions 

  * igt@kms_force_connector_basic@force-edid:
- bat-adlp-11:NOTRUN -> [FAIL][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-11/igt@kms_force_connector_ba...@force-edid.html

  
Known issues


  Here are the changes found in Patchwork_126012v2 that come from known issues:

### CI changes ###

 Possible fixes 

  * boot:
- bat-adlp-11:[FAIL][2] ([i915#8293]) -> [PASS][3]
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13852/bat-adlp-11/boot.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-11/boot.html

  

### IGT changes ###

 Issues hit 

  * igt@debugfs_test@basic-hwmon:
- bat-mtlp-8: NOTRUN -> [SKIP][4] ([i915#9318])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-mtlp-8/igt@debugfs_t...@basic-hwmon.html
- bat-adlp-11:NOTRUN -> [SKIP][5] ([i915#9318])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-11/igt@debugfs_t...@basic-hwmon.html

  * igt@gem_lmem_swapping@basic:
- bat-adln-1: NOTRUN -> [SKIP][6] ([i915#4613]) +3 other tests skip
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adln-1/igt@gem_lmem_swapp...@basic.html

  * igt@gem_lmem_swapping@parallel-random-engines:
- bat-rplp-1: NOTRUN -> [SKIP][7] ([i915#4613]) +3 other tests skip
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-rplp-1/igt@gem_lmem_swapp...@parallel-random-engines.html

  * igt@gem_lmem_swapping@random-engines:
- bat-adlp-6: NOTRUN -> [SKIP][8] ([i915#4613]) +3 other tests skip
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-6/igt@gem_lmem_swapp...@random-engines.html

  * igt@gem_lmem_swapping@verify-random:
- bat-adlp-11:NOTRUN -> [SKIP][9] ([i915#4613]) +3 other tests skip
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-11/igt@gem_lmem_swapp...@verify-random.html
- bat-mtlp-8: NOTRUN -> [SKIP][10] ([i915#4613]) +3 other tests skip
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-mtlp-8/igt@gem_lmem_swapp...@verify-random.html

  * igt@gem_mmap@basic:
- bat-mtlp-8: NOTRUN -> [SKIP][11] ([i915#4083])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-mtlp-8/igt@gem_m...@basic.html

  * igt@gem_mmap_gtt@basic:
- bat-mtlp-8: NOTRUN -> [SKIP][12] ([i915#4077]) +3 other tests skip
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-mtlp-8/igt@gem_mmap_...@basic.html

  * igt@gem_render_tiled_blits@basic:
- bat-mtlp-8: NOTRUN -> [SKIP][13] ([i915#4079]) +1 other test skip
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-mtlp-8/igt@gem_render_tiled_bl...@basic.html

  * igt@gem_tiled_pread_basic:
- bat-adlp-11:NOTRUN -> [SKIP][14] ([i915#3282])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-11/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_rps@basic-api:
- bat-adlp-6: NOTRUN -> [SKIP][15] ([i915#6621])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-6/igt@i915_pm_...@basic-api.html
- bat-rplp-1: NOTRUN -> [SKIP][16] ([i915#6621])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-rplp-1/igt@i915_pm_...@basic-api.html
- bat-adlp-11:NOTRUN -> [SKIP][17] ([i915#6621])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adlp-11/igt@i915_pm_...@basic-api.html
- bat-adln-1: NOTRUN -> [SKIP][18] ([i915#6621])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v2/bat-adln-1/igt@i915_pm_...@basic-api.html
- bat-mtlp-8: NOTRUN -> [SKIP][19] ([i915#6621])
   [19]: 
https://intel-gfx-ci.01.org/

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/vma: Fix potential UAF on multi-tile platforms (rev3)

2023-11-09 Thread Patchwork
== Series Details ==

Series: drm/i915/vma: Fix potential UAF on multi-tile platforms (rev3)
URL   : https://patchwork.freedesktop.org/series/126012/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_13856 -> Patchwork_126012v3


Summary
---

  **SUCCESS**

  No regressions found.

  External URL: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/index.html

Participating hosts (34 -> 35)
--

  Additional (2): fi-kbl-soraka fi-hsw-4770 
  Missing(1): bat-dg2-8 

Known issues


  Here are the changes found in Patchwork_126012v3 that come from known issues:

### IGT changes ###

 Issues hit 

  * igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka:  NOTRUN -> [SKIP][1] ([fdo#109271] / [i915#2190])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html

  * igt@gem_lmem_swapping@basic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#4613]) +3 
other tests skip
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html

  * igt@gem_lmem_swapping@parallel-random-engines:
- bat-adln-1: NOTRUN -> [SKIP][3] ([i915#4613]) +3 other tests skip
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adln-1/igt@gem_lmem_swapp...@parallel-random-engines.html
- bat-rplp-1: NOTRUN -> [SKIP][4] ([i915#4613]) +3 other tests skip
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-rplp-1/igt@gem_lmem_swapp...@parallel-random-engines.html

  * igt@gem_lmem_swapping@random-engines:
- bat-adlp-6: NOTRUN -> [SKIP][5] ([i915#4613]) +3 other tests skip
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-6/igt@gem_lmem_swapp...@random-engines.html

  * igt@gem_lmem_swapping@verify-random:
- bat-adlp-11:NOTRUN -> [SKIP][6] ([i915#4613]) +3 other tests skip
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@gem_lmem_swapp...@verify-random.html

  * igt@gem_softpin@allocator-basic-reserve:
- fi-hsw-4770:NOTRUN -> [SKIP][7] ([fdo#109271]) +12 other tests 
skip
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-hsw-4770/igt@gem_soft...@allocator-basic-reserve.html

  * igt@i915_pm_rps@basic-api:
- bat-adlp-6: NOTRUN -> [SKIP][8] ([i915#6621])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-6/igt@i915_pm_...@basic-api.html
- bat-rplp-1: NOTRUN -> [SKIP][9] ([i915#6621])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-rplp-1/igt@i915_pm_...@basic-api.html
- bat-adlp-11:NOTRUN -> [SKIP][10] ([i915#6621])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@i915_pm_...@basic-api.html
- bat-adln-1: NOTRUN -> [SKIP][11] ([i915#6621])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adln-1/igt@i915_pm_...@basic-api.html

  * igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka:  NOTRUN -> [DMESG-FAIL][12] ([i915#1886])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html

  * igt@i915_suspend@basic-s2idle-without-i915:
- bat-adlp-11:NOTRUN -> [FAIL][13] ([i915#9649])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@i915_susp...@basic-s2idle-without-i915.html

  * igt@kms_addfb_basic@addfb25-y-tiled-small-legacy:
- fi-hsw-4770:NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#5190])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-hsw-4770/igt@kms_addfb_ba...@addfb25-y-tiled-small-legacy.html

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-atomic:
- fi-kbl-soraka:  NOTRUN -> [SKIP][15] ([fdo#109271]) +9 other tests 
skip
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-soraka/igt@kms_cursor_leg...@basic-busy-flip-before-cursor-atomic.html

  * igt@kms_psr@primary_page_flip:
- bat-rplp-1: NOTRUN -> [SKIP][16] ([i915#1072]) +3 other tests skip
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-rplp-1/igt@kms_psr@primary_page_flip.html
- bat-adlp-11:NOTRUN -> [SKIP][17] ([i915#1072]) +3 other tests skip
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@kms_psr@primary_page_flip.html

  * igt@kms_psr@sprite_plane_onoff:
- fi-hsw-4770:NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#1072]) +3 
other tests skip
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-hsw-4770/igt@kms_psr@sprite_plane_onoff.html

  * igt@kms_setmode@basic-clone-single-crtc:
- bat-rplp-1: NOTRUN -> [SKIP][19] ([i915#3555])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-ti

Re: [Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/vma: Fix potential UAF on multi-tile platforms (rev3)

2023-11-09 Thread Illipilli, TejasreeX
Hi,

https://patchwork.freedesktop.org/series/126012/ - Re-reported

Thanks,
Tejasree

-Original Message-
From: Janusz Krzysztofik  
Sent: Friday, November 10, 2023 4:27 AM
To: Andi Shyti 
Cc: intel-gfx@lists.freedesktop.org; LGCI Bug Filing 
Subject: Re: ✗ Fi.CI.BAT: failure for drm/i915/vma: Fix potential UAF on 
multi-tile platforms (rev3)

On Thursday, 9 November 2023 22:44:02 CET Patchwork wrote:
> == Series Details ==
> 
> Series: drm/i915/vma: Fix potential UAF on multi-tile platforms (rev3)
> URL   : https://patchwork.freedesktop.org/series/126012/
> State : failure
> 
> == Summary ==
> 
> CI Bug Log - changes from CI_DRM_13856 -> Patchwork_126012v3 
> 
> 
> Summary
> ---
> 
>   **FAILURE**
> 
>   Serious unknown changes coming with Patchwork_126012v3 absolutely need to be
>   verified manually.
>   
>   If you think the reported changes have nothing to do with the changes
>   introduced in Patchwork_126012v3, please notify your bug team 
> (lgci.bug.fil...@intel.com) to allow them
>   to document this new failure mode, which will reduce false positives in CI.
> 
>   External URL: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/index.html
> 
> Participating hosts (34 -> 34)
> --
> 
>   Additional (1): fi-kbl-soraka 
>   Missing(1): bat-dg2-8 
> 
> Possible new issues
> ---
> 
>   Here are the unknown changes that may have been introduced in 
> Patchwork_126012v3:
> 
> ### IGT changes ###
> 
>  Possible regressions 
> 
>   * igt@i915_suspend@basic-s2idle-without-i915:
> - bat-adlp-11:NOTRUN -> [FAIL][1]
>[1]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-1
> 1/igt@i915_susp...@basic-s2idle-without-i915.html

Andi,
Since that issue popped up again after your re-run, I've had a closer look.

The test igt@i915_suspend@basic-s2idle-without-i915 seems to be never executed 
on BAT ADL machines (e.g., adlp-11, adln-1) because of an abort triggered on 
those machines by igt@kms_pm_rpm@basic-pci-d3-state.  The latter can be found 
below among possible fixes -- it succeeded, and that explains why
igt@i915_suspend@basic-s2idle-without-i915 was executed this time, and also for 
my original submission (rev2).

I suspect there must be an issue with adlp-11 machine that results in failures 
from igt@i915_suspend@basic-s2idle-without-i915.  Unfortunately, that issue is 
not visible for now because that test is never executed on that machine.

@BUG Filing,
I'm no sure how re-reporting works, but once you have filters updated after my 
request submitted earlier today for rev2 of this patch, please also re-report 
results of rev3 (re-run of rev2).

Thanks,
Janusz

> 
>   
> Known issues
> 
> 
>   Here are the changes found in Patchwork_126012v3 that come from known 
> issues:
> 
> ### IGT changes ###
> 
>  Issues hit 
> 
>   * igt@gem_huc_copy@huc-copy:
> - fi-kbl-soraka:  NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190])
>[2]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-sor
> aka/igt@gem_huc_c...@huc-copy.html
> 
>   * igt@gem_lmem_swapping@basic:
> - fi-kbl-soraka:  NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 
> other tests skip
>[3]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/fi-kbl-soraka/igt@gem_lmem_swapp...@basic.html
> - bat-adln-1: NOTRUN -> [SKIP][4] ([i915#4613]) +3 other tests 
> skip
>[4]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adln-1
> /igt@gem_lmem_swapp...@basic.html
> 
>   * igt@gem_lmem_swapping@parallel-random-engines:
> - bat-rplp-1: NOTRUN -> [SKIP][5] ([i915#4613]) +3 other tests 
> skip
>[5]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-rplp-1
> /igt@gem_lmem_swapp...@parallel-random-engines.html
> 
>   * igt@gem_lmem_swapping@random-engines:
> - bat-adlp-6: NOTRUN -> [SKIP][6] ([i915#4613]) +3 other tests 
> skip
>[6]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-6
> /igt@gem_lmem_swapp...@random-engines.html
> 
>   * igt@gem_lmem_swapping@verify-random:
> - bat-adlp-11:NOTRUN -> [SKIP][7] ([i915#4613]) +3 other tests 
> skip
>[7]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-1
> 1/igt@gem_lmem_swapp...@verify-random.html
> 
>   * igt@i915_pm_rps@basic-api:
> - bat-adlp-6: NOTRUN -> [SKIP][8] ([i915#6621])
>[8]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-6/igt@i915_pm_...@basic-api.html
> - bat-rplp-1: NOTRUN -> [SKIP][9] ([i915#6621])
>[9]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-rplp-1/igt@i915_pm_...@basic-api.html
> - bat-adlp-11:NOTRUN -> [SKIP][10] ([i915#6621])
>[10]: 
> https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_126012v3/bat-adlp-11/igt@i915_p