Re: [Intel-gfx] [PATCH v5] drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9

2021-03-05 Thread Chiou, Cooper
Hi Rong,
Please help to trigger 3D performance test on several Gen9 CI test boxes which 
different fusing sku with/without “patch v5”, and share the results. Thanks,

Best Regards,
Cooper
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v3] drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9

2021-03-05 Thread Chiou, Cooper
Hi Rong,
Please help to trigger 3D performance test on several Gen9 CI test boxes which 
different fusing sku with/without “patch v5”. Thanks,

Best Regards,
Cooper

> On Mar 6, 2021, at 12:01 AM, Tvrtko Ursulin  
> wrote:
> 
> 
>> On 05/03/2021 15:24, Chiou, Cooper wrote:
>> After switched to ffs from fls in "patch 
>> v5"(https://patchwork.freedesktop.org/series/81764/#rev7), now CI result is 
>> PASS no regression in wa_verify warning.
>> @Chen, Rong
>> Could you please run 
>> “phoronix-test-suite.supertuxkart.1024x768.Fullscreen.Ultimate.1.GranParadisoIsland.frames_per_second”
>>  with this latest patch v5 on test box to see if any performance impact. 
> 
> We need testing on more that one box I'm afraid. Need to cover different 
> fusing configs of Gen9 with and without the patch. I don't have any useful 
> ideas on how to do it though. :(
> 
> Regards,
> 
> Tvrtko
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for i915/perf: Start hrtimer only if sampling the OA buffer (rev2)

2021-03-05 Thread Patchwork
== Series Details ==

Series: i915/perf: Start hrtimer only if sampling the OA buffer (rev2)
URL   : https://patchwork.freedesktop.org/series/87524/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9836_full -> Patchwork_19764_full


Summary
---

  **FAILURE**

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

  

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@kms_flip@flip-vs-suspend@c-edp1:
- shard-iclb: [PASS][1] -> [DMESG-WARN][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-iclb7/igt@kms_flip@flip-vs-susp...@c-edp1.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-iclb1/igt@kms_flip@flip-vs-susp...@c-edp1.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@feature_discovery@display-4x:
- shard-iclb: NOTRUN -> [SKIP][3] ([i915#1839])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-iclb3/igt@feature_discov...@display-4x.html

  * igt@gem_create@create-massive:
- shard-kbl:  NOTRUN -> [DMESG-WARN][4] ([i915#3002])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-kbl4/igt@gem_cre...@create-massive.html

  * igt@gem_ctx_persistence@engines-mixed:
- shard-snb:  NOTRUN -> [SKIP][5] ([fdo#109271] / [i915#1099]) +3 
similar issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-snb7/igt@gem_ctx_persiste...@engines-mixed.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-kbl:  [PASS][6] -> [FAIL][7] ([i915#2842]) +1 similar issue
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-kbl4/igt@gem_exec_fair@basic-none-s...@rcs0.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-kbl7/igt@gem_exec_fair@basic-none-s...@rcs0.html

  * igt@gem_exec_fair@basic-pace@bcs0:
- shard-tglb: [PASS][8] -> [FAIL][9] ([i915#2842]) +1 similar issue
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-tglb2/igt@gem_exec_fair@basic-p...@bcs0.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-tglb7/igt@gem_exec_fair@basic-p...@bcs0.html

  * igt@gem_exec_fair@basic-pace@vcs1:
- shard-iclb: NOTRUN -> [FAIL][10] ([i915#2842])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-iclb4/igt@gem_exec_fair@basic-p...@vcs1.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
- shard-glk:  [PASS][11] -> [FAIL][12] ([i915#2842]) +2 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-glk7/igt@gem_exec_fair@basic-throt...@rcs0.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-glk3/igt@gem_exec_fair@basic-throt...@rcs0.html

  * igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-snb:  NOTRUN -> [FAIL][13] ([i915#2389]) +2 similar issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-snb6/igt@gem_exec_reloc@basic-many-act...@rcs0.html

  * igt@gem_exec_reloc@basic-wide-active@bcs0:
- shard-apl:  NOTRUN -> [FAIL][14] ([i915#2389]) +3 similar issues
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-apl8/igt@gem_exec_reloc@basic-wide-act...@bcs0.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-tglb: [PASS][15] -> [DMESG-WARN][16] ([i915#2803])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-tglb3/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-tglb6/igt@gem_exec_schedule@u-fairsl...@rcs0.html

  * igt@gem_exec_whisper@basic-forked-all:
- shard-glk:  [PASS][17] -> [DMESG-WARN][18] ([i915#118] / 
[i915#95])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-glk7/igt@gem_exec_whis...@basic-forked-all.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-glk3/igt@gem_exec_whis...@basic-forked-all.html

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

  * igt@gem_pread@exhaustion:
- shard-snb:  NOTRUN -> [WARN][20] ([i915#2658])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/shard-snb7/igt@gem_pr...@exhaustion.html

  * 

[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [v2,1/3] drm/i915/display: Replace dc3co_enabled with dc3co_exitline on intel_psr struct

2021-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/3] drm/i915/display: Replace dc3co_enabled 
with dc3co_exitline on intel_psr struct
URL   : https://patchwork.freedesktop.org/series/87717/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9836_full -> Patchwork_19763_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@feature_discovery@display-4x:
- shard-iclb: NOTRUN -> [SKIP][1] ([i915#1839])
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-iclb6/igt@feature_discov...@display-4x.html

  * igt@gem_create@create-massive:
- shard-snb:  NOTRUN -> [DMESG-WARN][2] ([i915#3002]) +1 similar 
issue
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-snb5/igt@gem_cre...@create-massive.html
- shard-kbl:  NOTRUN -> [DMESG-WARN][3] ([i915#3002])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-kbl4/igt@gem_cre...@create-massive.html

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
- shard-kbl:  [PASS][4] -> [INCOMPLETE][5] ([i915#794])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-kbl7/igt@gem_ctx_isolation@preservation...@rcs0.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-kbl3/igt@gem_ctx_isolation@preservation...@rcs0.html

  * igt@gem_ctx_persistence@engines-mixed:
- shard-snb:  NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#1099]) +1 
similar issue
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-snb6/igt@gem_ctx_persiste...@engines-mixed.html

  * igt@gem_exec_fair@basic-flow@rcs0:
- shard-tglb: [PASS][7] -> [FAIL][8] ([i915#2842]) +2 similar issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-tglb3/igt@gem_exec_fair@basic-f...@rcs0.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-tglb5/igt@gem_exec_fair@basic-f...@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
- shard-kbl:  [PASS][9] -> [SKIP][10] ([fdo#109271])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-kbl1/igt@gem_exec_fair@basic-p...@vcs0.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-kbl4/igt@gem_exec_fair@basic-p...@vcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
- shard-glk:  [PASS][11] -> [FAIL][12] ([i915#2842]) +2 similar 
issues
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-glk7/igt@gem_exec_fair@basic-throt...@rcs0.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-glk2/igt@gem_exec_fair@basic-throt...@rcs0.html

  * igt@gem_exec_reloc@basic-wide-active@bcs0:
- shard-apl:  NOTRUN -> [FAIL][13] ([i915#2389]) +3 similar issues
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-apl6/igt@gem_exec_reloc@basic-wide-act...@bcs0.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-skl:  NOTRUN -> [DMESG-WARN][14] ([i915#1610] / [i915#2803])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-skl7/igt@gem_exec_schedule@u-fairsl...@rcs0.html

  * igt@gem_exec_schedule@u-fairslice@vecs0:
- shard-iclb: [PASS][15] -> [DMESG-WARN][16] ([i915#2803])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-iclb8/igt@gem_exec_schedule@u-fairsl...@vecs0.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-iclb2/igt@gem_exec_schedule@u-fairsl...@vecs0.html

  * igt@gem_exec_suspend@basic-s3:
- shard-apl:  [PASS][17] -> [DMESG-WARN][18] ([i915#180])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-apl1/igt@gem_exec_susp...@basic-s3.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-apl2/igt@gem_exec_susp...@basic-s3.html

  * igt@gem_exec_whisper@basic-normal:
- shard-glk:  [PASS][19] -> [DMESG-WARN][20] ([i915#118] / 
[i915#95])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-glk9/igt@gem_exec_whis...@basic-normal.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-glk1/igt@gem_exec_whis...@basic-normal.html

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

  * igt@gem_mmap_gtt@cpuset-big-copy-odd:
- shard-iclb: [PASS][22] -> [FAIL][23] ([i915#307])
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-iclb3/igt@gem_mmap_...@cpuset-big-copy-odd.html
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/shard-iclb8/igt@gem_mmap_...@cpuset-big-copy-odd.html

  * igt@gem_pread@exhaustion:

Re: [Intel-gfx] [RFC PATCH 8/9] drm/gem: Associate GEM objects with drm cgroup

2021-03-05 Thread Brian Welty


On 2/11/2021 7:34 AM, Daniel Vetter wrote:
> On Wed, Feb 10, 2021 at 02:00:57PM -0800, Brian Welty wrote:
>>
>> On 2/9/2021 2:54 AM, Daniel Vetter wrote:
>>> On Tue, Jan 26, 2021 at 01:46:25PM -0800, Brian Welty wrote:
 This patch adds tracking of which cgroup to make charges against for a
 given GEM object.  We associate the current task's cgroup with GEM objects
 as they are created.  First user of this is for charging DRM cgroup for
 device memory allocations.  The intended behavior is for device drivers to
 make the cgroup charging calls at the time that backing store is allocated
 or deallocated for the object.

 Exported functions are provided for charging memory allocations for a
 GEM object to DRM cgroup. To aid in debugging, we store how many bytes
 have been charged inside the GEM object.  Add helpers for setting and
 clearing the object's associated cgroup which will check that charges are
 not being leaked.

 For shared objects, this may make the charge against a cgroup that is
 potentially not the same cgroup as the process using the memory.  Based
 on the memory cgroup's discussion of "memory ownership", this seems
 acceptable [1].

 [1] https://www.kernel.org/doc/Documentation/cgroup-v2.txt, "Memory 
 Ownership"

 Signed-off-by: Brian Welty 
>>>
>>> Since for now we only have the generic gpu/xpu/bikeshed.memory bucket that
>>> counts everything, why don't we also charge in these gem functions?
>>
>> I'm not sure what you mean exactly.  You want to merge/move the charging 
>> logic
>> proposed in patch #5 (drm_cgroup_try_charge in kernel/cgroup/drm.c) into
>> drm_gem_object_charge_mem() ?
>>
>> Or reading below, I think you are okay keeping the logic separated as is, but
>> you want much of the code in kernel/cgroup/drm.c moved to drivers/gpu/cgroup 
>> ?
>> Yes, I see that should allow to reduce number of exported functions.
> 
> Both. I mean we'd need to look at the code again when it's shuffled, but
> I'd say:
> 
> - cgroup code and the charging for general gpu memory moves to
>   drivers/gpu/cgroup, so dma-buf heaps can use it too.
> 
> - the charging for gem buffers moves into core gem code, so it happens for
>   all gpu drivers and all gem buffer allocations.

Daniel, I'm not sure we're in sync on what 'charging for general gpu memory'
means.  Thus far, I have been proposing to charge/uncharge when backing store is
allocated/freed.  And thus, this would be done in DRM driver (so then also in
the dma-buf exporter).
I can't see how we'd hoist this part into drm gem code.
The memory limit in this series is for VRAM usage/limit not GEM buffers...

Unless you are talking about charging for GEM buffer creation?  But this is
more of a 'soft resource' more along lines of Kenny's earlier GEM buffer limit
control.
I raised issue with this then, and at the time, Tejun agreed we should keep to
'hard resource' controls, see [1] and [2].

[1] https://lists.freedesktop.org/archives/dri-devel/2019-May/218071.html
[2] https://lists.freedesktop.org/archives/dri-devel/2020-April/262141.html

> 
> - this might or might not mean a bunch less exported stuff from the
>   cgroups files (since you don't need separate steps for linking a gem
>   object to a cgroup from the actual charging), and probably no exports
>   anymore for drivers (since they charge nothing). That will change
>   when we add charging for specific memory pools I guess, but we add that
>   when we add tha functionality.

... so considering VRAM charging, then yes, we very much need to have exported
functions for drivers to do the charging.
But these can be exported from drm.ko (or new .ko?) instead of kernel.  Is
that still preference?   Also, if number of exported functions is concern, we
can replace some of it with use of function pointers.

So then returning to this comment of yours:

> - cgroup code and the charging for general gpu memory moves to
>   drivers/gpu/cgroup, so dma-buf heaps can use it too.

If you agree that we are charging just at backing-store level, then I think
logic belongs in drivers/gpu/drm/cgroup ??  As charging is done in DRM driver
(also dma-buf exporter).  In other words, part of drm.
If I understand, dma-buf heaps is exporter of system memory and doesn't
need to charge against gpu controller??
Will need some help to understand the dma-buf heap use case a bit more.


Thanks,
-Brian

> 
>>> Also, that would remove the need for all these functions exported to
>>> drivers. Plus the cgroups setup could also move fully into drm core code,
>>> since all drivers (*) support it
>>> That way this would really be a fully
>>> generic cgroups controller, and we could land it.
>>
>>
>> Patch #2 proposed to have a few setup functions called during drm device
>> registration.
>> You are suggesting to have this more tightly integrated?
> 
> Yeah essentially if DRIVER_GEM is set drm core would simply set this all
> up. Since with this we'd 

[Intel-gfx] ✗ Fi.CI.IGT: failure for i915/query: Correlate engine and cpu timestamps with better accuracy (rev3)

2021-03-05 Thread Patchwork
== Series Details ==

Series: i915/query: Correlate engine and cpu timestamps with better accuracy 
(rev3)
URL   : https://patchwork.freedesktop.org/series/87552/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9836_full -> Patchwork_19762_full


Summary
---

  **FAILURE**

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

  

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * 
igt@kms_atomic_transition@plane-all-transition-nonblocking-fencing@dp-1-pipe-b:
- shard-kbl:  [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-kbl3/igt@kms_atomic_transition@plane-all-transition-nonblocking-fenc...@dp-1-pipe-b.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-kbl4/igt@kms_atomic_transition@plane-all-transition-nonblocking-fenc...@dp-1-pipe-b.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@feature_discovery@display-4x:
- shard-iclb: NOTRUN -> [SKIP][3] ([i915#1839])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-iclb5/igt@feature_discov...@display-4x.html

  * igt@gem_create@create-massive:
- shard-snb:  NOTRUN -> [DMESG-WARN][4] ([i915#3002]) +1 similar 
issue
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-snb6/igt@gem_cre...@create-massive.html
- shard-kbl:  NOTRUN -> [DMESG-WARN][5] ([i915#3002])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-kbl6/igt@gem_cre...@create-massive.html

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
- shard-kbl:  [PASS][6] -> [INCOMPLETE][7] ([i915#794])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-kbl7/igt@gem_ctx_isolation@preservation...@rcs0.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-kbl3/igt@gem_ctx_isolation@preservation...@rcs0.html

  * igt@gem_ctx_persistence@engines-mixed:
- shard-snb:  NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#1099]) +5 
similar issues
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-snb5/igt@gem_ctx_persiste...@engines-mixed.html

  * igt@gem_ctx_ringsize@plugged@vecs0:
- shard-skl:  [PASS][9] -> [DMESG-WARN][10] ([i915#1982])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-skl9/igt@gem_ctx_ringsize@plug...@vecs0.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-skl9/igt@gem_ctx_ringsize@plug...@vecs0.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-kbl:  [PASS][11] -> [FAIL][12] ([i915#2842]) +1 similar 
issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-kbl4/igt@gem_exec_fair@basic-none-s...@rcs0.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-kbl3/igt@gem_exec_fair@basic-none-s...@rcs0.html

  * igt@gem_exec_fair@basic-pace@bcs0:
- shard-tglb: [PASS][13] -> [FAIL][14] ([i915#2842]) +1 similar 
issue
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-tglb2/igt@gem_exec_fair@basic-p...@bcs0.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-tglb7/igt@gem_exec_fair@basic-p...@bcs0.html

  * igt@gem_exec_fair@basic-pace@vecs0:
- shard-glk:  [PASS][15] -> [FAIL][16] ([i915#2842]) +1 similar 
issue
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-glk3/igt@gem_exec_fair@basic-p...@vecs0.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-glk9/igt@gem_exec_fair@basic-p...@vecs0.html

  * igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-snb:  NOTRUN -> [FAIL][17] ([i915#2389]) +2 similar issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-snb2/igt@gem_exec_reloc@basic-many-act...@rcs0.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-tglb: [PASS][18] -> [DMESG-WARN][19] ([i915#2803])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-tglb3/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/shard-tglb1/igt@gem_exec_schedule@u-fairsl...@rcs0.html

  * igt@gem_exec_schedule@u-fairslice@vcs0:
- shard-skl:  NOTRUN -> [DMESG-WARN][20] ([i915#1610] / [i915#2803])
   [20]: 

[Intel-gfx] ✗ Fi.CI.IGT: failure for Revert "drm/i915: Propagate errors on awaiting already signaled fences"

2021-03-05 Thread Patchwork
== Series Details ==

Series: Revert "drm/i915: Propagate errors on awaiting already signaled fences"
URL   : https://patchwork.freedesktop.org/series/87704/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9836_full -> Patchwork_19761_full


Summary
---

  **FAILURE**

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

  

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@gen9_exec_parse@basic-rejected:
- shard-skl:  NOTRUN -> [FAIL][1] +1 similar issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-skl1/igt@gen9_exec_pa...@basic-rejected.html

  * igt@gen9_exec_parse@batch-without-end:
- shard-apl:  [PASS][2] -> [FAIL][3] +3 similar issues
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-apl1/igt@gen9_exec_pa...@batch-without-end.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-apl1/igt@gen9_exec_pa...@batch-without-end.html

  * igt@gen9_exec_parse@batch-zero-length:
- shard-kbl:  [PASS][4] -> [FAIL][5] +6 similar issues
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-kbl3/igt@gen9_exec_pa...@batch-zero-length.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-kbl2/igt@gen9_exec_pa...@batch-zero-length.html
- shard-glk:  [PASS][6] -> [INCOMPLETE][7]
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-glk9/igt@gen9_exec_pa...@batch-zero-length.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-glk2/igt@gen9_exec_pa...@batch-zero-length.html

  * igt@gen9_exec_parse@bb-chained:
- shard-glk:  [PASS][8] -> [FAIL][9] +7 similar issues
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-glk2/igt@gen9_exec_pa...@bb-chained.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-glk9/igt@gen9_exec_pa...@bb-chained.html

  * igt@gen9_exec_parse@bb-start-out:
- shard-apl:  NOTRUN -> [FAIL][10] +1 similar issue
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-apl1/igt@gen9_exec_pa...@bb-start-out.html

  * igt@gen9_exec_parse@bb-start-param:
- shard-skl:  [PASS][11] -> [TIMEOUT][12]
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-skl1/igt@gen9_exec_pa...@bb-start-param.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-skl9/igt@gen9_exec_pa...@bb-start-param.html
- shard-kbl:  [PASS][13] -> [TIMEOUT][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-kbl6/igt@gen9_exec_pa...@bb-start-param.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-kbl7/igt@gen9_exec_pa...@bb-start-param.html
- shard-glk:  [PASS][15] -> [TIMEOUT][16]
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-glk5/igt@gen9_exec_pa...@bb-start-param.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-glk6/igt@gen9_exec_pa...@bb-start-param.html
- shard-apl:  [PASS][17] -> [TIMEOUT][18]
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-apl7/igt@gen9_exec_pa...@bb-start-param.html
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-apl8/igt@gen9_exec_pa...@bb-start-param.html

  * igt@gen9_exec_parse@valid-registers:
- shard-skl:  [PASS][19] -> [FAIL][20] +3 similar issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-skl6/igt@gen9_exec_pa...@valid-registers.html
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-skl7/igt@gen9_exec_pa...@valid-registers.html

  * igt@i915_selftest@live@client:
- shard-skl:  [PASS][21] -> [DMESG-FAIL][22]
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-skl9/igt@i915_selftest@l...@client.html
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-skl2/igt@i915_selftest@l...@client.html

  * igt@kms_atomic_transition@plane-all-transition-nonblocking@edp-1-pipe-b:
- shard-iclb: [PASS][23] -> [FAIL][24] +1 similar issue
   [23]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-iclb7/igt@kms_atomic_transition@plane-all-transition-nonblock...@edp-1-pipe-b.html
   [24]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/shard-iclb6/igt@kms_atomic_transition@plane-all-transition-nonblock...@edp-1-pipe-b.html

  
Known issues


  Here are the changes found in Patchwork_19761_full 

[Intel-gfx] ✓ Fi.CI.BAT: success for i915/perf: Start hrtimer only if sampling the OA buffer (rev2)

2021-03-05 Thread Patchwork
== Series Details ==

Series: i915/perf: Start hrtimer only if sampling the OA buffer (rev2)
URL   : https://patchwork.freedesktop.org/series/87524/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9836 -> Patchwork_19764


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_cs_nop@sync-fork-compute0:
- fi-snb-2600:NOTRUN -> [SKIP][1] ([fdo#109271]) +17 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/fi-snb-2600/igt@amdgpu/amd_cs_...@sync-fork-compute0.html

  * igt@gem_exec_fence@basic-busy@bcs0:
- fi-kbl-soraka:  NOTRUN -> [SKIP][2] ([fdo#109271]) +23 similar issues
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/fi-kbl-soraka/igt@gem_exec_fence@basic-b...@bcs0.html

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

  * igt@gem_tiled_fence_blits@basic:
- fi-kbl-8809g:   [PASS][4] -> [TIMEOUT][5] ([i915#3145])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-kbl-8809g/igt@gem_tiled_fence_bl...@basic.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/fi-kbl-8809g/igt@gem_tiled_fence_bl...@basic.html

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

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-soraka:  NOTRUN -> [SKIP][7] ([fdo#109271] / [fdo#111827]) +8 
similar issues
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/fi-kbl-soraka/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-kbl-soraka:  NOTRUN -> [FAIL][8] ([i915#49])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/fi-kbl-soraka/igt@kms_frontbuffer_track...@basic.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
- fi-kbl-soraka:  NOTRUN -> [SKIP][9] ([fdo#109271] / [i915#533])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/fi-kbl-soraka/igt@kms_pipe_crc_ba...@compare-crc-sanitycheck-pipe-d.html

  
 Possible fixes 

  * igt@i915_selftest@live@hangcheck:
- fi-snb-2600:[INCOMPLETE][10] ([i915#2782]) -> [PASS][11]
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-snb-2600/igt@i915_selftest@l...@hangcheck.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/fi-snb-2600/igt@i915_selftest@l...@hangcheck.html

  
 Warnings 

  * igt@gem_tiled_blits@basic:
- fi-kbl-8809g:   [TIMEOUT][12] ([i915#3145]) -> [TIMEOUT][13] 
([i915#2502] / [i915#3145])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-kbl-8809g/igt@gem_tiled_bl...@basic.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19764/fi-kbl-8809g/igt@gem_tiled_bl...@basic.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1222]: https://gitlab.freedesktop.org/drm/intel/issues/1222
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2291]: https://gitlab.freedesktop.org/drm/intel/issues/2291
  [i915#2502]: https://gitlab.freedesktop.org/drm/intel/issues/2502
  [i915#2601]: https://gitlab.freedesktop.org/drm/intel/issues/2601
  [i915#2782]: https://gitlab.freedesktop.org/drm/intel/issues/2782
  [i915#3145]: https://gitlab.freedesktop.org/drm/intel/issues/3145
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533


Participating hosts (43 -> 38)
--

  Additional (1): fi-kbl-soraka 
  Missing(6): fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-bsw-cyan fi-icl-y 
fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9836 -> Patchwork_19764

  CI-20190529: 20190529
  CI_DRM_9836: 8449e42c5aabce79a2c9f5e75ddd31b9b50e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6024: d8e03fe437f0c328c96717a92ad97719c02ba2cd @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19764: eccbb7788b1cdec359c6e6af94b46803c4a3290d @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

eccbb7788b1c i915/perf: Start hrtimer only if 

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/3] drm/i915/display: Replace dc3co_enabled with dc3co_exitline on intel_psr struct

2021-03-05 Thread Patchwork
== Series Details ==

Series: series starting with [v2,1/3] drm/i915/display: Replace dc3co_enabled 
with dc3co_exitline on intel_psr struct
URL   : https://patchwork.freedesktop.org/series/87717/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9836 -> Patchwork_19763


Summary
---

  **WARNING**

  Minor unknown changes coming with Patchwork_19763 need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19763, please notify your bug team 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_19763/index.html

Possible new issues
---

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

### IGT changes ###

 Warnings 

  * igt@gem_exec_suspend@basic-s3:
- fi-bsw-n3050:   [INCOMPLETE][1] ([i915#3159]) -> [INCOMPLETE][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-bsw-n3050/igt@gem_exec_susp...@basic-s3.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/fi-bsw-n3050/igt@gem_exec_susp...@basic-s3.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_fence@basic-busy@bcs0:
- fi-kbl-soraka:  NOTRUN -> [SKIP][3] ([fdo#109271]) +23 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/fi-kbl-soraka/igt@gem_exec_fence@basic-b...@bcs0.html

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

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

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-soraka:  NOTRUN -> [SKIP][6] ([fdo#109271] / [fdo#111827]) +8 
similar issues
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/fi-kbl-soraka/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-kbl-soraka:  NOTRUN -> [FAIL][7] ([i915#49])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/fi-kbl-soraka/igt@kms_frontbuffer_track...@basic.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
- fi-kbl-soraka:  NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#533])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/fi-kbl-soraka/igt@kms_pipe_crc_ba...@compare-crc-sanitycheck-pipe-d.html

  * igt@runner@aborted:
- fi-byt-j1900:   NOTRUN -> [FAIL][9] ([i915#2426] / [i915#2505])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/fi-byt-j1900/igt@run...@aborted.html

  
 Possible fixes 

  * igt@gem_tiled_blits@basic:
- fi-kbl-8809g:   [TIMEOUT][10] ([i915#3145]) -> [PASS][11]
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-kbl-8809g/igt@gem_tiled_bl...@basic.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19763/fi-kbl-8809g/igt@gem_tiled_bl...@basic.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2291]: https://gitlab.freedesktop.org/drm/intel/issues/2291
  [i915#2426]: https://gitlab.freedesktop.org/drm/intel/issues/2426
  [i915#2505]: https://gitlab.freedesktop.org/drm/intel/issues/2505
  [i915#3145]: https://gitlab.freedesktop.org/drm/intel/issues/3145
  [i915#3159]: https://gitlab.freedesktop.org/drm/intel/issues/3159
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533


Participating hosts (43 -> 39)
--

  Additional (1): fi-kbl-soraka 
  Missing(5): fi-ilk-m540 fi-tgl-dsi fi-hsw-4200u fi-bsw-cyan fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9836 -> Patchwork_19763

  CI-20190529: 20190529
  CI_DRM_9836: 8449e42c5aabce79a2c9f5e75ddd31b9b50e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6024: d8e03fe437f0c328c96717a92ad97719c02ba2cd @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19763: be397574544b1a79a258a7f1615f3597f6d35c08 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

be397574544b drm/i915/display: Introduce new intel_psr_pause/resume function
531d6207a548 drm/i915/display: Remove a redundant function argument from 
intel_psr_enable_source()
a1c366f1d864 drm/i915/display: 

[Intel-gfx] [PATCH] i915/perf: Start hrtimer only if sampling the OA buffer

2021-03-05 Thread Umesh Nerlige Ramappa
SAMPLE_OA parameter enables sampling of OA buffer and results in a call
to init the OA buffer which initializes the OA unit head/tail pointers.
The OA_EXPONENT parameter controls the periodicity of the OA reports in
the OA buffer and results in starting a hrtimer.

Before gen12, all use cases required the use of the OA buffer and i915
enforced this setting when vetting out the parameters passed. In these
platforms the hrtimer was enabled if OA_EXPONENT was passed. This worked
fine since it was implied that SAMPLE_OA is always passed.

With gen12, this changed. Users can use perf without enabling the OA
buffer as in OAR use cases. While an OAR use case should ideally not
start the hrtimer, we see that passing an OA_EXPONENT parameter will
start the hrtimer even though SAMPLE_OA is not specified. This results
in an uninitialized OA buffer, so the head/tail pointers used to track
the buffer are zero.

This itself does not fail, but if we ran a use-case that SAMPLED the OA
buffer previously, then the OA_TAIL register is still pointing to an old
value. When the timer callback runs, it ends up calculating a
wrong/large number of available reports. Since we do a spinlock_irq_save
and start processing a large number of reports, NMI watchdog fires and
causes a crash.

Start the timer only if SAMPLE_OA is specified.

v2:
- Drop SAMPLE OA check when appending samples (Ashutosh)
- Prevent read if OA buffer is not being sampled

Fixes: 00a7f0d7155c ("drm/i915/tgl: Add perf support on TGL")
Signed-off-by: Umesh Nerlige Ramappa 
Reviewed-by: Ashutosh Dixit 
---
 drivers/gpu/drm/i915/i915_perf.c | 13 +
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
index c15bead2dac7..2fd2c13b76ac 100644
--- a/drivers/gpu/drm/i915/i915_perf.c
+++ b/drivers/gpu/drm/i915/i915_perf.c
@@ -595,7 +595,6 @@ static int append_oa_sample(struct i915_perf_stream *stream,
 {
int report_size = stream->oa_buffer.format_size;
struct drm_i915_perf_record_header header;
-   u32 sample_flags = stream->sample_flags;
 
header.type = DRM_I915_PERF_RECORD_SAMPLE;
header.pad = 0;
@@ -609,10 +608,8 @@ static int append_oa_sample(struct i915_perf_stream 
*stream,
return -EFAULT;
buf += sizeof(header);
 
-   if (sample_flags & SAMPLE_OA_REPORT) {
-   if (copy_to_user(buf, report, report_size))
-   return -EFAULT;
-   }
+   if (copy_to_user(buf, report, report_size))
+   return -EFAULT;
 
(*offset) += header.size;
 
@@ -2669,7 +2666,7 @@ static void i915_oa_stream_enable(struct i915_perf_stream 
*stream)
 
stream->perf->ops.oa_enable(stream);
 
-   if (stream->periodic)
+   if (stream->sample_flags & SAMPLE_OA_REPORT)
hrtimer_start(>poll_check_timer,
  ns_to_ktime(stream->poll_oa_period),
  HRTIMER_MODE_REL_PINNED);
@@ -2732,7 +2729,7 @@ static void i915_oa_stream_disable(struct 
i915_perf_stream *stream)
 {
stream->perf->ops.oa_disable(stream);
 
-   if (stream->periodic)
+   if (stream->sample_flags & SAMPLE_OA_REPORT)
hrtimer_cancel(>poll_check_timer);
 }
 
@@ -3015,7 +3012,7 @@ static ssize_t i915_perf_read(struct file *file,
 * disabled stream as an error. In particular it might otherwise lead
 * to a deadlock for blocking file descriptors...
 */
-   if (!stream->enabled)
+   if (!stream->enabled || !(stream->sample_flags & SAMPLE_OA_REPORT))
return -EIO;
 
if (!(file->f_flags & O_NONBLOCK)) {
-- 
2.20.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for i915/query: Correlate engine and cpu timestamps with better accuracy (rev3)

2021-03-05 Thread Patchwork
== Series Details ==

Series: i915/query: Correlate engine and cpu timestamps with better accuracy 
(rev3)
URL   : https://patchwork.freedesktop.org/series/87552/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9836 -> Patchwork_19762


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_fence@basic-busy@bcs0:
- fi-kbl-soraka:  NOTRUN -> [SKIP][1] ([fdo#109271]) +23 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/fi-kbl-soraka/igt@gem_exec_fence@basic-b...@bcs0.html

  * 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_19762/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html

  * igt@gem_tiled_fence_blits@basic:
- fi-kbl-8809g:   [PASS][3] -> [TIMEOUT][4] ([i915#3145])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-kbl-8809g/igt@gem_tiled_fence_bl...@basic.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/fi-kbl-8809g/igt@gem_tiled_fence_bl...@basic.html

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

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-soraka:  NOTRUN -> [SKIP][6] ([fdo#109271] / [fdo#111827]) +8 
similar issues
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/fi-kbl-soraka/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-kbl-soraka:  NOTRUN -> [FAIL][7] ([i915#49])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/fi-kbl-soraka/igt@kms_frontbuffer_track...@basic.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
- fi-kbl-soraka:  NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#533])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/fi-kbl-soraka/igt@kms_pipe_crc_ba...@compare-crc-sanitycheck-pipe-d.html

  
 Warnings 

  * igt@i915_pm_rpm@module-reload:
- fi-glk-dsi: [DMESG-WARN][9] ([i915#1982] / [i915#3143]) -> 
[DMESG-WARN][10] ([i915#3143])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-glk-dsi/igt@i915_pm_...@module-reload.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/fi-glk-dsi/igt@i915_pm_...@module-reload.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [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#2291]: https://gitlab.freedesktop.org/drm/intel/issues/2291
  [i915#3143]: https://gitlab.freedesktop.org/drm/intel/issues/3143
  [i915#3145]: https://gitlab.freedesktop.org/drm/intel/issues/3145
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533


Participating hosts (43 -> 39)
--

  Additional (1): fi-kbl-soraka 
  Missing(5): fi-ilk-m540 fi-hsw-4200u fi-bsw-cyan fi-icl-y fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9836 -> Patchwork_19762

  CI-20190529: 20190529
  CI_DRM_9836: 8449e42c5aabce79a2c9f5e75ddd31b9b50e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6024: d8e03fe437f0c328c96717a92ad97719c02ba2cd @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19762: 885dfe7b703ec08c3522dbb7253f42af121590dd @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

885dfe7b703e i915/query: Correlate engine and cpu timestamps with better 
accuracy

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19762/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915: More SAGV related fixes/cleanups

2021-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: More SAGV related fixes/cleanups
URL   : https://patchwork.freedesktop.org/series/87699/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9836_full -> Patchwork_19760_full


Summary
---

  **FAILURE**

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

  

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@gem_eio@in-flight-contexts-10ms:
- shard-skl:  NOTRUN -> [TIMEOUT][1]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-skl1/igt@gem_...@in-flight-contexts-10ms.html

  * igt@i915_selftest@live@reset:
- shard-skl:  [PASS][2] -> [DMESG-FAIL][3]
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-skl9/igt@i915_selftest@l...@reset.html
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-skl3/igt@i915_selftest@l...@reset.html

  * igt@kms_atomic_transition@plane-all-transition-nonblocking@edp-1-pipe-b:
- shard-iclb: [PASS][4] -> [FAIL][5]
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-iclb7/igt@kms_atomic_transition@plane-all-transition-nonblock...@edp-1-pipe-b.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-iclb5/igt@kms_atomic_transition@plane-all-transition-nonblock...@edp-1-pipe-b.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@feature_discovery@display-4x:
- shard-iclb: NOTRUN -> [SKIP][6] ([i915#1839])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-iclb7/igt@feature_discov...@display-4x.html

  * igt@gem_create@create-massive:
- shard-snb:  NOTRUN -> [DMESG-WARN][7] ([i915#3002]) +1 similar 
issue
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-snb5/igt@gem_cre...@create-massive.html

  * igt@gem_ctx_isolation@preservation-s3@bcs0:
- shard-kbl:  [PASS][8] -> [DMESG-WARN][9] ([i915#180]) +2 similar 
issues
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-kbl7/igt@gem_ctx_isolation@preservation...@bcs0.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-kbl1/igt@gem_ctx_isolation@preservation...@bcs0.html

  * igt@gem_ctx_persistence@engines-mixed:
- shard-snb:  NOTRUN -> [SKIP][10] ([fdo#109271] / [i915#1099]) +4 
similar issues
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-snb7/igt@gem_ctx_persiste...@engines-mixed.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
- shard-tglb: [PASS][11] -> [FAIL][12] ([i915#2842])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-tglb1/igt@gem_exec_fair@basic-none-sh...@rcs0.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-tglb2/igt@gem_exec_fair@basic-none-sh...@rcs0.html

  * igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-kbl:  [PASS][13] -> [FAIL][14] ([i915#2842])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-kbl4/igt@gem_exec_fair@basic-none-s...@rcs0.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-kbl1/igt@gem_exec_fair@basic-none-s...@rcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
- shard-glk:  [PASS][15] -> [FAIL][16] ([i915#2842])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/shard-glk7/igt@gem_exec_fair@basic-throt...@rcs0.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-glk1/igt@gem_exec_fair@basic-throt...@rcs0.html

  * igt@gem_exec_flush@basic-batch-kernel-default-cmd:
- shard-snb:  NOTRUN -> [SKIP][17] ([fdo#109271]) +294 similar 
issues
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-snb7/igt@gem_exec_fl...@basic-batch-kernel-default-cmd.html

  * igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-snb:  NOTRUN -> [FAIL][18] ([i915#2389]) +2 similar issues
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-snb5/igt@gem_exec_reloc@basic-many-act...@rcs0.html

  * igt@gem_exec_reloc@basic-wide-active@bcs0:
- shard-apl:  NOTRUN -> [FAIL][19] ([i915#2389]) +3 similar issues
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/shard-apl6/igt@gem_exec_reloc@basic-wide-act...@bcs0.html

  * igt@gem_exec_schedule@u-fairslice@vecs0:
- shard-kbl:  NOTRUN -> [DMESG-WARN][20] ([i915#1610] / [i915#2803])
   [20]: 

[Intel-gfx] [PATCH v2 3/3] drm/i915/display: Introduce new intel_psr_pause/resume function

2021-03-05 Thread Gwan-gyeong Mun
This introduces the following function that can enable and disable psr
without intel_crtc_state/drm_connector_state when intel_psr is already
enabled with current intel_crtc_state and drm_connector_state information.

- intel_psr_pause(): Pause current PSR. it deactivates current psr state.
- intel_psr_resume(): Resume paused PSR without intel_crtc_state and
  drm_connector_state. It activates paused psr state.

v2: Add new _intel_psr_enable_locked() function for removing duplicated
code. (Jose)

Cc: José Roberto de Souza 
Cc: Stanislav Lisovskiy 
Signed-off-by: Gwan-gyeong Mun 
---
 .../drm/i915/display/intel_display_types.h|   1 +
 drivers/gpu/drm/i915/display/intel_psr.c  | 117 +++---
 drivers/gpu/drm/i915/display/intel_psr.h  |   2 +
 3 files changed, 100 insertions(+), 20 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
b/drivers/gpu/drm/i915/display/intel_display_types.h
index 45c6388fa605..e29ffa8e8051 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1455,6 +1455,7 @@ struct intel_psr {
u16 su_x_granularity;
u32 dc3co_exitline;
u32 dc3co_exit_delay;
+   bool paused;
struct delayed_work dc3co_work;
struct drm_dp_vsc_sdp vsc;
 };
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index ce7ce82d6f1b..d90c0d769f26 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -957,27 +957,11 @@ static void intel_psr_enable_source(struct intel_dp 
*intel_dp)
 IGNORE_PSR2_HW_TRACKING : 0);
 }
 
-static void intel_psr_enable_locked(struct intel_dp *intel_dp,
-   const struct intel_crtc_state *crtc_state,
-   const struct drm_connector_state 
*conn_state)
+static bool psr_interrupt_error_check(struct intel_dp *intel_dp)
 {
-   struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
-   struct intel_encoder *encoder = _port->base;
u32 val;
 
-   drm_WARN_ON(_priv->drm, intel_dp->psr.enabled);
-
-   intel_dp->psr.psr2_enabled = crtc_state->has_psr2;
-   intel_dp->psr.busy_frontbuffer_bits = 0;
-   intel_dp->psr.pipe = to_intel_crtc(crtc_state->uapi.crtc)->pipe;
-   intel_dp->psr.transcoder = crtc_state->cpu_transcoder;
-   /* DC5/DC6 requires at least 6 idle frames */
-   val = usecs_to_jiffies(intel_get_frame_time_us(crtc_state) * 6);
-   intel_dp->psr.dc3co_exit_delay = val;
-   intel_dp->psr.dc3co_exitline = crtc_state->dc3co_exitline;
-   intel_dp->psr.psr2_sel_fetch_enabled = 
crtc_state->enable_psr2_sel_fetch;
-
/*
 * If a PSR error happened and the driver is reloaded, the EDP_PSR_IIR
 * will still keep the error set even after the reset done in the
@@ -998,13 +982,26 @@ static void intel_psr_enable_locked(struct intel_dp 
*intel_dp,
intel_dp->psr.sink_not_reliable = true;
drm_dbg_kms(_priv->drm,
"PSR interruption error set, not enabling PSR\n");
-   return;
+   return false;
}
 
+   return true;
+}
+
+static void _intel_psr_enable_locked(struct intel_dp *intel_dp)
+{
+   struct intel_digital_port *dig_port = dp_to_dig_port(intel_dp);
+   struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+   struct intel_encoder *encoder = _port->base;
+   const struct intel_crtc_state *crtc_state =
+   to_intel_crtc_state(encoder->base.crtc->state);
+
+   if (!psr_interrupt_error_check(intel_dp))
+   return;
+
drm_dbg_kms(_priv->drm, "Enabling PSR%s\n",
intel_dp->psr.psr2_enabled ? "2" : "1");
-   intel_dp_compute_psr_vsc_sdp(intel_dp, crtc_state, conn_state,
-_dp->psr.vsc);
+
intel_write_dp_vsc_sdp(encoder, crtc_state, _dp->psr.vsc);
intel_psr_enable_sink(intel_dp);
intel_psr_enable_source(intel_dp);
@@ -1013,6 +1010,32 @@ static void intel_psr_enable_locked(struct intel_dp 
*intel_dp,
intel_psr_activate(intel_dp);
 }
 
+static void intel_psr_enable_locked(struct intel_dp *intel_dp,
+   const struct intel_crtc_state *crtc_state,
+   const struct drm_connector_state 
*conn_state)
+{
+   struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
+   u32 val;
+
+   drm_WARN_ON(_priv->drm, intel_dp->psr.enabled);
+
+   intel_dp->psr.psr2_enabled = crtc_state->has_psr2;
+   intel_dp->psr.busy_frontbuffer_bits = 0;
+   intel_dp->psr.pipe = to_intel_crtc(crtc_state->uapi.crtc)->pipe;
+   intel_dp->psr.transcoder = crtc_state->cpu_transcoder;
+   /* DC5/DC6 requires 

[Intel-gfx] [PATCH v2 2/3] drm/i915/display: Remove a redundant function argument from intel_psr_enable_source()

2021-03-05 Thread Gwan-gyeong Mun
It removes intel_crtc_state from function argument of
intel_psr_enable_source() in order to use intel_psr_enable_source()
without intel_crtc_state on other psr internal functions.
And we can get cpu_trancoder from intel_psr, therefore we don't need to
pass intel_crtc_state to this function.

Cc: José Roberto de Souza 
Signed-off-by: Gwan-gyeong Mun 
Reviewed-by: José Roberto de Souza 
---
 drivers/gpu/drm/i915/display/intel_psr.c | 7 +++
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index 9c25a701943a..ce7ce82d6f1b 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -896,11 +896,10 @@ static void intel_psr_activate(struct intel_dp *intel_dp)
intel_dp->psr.active = true;
 }
 
-static void intel_psr_enable_source(struct intel_dp *intel_dp,
-   const struct intel_crtc_state *crtc_state)
+static void intel_psr_enable_source(struct intel_dp *intel_dp)
 {
struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
-   enum transcoder cpu_transcoder = crtc_state->cpu_transcoder;
+   enum transcoder cpu_transcoder = intel_dp->psr.transcoder;
u32 mask;
 
/* Only HSW and BDW have PSR AUX registers that need to be setup. SKL+
@@ -1008,7 +1007,7 @@ static void intel_psr_enable_locked(struct intel_dp 
*intel_dp,
 _dp->psr.vsc);
intel_write_dp_vsc_sdp(encoder, crtc_state, _dp->psr.vsc);
intel_psr_enable_sink(intel_dp);
-   intel_psr_enable_source(intel_dp, crtc_state);
+   intel_psr_enable_source(intel_dp);
intel_dp->psr.enabled = true;
 
intel_psr_activate(intel_dp);
-- 
2.30.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2 1/3] drm/i915/display: Replace dc3co_enabled with dc3co_exitline on intel_psr struct

2021-03-05 Thread Gwan-gyeong Mun
It replaces dc3co_enabled with dc3co_exitline on intel_psr struct.
And it saves dc3co_exitline, not dc3co_enabled, so we can use
dc3co_exitline without intel_crtc_state on other psr internal function
like as intel_psr_enable_source().

v2: Do not mutate externally visible state in .compute_config(). (Ville)

Cc: Ville Syrjälä 
Cc: José Roberto de Souza 
Cc: Anshuman Gupta 
Signed-off-by: Gwan-gyeong Mun 
---
 drivers/gpu/drm/i915/display/intel_display_types.h |  2 +-
 drivers/gpu/drm/i915/display/intel_psr.c   | 10 +-
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
b/drivers/gpu/drm/i915/display/intel_display_types.h
index 1a76e1d9de7a..45c6388fa605 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -1453,7 +1453,7 @@ struct intel_psr {
bool sink_not_reliable;
bool irq_aux_error;
u16 su_x_granularity;
-   bool dc3co_enabled;
+   u32 dc3co_exitline;
u32 dc3co_exit_delay;
struct delayed_work dc3co_work;
struct drm_dp_vsc_sdp vsc;
diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
b/drivers/gpu/drm/i915/display/intel_psr.c
index cd434285e3b7..9c25a701943a 100644
--- a/drivers/gpu/drm/i915/display/intel_psr.c
+++ b/drivers/gpu/drm/i915/display/intel_psr.c
@@ -637,7 +637,7 @@ static void tgl_dc3co_disable_work(struct work_struct *work)
 
 static void tgl_disallow_dc3co_on_psr2_exit(struct intel_dp *intel_dp)
 {
-   if (!intel_dp->psr.dc3co_enabled)
+   if (!intel_dp->psr.dc3co_exitline)
return;
 
cancel_delayed_work(_dp->psr.dc3co_work);
@@ -938,7 +938,7 @@ static void intel_psr_enable_source(struct intel_dp 
*intel_dp,
 
psr_irq_control(intel_dp);
 
-   if (crtc_state->dc3co_exitline) {
+   if (intel_dp->psr.dc3co_exitline) {
u32 val;
 
/*
@@ -947,7 +947,7 @@ static void intel_psr_enable_source(struct intel_dp 
*intel_dp,
 */
val = intel_de_read(dev_priv, EXITLINE(cpu_transcoder));
val &= ~EXITLINE_MASK;
-   val |= crtc_state->dc3co_exitline << EXITLINE_SHIFT;
+   val |= intel_dp->psr.dc3co_exitline << EXITLINE_SHIFT;
val |= EXITLINE_ENABLE;
intel_de_write(dev_priv, EXITLINE(cpu_transcoder), val);
}
@@ -972,11 +972,11 @@ static void intel_psr_enable_locked(struct intel_dp 
*intel_dp,
intel_dp->psr.psr2_enabled = crtc_state->has_psr2;
intel_dp->psr.busy_frontbuffer_bits = 0;
intel_dp->psr.pipe = to_intel_crtc(crtc_state->uapi.crtc)->pipe;
-   intel_dp->psr.dc3co_enabled = !!crtc_state->dc3co_exitline;
intel_dp->psr.transcoder = crtc_state->cpu_transcoder;
/* DC5/DC6 requires at least 6 idle frames */
val = usecs_to_jiffies(intel_get_frame_time_us(crtc_state) * 6);
intel_dp->psr.dc3co_exit_delay = val;
+   intel_dp->psr.dc3co_exitline = crtc_state->dc3co_exitline;
intel_dp->psr.psr2_sel_fetch_enabled = 
crtc_state->enable_psr2_sel_fetch;
 
/*
@@ -1761,7 +1761,7 @@ tgl_dc3co_flush(struct intel_dp *intel_dp, unsigned int 
frontbuffer_bits,
 {
mutex_lock(_dp->psr.lock);
 
-   if (!intel_dp->psr.dc3co_enabled)
+   if (!intel_dp->psr.dc3co_exitline)
goto unlock;
 
if (!intel_dp->psr.psr2_enabled || !intel_dp->psr.active)
-- 
2.30.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 3/3] drm/i915/display: Introduce new intel_psr_pause/resume function

2021-03-05 Thread Mun, Gwan-gyeong
On Wed, 2021-03-03 at 10:05 -0800, Souza, Jose wrote:
> patch 1 is a nack for the reasons that Ville explained.
> 
> This one could be simplified even more.
> 
> intel_psr_enable_locked() should have all the dev_priv->psr.*
> initialization from crtc_state + intel_dp_compute_psr_vsc_sdp().
> Then add a function(_intel_psr_enable_locked() or other better name
> that you can think) with the error checking + intel_write_dp_vsc_sdp()
> +
> intel_psr_enable_sink() + intel_psr_enable_source() +
> intel_psr_activate()...
> 
> intel_psr_resume()
> take loock
> checks
> _intel_psr_enable_locked()
> unlock()
> 
> 
Hi, thanks for checking it.
I'll float a new patch that addresses your comments.

> 
> On Wed, 2021-03-03 at 18:42 +0200, Gwan-gyeong Mun wrote:
> > This introduces the following function that can enable and disable
> > psr
> > without intel_crtc_state when intel_psr is already enabled with
> > current
> > intel_crtc_state information.
> > 
> > - intel_psr_pause(): Pause current PSR. it deactivates current psr
> > state.
> > - intel_psr_resume(): Resume paused PSR without intel_crtc_state.
> >   It activates paused psr state.
> > 
> > Cc: José Roberto de Souza 
> > Cc: Stanislav Lisovskiy 
> > Signed-off-by: Gwan-gyeong Mun 
> > ---
> >  .../drm/i915/display/intel_display_types.h    |   1 +
> >  drivers/gpu/drm/i915/display/intel_psr.c  | 111 +++-
> > --
> >  drivers/gpu/drm/i915/display/intel_psr.h  |   2 +
> >  3 files changed, 97 insertions(+), 17 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> > b/drivers/gpu/drm/i915/display/intel_display_types.h
> > index f69bd1caebbf..d49b79a0691a 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > @@ -1454,6 +1454,7 @@ struct intel_psr {
> > u16 su_x_granularity;
> > u32 dc3co_exitline;
> > u32 dc3co_exit_delay;
> > +   bool paused;
> > struct delayed_work dc3co_work;
> > struct drm_dp_vsc_sdp vsc;
> >  };
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index ea8f9598e6a3..533fc21f4352 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -957,26 +957,11 @@ static void intel_psr_enable_source(struct
> > intel_dp *intel_dp)
> >  IGNORE_PSR2_HW_TRACKING : 0);
> >  }
> >  
> > 
> > -static void intel_psr_enable_locked(struct intel_dp *intel_dp,
> > -   const struct intel_crtc_state
> > *crtc_state,
> > -   const struct drm_connector_state
> > *conn_state)
> > +static bool psr_interrupt_error_check(struct intel_dp *intel_dp)
> >  {
> > -   struct intel_digital_port *dig_port =
> > dp_to_dig_port(intel_dp);
> > struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> > -   struct intel_encoder *encoder = _port->base;
> > u32 val;
> >  
> > 
> > -   drm_WARN_ON(_priv->drm, intel_dp->psr.enabled);
> > -
> > -   intel_dp->psr.psr2_enabled = crtc_state->has_psr2;
> > -   intel_dp->psr.busy_frontbuffer_bits = 0;
> > -   intel_dp->psr.pipe = to_intel_crtc(crtc_state->uapi.crtc)-
> > >pipe;
> > -   intel_dp->psr.transcoder = crtc_state->cpu_transcoder;
> > -   /* DC5/DC6 requires at least 6 idle frames */
> > -   val = usecs_to_jiffies(intel_get_frame_time_us(crtc_state) *
> > 6);
> > -   intel_dp->psr.dc3co_exit_delay = val;
> > -   intel_dp->psr.psr2_sel_fetch_enabled = crtc_state-
> > >enable_psr2_sel_fetch;
> > -
> > /*
> >  * If a PSR error happened and the driver is reloaded, the
> > EDP_PSR_IIR
> >  * will still keep the error set even after the reset done in
> > the
> > @@ -997,9 +982,36 @@ static void intel_psr_enable_locked(struct
> > intel_dp *intel_dp,
> > intel_dp->psr.sink_not_reliable = true;
> > drm_dbg_kms(_priv->drm,
> >     "PSR interruption error set, not enabling
> > PSR\n");
> > -   return;
> > +   return false;
> > }
> >  
> > 
> > +   return true;
> > +}
> > +
> > +static void intel_psr_enable_locked(struct intel_dp *intel_dp,
> > +   const struct intel_crtc_state
> > *crtc_state,
> > +   const struct drm_connector_state
> > *conn_state)
> > +{
> > +   struct intel_digital_port *dig_port =
> > dp_to_dig_port(intel_dp);
> > +   struct drm_i915_private *dev_priv = dp_to_i915(intel_dp);
> > +   struct intel_encoder *encoder = _port->base;
> > +   u32 val;
> > +
> > +   drm_WARN_ON(_priv->drm, intel_dp->psr.enabled);
> > +
> > +   intel_dp->psr.psr2_enabled = crtc_state->has_psr2;
> > +   intel_dp->psr.busy_frontbuffer_bits = 0;
> > +  

Re: [Intel-gfx] [PATCH 1/3] drm/i915/display: Move dc3co_exitline variable to struct intel_psr

2021-03-05 Thread Mun, Gwan-gyeong
On Wed, 2021-03-03 at 18:54 +0200, Ville Syrjälä wrote:
> On Wed, Mar 03, 2021 at 06:41:59PM +0200, Gwan-gyeong Mun wrote:
> > dc3co_exitline is indirectly called by intel_psr_compute_config().
> > And it will not be changed until the next calling of
> > intel_psr_compute_config(). So in order to use dc3co_exitline without
> > intel_crtc_state on other psr internal function, it moves
> > dc3co_exitline
> > variable to struct intel_psr.
> > And it removes a dc3co_enabled variable from struct intel_psr.
> > 
> > Cc: José Roberto de Souza 
> > Cc: Anshuman Gupta 
> > Signed-off-by: Gwan-gyeong Mun 
> > ---
> >  drivers/gpu/drm/i915/display/intel_display_types.h |  3 +--
> >  drivers/gpu/drm/i915/display/intel_psr.c   | 11 +--
> >  2 files changed, 6 insertions(+), 8 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h
> > b/drivers/gpu/drm/i915/display/intel_display_types.h
> > index 1a76e1d9de7a..f69bd1caebbf 100644
> > --- a/drivers/gpu/drm/i915/display/intel_display_types.h
> > +++ b/drivers/gpu/drm/i915/display/intel_display_types.h
> > @@ -1002,7 +1002,6 @@ struct intel_crtc_state {
> > bool has_psr;
> > bool has_psr2;
> > bool enable_psr2_sel_fetch;
> > -   u32 dc3co_exitline;
> >  
> > /*
> >  * Frequence the dpll for the port should run at. Differs
> > from the
> > @@ -1453,7 +1452,7 @@ struct intel_psr {
> > bool sink_not_reliable;
> > bool irq_aux_error;
> > u16 su_x_granularity;
> > -   bool dc3co_enabled;
> > +   u32 dc3co_exitline;
> > u32 dc3co_exit_delay;
> > struct delayed_work dc3co_work;
> > struct drm_dp_vsc_sdp vsc;
> > diff --git a/drivers/gpu/drm/i915/display/intel_psr.c
> > b/drivers/gpu/drm/i915/display/intel_psr.c
> > index cd434285e3b7..976826653143 100644
> > --- a/drivers/gpu/drm/i915/display/intel_psr.c
> > +++ b/drivers/gpu/drm/i915/display/intel_psr.c
> > @@ -637,7 +637,7 @@ static void tgl_dc3co_disable_work(struct
> > work_struct *work)
> >  
> >  static void tgl_disallow_dc3co_on_psr2_exit(struct intel_dp
> > *intel_dp)
> >  {
> > -   if (!intel_dp->psr.dc3co_enabled)
> > +   if (!intel_dp->psr.dc3co_exitline)
> > return;
> >  
> > cancel_delayed_work(_dp->psr.dc3co_work);
> > @@ -679,7 +679,7 @@ tgl_dc3co_exitline_compute_config(struct intel_dp
> > *intel_dp,
> > if (drm_WARN_ON(_priv->drm, exit_scanlines >
> > crtc_vdisplay))
> > return;
> >  
> > -   crtc_state->dc3co_exitline = crtc_vdisplay - exit_scanlines;
> > +   intel_dp->psr.dc3co_exitline = crtc_vdisplay -
> > exit_scanlines;
> 
> Thou shalt not mutate externally visible state in .compute_config().
> You either want to make a copy of it or just compute it on the spot in
> the psr_enable(). The first option is a good choice when you can also
> hook into into the readout+state checker.
> 
Hi, thanks for pointing out where I was approached incorrectly.
I'll float new patch that makes copy crtc_state's dc3co_exitline to
intel_psr.dc3co_exitline.

> >  }
> >  
> >  static bool intel_psr2_sel_fetch_config_valid(struct intel_dp
> > *intel_dp,
> > @@ -938,7 +938,7 @@ static void intel_psr_enable_source(struct
> > intel_dp *intel_dp,
> >  
> > psr_irq_control(intel_dp);
> >  
> > -   if (crtc_state->dc3co_exitline) {
> > +   if (intel_dp->psr.dc3co_exitline) {
> > u32 val;
> >  
> > /*
> > @@ -947,7 +947,7 @@ static void intel_psr_enable_source(struct
> > intel_dp *intel_dp,
> >  */
> > val = intel_de_read(dev_priv,
> > EXITLINE(cpu_transcoder));
> > val &= ~EXITLINE_MASK;
> > -   val |= crtc_state->dc3co_exitline << EXITLINE_SHIFT;
> > +   val |= intel_dp->psr.dc3co_exitline <<
> > EXITLINE_SHIFT;
> > val |= EXITLINE_ENABLE;
> > intel_de_write(dev_priv, EXITLINE(cpu_transcoder),
> > val);
> > }
> > @@ -972,7 +972,6 @@ static void intel_psr_enable_locked(struct
> > intel_dp *intel_dp,
> > intel_dp->psr.psr2_enabled = crtc_state->has_psr2;
> > intel_dp->psr.busy_frontbuffer_bits = 0;
> > intel_dp->psr.pipe = to_intel_crtc(crtc_state->uapi.crtc)-
> > >pipe;
> > -   intel_dp->psr.dc3co_enabled = !!crtc_state->dc3co_exitline;
> > intel_dp->psr.transcoder = crtc_state->cpu_transcoder;
> > /* DC5/DC6 requires at least 6 idle frames */
> > val = usecs_to_jiffies(intel_get_frame_time_us(crtc_state) *
> > 6);
> > @@ -1761,7 +1760,7 @@ tgl_dc3co_flush(struct intel_dp *intel_dp,
> > unsigned int frontbuffer_bits,
> >  {
> > mutex_lock(_dp->psr.lock);
> >  
> > -   if (!intel_dp->psr.dc3co_enabled)
> > +   if (!intel_dp->psr.dc3co_exitline)
> > goto unlock;
> >  
> > if (!intel_dp->psr.psr2_enabled || !intel_dp->psr.active)
> > -- 
> > 2.30.1
> > 
> > 

[Intel-gfx] [PATCH] i915/query: Correlate engine and cpu timestamps with better accuracy

2021-03-05 Thread Umesh Nerlige Ramappa
Perf measurements rely on CPU and engine timestamps to correlate
events of interest across these time domains. Current mechanisms get
these timestamps separately and the calculated delta between these
timestamps lack enough accuracy.

To improve the accuracy of these time measurements to within a few us,
add a query that returns the engine and cpu timestamps captured as
close to each other as possible.

v2: (Tvrtko)
- document clock reference used
- return cpu timestamp always
- capture cpu time just before lower dword of cs timestamp

v3: (Chris)
- use uncore-rpm
- use __query_cs_timestamp helper

v4: (Lionel)
- Kernel perf subsytem allows users to specify the clock id to be used
  in perf_event_open. This clock id is used by the perf subsystem to
  return the appropriate cpu timestamp in perf events. Similarly, let
  the user pass the clockid to this query so that cpu timestamp
  corresponds to the clock id requested.

v5: (Tvrtko)
- Use normal ktime accessors instead of fast versions
- Add more uApi documentation

v6: (Lionel)
- Move switch out of spinlock

v7: (Chris)
- cs_timestamp is a misnomer, use cs_cycles instead
- return the cs cycle frequency as well in the query

v8:
- Add platform and engine specific checks

v9: (Lionel)
- Return 2 cpu timestamps in the query - captured before and after the
  register read

v10: (Chris)
- Use local_clock() to measure time taken to read lower dword of
  register and return it to user.

Signed-off-by: Umesh Nerlige Ramappa 
---
 drivers/gpu/drm/i915/i915_query.c | 145 ++
 include/uapi/drm/i915_drm.h   |  48 ++
 2 files changed, 193 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_query.c 
b/drivers/gpu/drm/i915/i915_query.c
index fed337ad7b68..25b96927ab92 100644
--- a/drivers/gpu/drm/i915/i915_query.c
+++ b/drivers/gpu/drm/i915/i915_query.c
@@ -6,6 +6,8 @@
 
 #include 
 
+#include "gt/intel_engine_pm.h"
+#include "gt/intel_engine_user.h"
 #include "i915_drv.h"
 #include "i915_perf.h"
 #include "i915_query.h"
@@ -90,6 +92,148 @@ static int query_topology_info(struct drm_i915_private 
*dev_priv,
return total_length;
 }
 
+typedef u64 (*__ktime_func_t)(void);
+static __ktime_func_t __clock_id_to_func(clockid_t clk_id)
+{
+   /*
+* Use logic same as the perf subsystem to allow user to select the
+* reference clock id to be used for timestamps.
+*/
+   switch (clk_id) {
+   case CLOCK_MONOTONIC:
+   return _get_ns;
+   case CLOCK_MONOTONIC_RAW:
+   return _get_raw_ns;
+   case CLOCK_REALTIME:
+   return _get_real_ns;
+   case CLOCK_BOOTTIME:
+   return _get_boottime_ns;
+   case CLOCK_TAI:
+   return _get_clocktai_ns;
+   default:
+   return NULL;
+   }
+}
+
+static inline int
+__read_timestamps(struct intel_uncore *uncore,
+ i915_reg_t lower_reg,
+ i915_reg_t upper_reg,
+ u64 *cs_ts,
+ u64 *cpu_ts,
+ __ktime_func_t cpu_clock)
+{
+   u32 upper, lower, old_upper, loop = 0;
+
+   upper = intel_uncore_read_fw(uncore, upper_reg);
+   do {
+   cpu_ts[1] = local_clock();
+   cpu_ts[0] = cpu_clock();
+   lower = intel_uncore_read_fw(uncore, lower_reg);
+   cpu_ts[1] = local_clock() - cpu_ts[1];
+   old_upper = upper;
+   upper = intel_uncore_read_fw(uncore, upper_reg);
+   } while (upper != old_upper && loop++ < 2);
+
+   *cs_ts = (u64)upper << 32 | lower;
+
+   return 0;
+}
+
+static int
+__query_cs_cycles(struct intel_engine_cs *engine,
+ u64 *cs_ts, u64 *cpu_ts,
+ __ktime_func_t cpu_clock)
+{
+   struct intel_uncore *uncore = engine->uncore;
+   enum forcewake_domains fw_domains;
+   u32 base = engine->mmio_base;
+   intel_wakeref_t wakeref;
+   int ret;
+
+   fw_domains = intel_uncore_forcewake_for_reg(uncore,
+   RING_TIMESTAMP(base),
+   FW_REG_READ);
+
+   with_intel_runtime_pm(uncore->rpm, wakeref) {
+   spin_lock_irq(>lock);
+   intel_uncore_forcewake_get__locked(uncore, fw_domains);
+
+   ret = __read_timestamps(uncore,
+   RING_TIMESTAMP(base),
+   RING_TIMESTAMP_UDW(base),
+   cs_ts,
+   cpu_ts,
+   cpu_clock);
+
+   intel_uncore_forcewake_put__locked(uncore, fw_domains);
+   spin_unlock_irq(>lock);
+   }
+
+   return ret;
+}
+
+static int
+query_cs_cycles(struct drm_i915_private *i915,
+   struct drm_i915_query_item *query_item)
+{
+   struct drm_i915_query_cs_cycles __user *query_ptr;
+  

[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9 (rev7)

2021-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9 
(rev7)
URL   : https://patchwork.freedesktop.org/series/81764/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9835_full -> Patchwork_19759_full


Summary
---

  **SUCCESS**

  No regressions found.

  

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@feature_discovery@psr2:
- shard-iclb: NOTRUN -> [SKIP][1] ([i915#658]) +1 similar issue
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-iclb7/igt@feature_discov...@psr2.html

  * igt@gem_create@create-massive:
- shard-snb:  NOTRUN -> [DMESG-WARN][2] ([i915#3002])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-snb5/igt@gem_cre...@create-massive.html
- shard-skl:  NOTRUN -> [DMESG-WARN][3] ([i915#3002])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-skl9/igt@gem_cre...@create-massive.html
- shard-apl:  NOTRUN -> [DMESG-WARN][4] ([i915#3002])
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-apl8/igt@gem_cre...@create-massive.html

  * igt@gem_ctx_isolation@preservation-s3@vcs0:
- shard-kbl:  NOTRUN -> [DMESG-WARN][5] ([i915#180])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-kbl2/igt@gem_ctx_isolation@preservation...@vcs0.html

  * igt@gem_ctx_persistence@clone:
- shard-snb:  NOTRUN -> [SKIP][6] ([fdo#109271] / [i915#1099]) +5 
similar issues
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-snb7/igt@gem_ctx_persiste...@clone.html

  * igt@gem_exec_fair@basic-flow@rcs0:
- shard-tglb: [PASS][7] -> [FAIL][8] ([i915#2842])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/shard-tglb1/igt@gem_exec_fair@basic-f...@rcs0.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-tglb8/igt@gem_exec_fair@basic-f...@rcs0.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
- shard-iclb: [PASS][9] -> [FAIL][10] ([i915#2842])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/shard-iclb7/igt@gem_exec_fair@basic-none-sh...@rcs0.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-iclb4/igt@gem_exec_fair@basic-none-sh...@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs1:
- shard-iclb: NOTRUN -> [FAIL][11] ([i915#2842]) +1 similar issue
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-iclb4/igt@gem_exec_fair@basic-p...@vcs1.html

  * igt@gem_exec_fair@basic-pace@vecs0:
- shard-glk:  [PASS][12] -> [FAIL][13] ([i915#2842]) +1 similar 
issue
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/shard-glk8/igt@gem_exec_fair@basic-p...@vecs0.html
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-glk6/igt@gem_exec_fair@basic-p...@vecs0.html

  * igt@gem_exec_params@no-vebox:
- shard-skl:  NOTRUN -> [SKIP][14] ([fdo#109271]) +118 similar 
issues
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-skl4/igt@gem_exec_par...@no-vebox.html

  * igt@gem_exec_reloc@basic-many-active@rcs0:
- shard-apl:  [PASS][15] -> [FAIL][16] ([i915#2389])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/shard-apl1/igt@gem_exec_reloc@basic-many-act...@rcs0.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-apl7/igt@gem_exec_reloc@basic-many-act...@rcs0.html

  * igt@gem_exec_reloc@basic-parallel:
- shard-apl:  NOTRUN -> [TIMEOUT][17] ([i915#1729])
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-apl2/igt@gem_exec_re...@basic-parallel.html

  * igt@gem_exec_reloc@basic-wide-active@rcs0:
- shard-snb:  NOTRUN -> [FAIL][18] ([i915#2389]) +5 similar issues
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-snb7/igt@gem_exec_reloc@basic-wide-act...@rcs0.html

  * igt@gem_exec_schedule@u-fairslice@rcs0:
- shard-apl:  NOTRUN -> [DMESG-WARN][19] ([i915#1610])
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-apl7/igt@gem_exec_schedule@u-fairsl...@rcs0.html
- shard-skl:  [PASS][20] -> [DMESG-WARN][21] ([i915#1610] / 
[i915#2803])
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/shard-skl4/igt@gem_exec_schedule@u-fairsl...@rcs0.html
   [21]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-skl7/igt@gem_exec_schedule@u-fairsl...@rcs0.html

  * igt@gem_huc_copy@huc-copy:
- shard-apl:  NOTRUN -> [SKIP][22] ([fdo#109271] / [i915#2190])
   [22]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/shard-apl8/igt@gem_huc_c...@huc-copy.html

  * igt@gem_pread@exhaustion:
- shard-apl:  NOTRUN -> [WARN][23] 

[Intel-gfx] ✓ Fi.CI.BAT: success for Revert "drm/i915: Propagate errors on awaiting already signaled fences"

2021-03-05 Thread Patchwork
== Series Details ==

Series: Revert "drm/i915: Propagate errors on awaiting already signaled fences"
URL   : https://patchwork.freedesktop.org/series/87704/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9836 -> Patchwork_19761


Summary
---

  **WARNING**

  Minor unknown changes coming with Patchwork_19761 need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_19761, please notify your bug team 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_19761/index.html

Possible new issues
---

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

### IGT changes ###

 Warnings 

  * igt@gem_linear_blits@basic:
- fi-kbl-8809g:   [TIMEOUT][1] ([i915#2502]) -> [TIMEOUT][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-kbl-8809g/igt@gem_linear_bl...@basic.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/fi-kbl-8809g/igt@gem_linear_bl...@basic.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_fence@basic-busy@bcs0:
- fi-kbl-soraka:  NOTRUN -> [SKIP][3] ([fdo#109271]) +23 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/fi-kbl-soraka/igt@gem_exec_fence@basic-b...@bcs0.html

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

  * igt@gem_tiled_fence_blits@basic:
- fi-kbl-8809g:   [PASS][5] -> [TIMEOUT][6] ([i915#3145])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-kbl-8809g/igt@gem_tiled_fence_bl...@basic.html
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/fi-kbl-8809g/igt@gem_tiled_fence_bl...@basic.html

  * igt@i915_selftest@live@gt_heartbeat:
- fi-bxt-dsi: [PASS][7] -> [DMESG-FAIL][8] ([i915#2291] / 
[i915#541])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-bxt-dsi/igt@i915_selftest@live@gt_heartbeat.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/fi-bxt-dsi/igt@i915_selftest@live@gt_heartbeat.html

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

  * igt@i915_selftest@live@late_gt_pm:
- fi-bsw-nick:[PASS][10] -> [DMESG-FAIL][11] ([i915#2927])
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-bsw-nick/igt@i915_selftest@live@late_gt_pm.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/fi-bsw-nick/igt@i915_selftest@live@late_gt_pm.html

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-soraka:  NOTRUN -> [SKIP][12] ([fdo#109271] / [fdo#111827]) +8 
similar issues
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/fi-kbl-soraka/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-kbl-soraka:  NOTRUN -> [FAIL][13] ([i915#49])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/fi-kbl-soraka/igt@kms_frontbuffer_track...@basic.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
- fi-kbl-soraka:  NOTRUN -> [SKIP][14] ([fdo#109271] / [i915#533])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/fi-kbl-soraka/igt@kms_pipe_crc_ba...@compare-crc-sanitycheck-pipe-d.html

  * igt@runner@aborted:
- fi-bsw-nick:NOTRUN -> [FAIL][15] ([i915#1436])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/fi-bsw-nick/igt@run...@aborted.html

  
 Warnings 

  * igt@gem_tiled_blits@basic:
- fi-kbl-8809g:   [TIMEOUT][16] ([i915#3145]) -> [TIMEOUT][17] 
([i915#2502] / [i915#3145])
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-kbl-8809g/igt@gem_tiled_bl...@basic.html
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/fi-kbl-8809g/igt@gem_tiled_bl...@basic.html

  * igt@i915_pm_rpm@module-reload:
- fi-glk-dsi: [DMESG-WARN][18] ([i915#1982] / [i915#3143]) -> 
[DMESG-WARN][19] ([i915#3143])
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-glk-dsi/igt@i915_pm_...@module-reload.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19761/fi-glk-dsi/igt@i915_pm_...@module-reload.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1436]: https://gitlab.freedesktop.org/drm/intel/issues/1436
  

Re: [Intel-gfx] [PATCH] Revert "drm/i915: Propagate errors on awaiting already signaled fences"

2021-03-05 Thread Chris Wilson
Quoting Jason Ekstrand (2021-03-05 17:05:46)
> This reverts commit 9e31c1fe45d555a948ff66f1f0e3fe1f83ca63f7.  Ever
> since that commit, we've been having issues where a hang in one client
> can propagate to another.  In particular, a hang in an app can propagate
> to the X server which causes the whole desktop to lock up.

The fence error handling is required to prevent user's circumventing
incomplete work, such as security validation or escaping isolation.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.IGT: failure for drm/i915/gem: Fix fall-through warnings for Clang

2021-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/gem: Fix fall-through warnings for Clang
URL   : https://patchwork.freedesktop.org/series/87690/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_9835_full -> Patchwork_19758_full


Summary
---

  **FAILURE**

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

  

Possible new issues
---

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

### IGT changes ###

 Possible regressions 

  * igt@kms_atomic_transition@plane-all-transition-nonblocking@dp-1-pipe-b:
- shard-kbl:  [PASS][1] -> [FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/shard-kbl3/igt@kms_atomic_transition@plane-all-transition-nonblock...@dp-1-pipe-b.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-kbl2/igt@kms_atomic_transition@plane-all-transition-nonblock...@dp-1-pipe-b.html

  * igt@perf@non-zero-reason:
- shard-tglb: [PASS][3] -> [FAIL][4]
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/shard-tglb6/igt@p...@non-zero-reason.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-tglb2/igt@p...@non-zero-reason.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_create@create-massive:
- shard-snb:  NOTRUN -> [DMESG-WARN][5] ([i915#3002])
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-snb2/igt@gem_cre...@create-massive.html
- shard-skl:  NOTRUN -> [DMESG-WARN][6] ([i915#3002])
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-skl10/igt@gem_cre...@create-massive.html
- shard-apl:  NOTRUN -> [DMESG-WARN][7] ([i915#3002])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-apl2/igt@gem_cre...@create-massive.html

  * igt@gem_ctx_persistence@smoketest:
- shard-snb:  NOTRUN -> [SKIP][8] ([fdo#109271] / [i915#1099]) +4 
similar issues
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-snb6/igt@gem_ctx_persiste...@smoketest.html

  * igt@gem_eio@unwedge-stress:
- shard-tglb: [PASS][9] -> [TIMEOUT][10] ([i915#2369] / [i915#3063])
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/shard-tglb1/igt@gem_...@unwedge-stress.html
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-tglb5/igt@gem_...@unwedge-stress.html

  * igt@gem_exec_fair@basic-deadline:
- shard-kbl:  [PASS][11] -> [FAIL][12] ([i915#2846])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/shard-kbl4/igt@gem_exec_f...@basic-deadline.html
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-kbl6/igt@gem_exec_f...@basic-deadline.html
- shard-skl:  NOTRUN -> [FAIL][13] ([i915#2846])
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-skl2/igt@gem_exec_f...@basic-deadline.html
- shard-apl:  NOTRUN -> [FAIL][14] ([i915#2846])
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-apl6/igt@gem_exec_f...@basic-deadline.html

  * igt@gem_exec_fair@basic-flow@rcs0:
- shard-tglb: [PASS][15] -> [FAIL][16] ([i915#2842]) +1 similar 
issue
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/shard-tglb1/igt@gem_exec_fair@basic-f...@rcs0.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-tglb1/igt@gem_exec_fair@basic-f...@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs1:
- shard-iclb: NOTRUN -> [FAIL][17] ([i915#2842]) +1 similar issue
   [17]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-iclb4/igt@gem_exec_fair@basic-p...@vcs1.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
- shard-glk:  [PASS][18] -> [FAIL][19] ([i915#2842]) +2 similar 
issues
   [18]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/shard-glk7/igt@gem_exec_fair@basic-throt...@rcs0.html
   [19]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-glk6/igt@gem_exec_fair@basic-throt...@rcs0.html

  * igt@gem_exec_flush@basic-batch-kernel-default-cmd:
- shard-snb:  NOTRUN -> [SKIP][20] ([fdo#109271]) +355 similar 
issues
   [20]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/shard-snb6/igt@gem_exec_fl...@basic-batch-kernel-default-cmd.html

  * igt@gem_exec_params@no-vebox:
- shard-skl:  NOTRUN -> [SKIP][21] ([fdo#109271]) +126 similar 
issues
   [21]: 

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for Revert "drm/i915: Propagate errors on awaiting already signaled fences"

2021-03-05 Thread Patchwork
== Series Details ==

Series: Revert "drm/i915: Propagate errors on awaiting already signaled fences"
URL   : https://patchwork.freedesktop.org/series/87704/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
d9e330a82c56 Revert "drm/i915: Propagate errors on awaiting already signaled 
fences"
-:44: WARNING:FROM_SIGN_OFF_MISMATCH: From:/Signed-off-by: email address 
mismatch: 'From: Jason Ekstrand ' != 'Signed-off-by: 
Jason Ekstrand '

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


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] Revert "drm/i915: Propagate errors on awaiting already signaled fences"

2021-03-05 Thread Jason Ekstrand
This reverts commit 9e31c1fe45d555a948ff66f1f0e3fe1f83ca63f7.  Ever
since that commit, we've been having issues where a hang in one client
can propagate to another.  In particular, a hang in an app can propagate
to the X server which causes the whole desktop to lock up.

Signed-off-by: Jason Ekstrand 
Reported-by: Marcin Slusarz 
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3080
Fixes: 9e31c1fe45d5 ("drm/i915: Propagate errors on awaiting already signaled 
fences")
---
 drivers/gpu/drm/i915/i915_request.c | 8 ++--
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_request.c 
b/drivers/gpu/drm/i915/i915_request.c
index e7b4c4bc41a64..870d6083bb57e 100644
--- a/drivers/gpu/drm/i915/i915_request.c
+++ b/drivers/gpu/drm/i915/i915_request.c
@@ -1232,10 +1232,8 @@ i915_request_await_execution(struct i915_request *rq,
 
do {
fence = *child++;
-   if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, >flags)) {
-   i915_sw_fence_set_error_once(>submit, fence->error);
+   if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, >flags))
continue;
-   }
 
if (fence->context == rq->fence.context)
continue;
@@ -1333,10 +1331,8 @@ i915_request_await_dma_fence(struct i915_request *rq, 
struct dma_fence *fence)
 
do {
fence = *child++;
-   if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, >flags)) {
-   i915_sw_fence_set_error_once(>submit, fence->error);
+   if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, >flags))
continue;
-   }
 
/*
 * Requests on the same timeline are explicitly ordered, along
-- 
2.29.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: More SAGV related fixes/cleanups

2021-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: More SAGV related fixes/cleanups
URL   : https://patchwork.freedesktop.org/series/87699/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9836 -> Patchwork_19760


Summary
---

  **SUCCESS**

  No regressions found.

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

Possible new issues
---

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

### IGT changes ###

 Suppressed 

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live@active:
- {fi-ehl-1}: [PASS][1] -> [DMESG-FAIL][2]
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-ehl-1/igt@i915_selftest@l...@active.html
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/fi-ehl-1/igt@i915_selftest@l...@active.html

  
Known issues


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

### IGT changes ###

 Issues hit 

  * igt@gem_exec_fence@basic-busy@bcs0:
- fi-kbl-soraka:  NOTRUN -> [SKIP][3] ([fdo#109271]) +23 similar issues
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/fi-kbl-soraka/igt@gem_exec_fence@basic-b...@bcs0.html

  * igt@gem_exec_gttfill@basic:
- fi-kbl-8809g:   [PASS][4] -> [TIMEOUT][5] ([i915#3145]) +1 similar 
issue
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-kbl-8809g/igt@gem_exec_gttf...@basic.html
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/fi-kbl-8809g/igt@gem_exec_gttf...@basic.html

  * 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_19760/fi-kbl-soraka/igt@gem_huc_c...@huc-copy.html

  * igt@i915_selftest@live@client:
- fi-glk-dsi: [PASS][7] -> [DMESG-FAIL][8] ([i915#3047])
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-glk-dsi/igt@i915_selftest@l...@client.html
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/fi-glk-dsi/igt@i915_selftest@l...@client.html

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

  * igt@kms_chamelium@common-hpd-after-suspend:
- fi-kbl-soraka:  NOTRUN -> [SKIP][10] ([fdo#109271] / [fdo#111827]) +8 
similar issues
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/fi-kbl-soraka/igt@kms_chamel...@common-hpd-after-suspend.html

  * igt@kms_frontbuffer_tracking@basic:
- fi-kbl-soraka:  NOTRUN -> [FAIL][11] ([i915#49])
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/fi-kbl-soraka/igt@kms_frontbuffer_track...@basic.html

  * igt@kms_pipe_crc_basic@compare-crc-sanitycheck-pipe-d:
- fi-kbl-soraka:  NOTRUN -> [SKIP][12] ([fdo#109271] / [i915#533])
   [12]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/fi-kbl-soraka/igt@kms_pipe_crc_ba...@compare-crc-sanitycheck-pipe-d.html

  
 Possible fixes 

  * igt@gem_linear_blits@basic:
- fi-kbl-8809g:   [TIMEOUT][13] ([i915#2502]) -> [PASS][14]
   [13]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-kbl-8809g/igt@gem_linear_bl...@basic.html
   [14]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/fi-kbl-8809g/igt@gem_linear_bl...@basic.html

  
 Warnings 

  * igt@gem_tiled_blits@basic:
- fi-kbl-8809g:   [TIMEOUT][15] ([i915#3145]) -> [TIMEOUT][16] 
([i915#2502] / [i915#3145])
   [15]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9836/fi-kbl-8809g/igt@gem_tiled_bl...@basic.html
   [16]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19760/fi-kbl-8809g/igt@gem_tiled_bl...@basic.html

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

  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
  [i915#2089]: https://gitlab.freedesktop.org/drm/intel/issues/2089
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2291]: https://gitlab.freedesktop.org/drm/intel/issues/2291
  [i915#2502]: https://gitlab.freedesktop.org/drm/intel/issues/2502
  [i915#2505]: https://gitlab.freedesktop.org/drm/intel/issues/2505
  [i915#3047]: https://gitlab.freedesktop.org/drm/intel/issues/3047
  [i915#3145]: https://gitlab.freedesktop.org/drm/intel/issues/3145
  [i915#49]: https://gitlab.freedesktop.org/drm/intel/issues/49
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533


Participating hosts (43 -> 39)

Re: [Intel-gfx] [patch 2/7] drm/vmgfx: Replace kmap_atomic()

2021-03-05 Thread Roland Scheidegger
On 03.03.21 14:20, Thomas Gleixner wrote:
> From: Thomas Gleixner 
> 
> There is no reason to disable pagefaults and preemption as a side effect of
> kmap_atomic_prot().
> 
> Use kmap_local_page_prot() instead and document the reasoning for the
> mapping usage with the given pgprot.
> 
> Remove the NULL pointer check for the map. These functions return a valid
> address for valid pages and the return was bogus anyway as it would have
> left preemption and pagefaults disabled.
> 
> Signed-off-by: Thomas Gleixner 
> Cc: VMware Graphics 
> Cc: Roland Scheidegger 
> Cc: Zack Rusin 
> Cc: David Airlie 
> Cc: Daniel Vetter 
> Cc: dri-de...@lists.freedesktop.org
> ---
>  drivers/gpu/drm/vmwgfx/vmwgfx_blit.c |   30 --
>  1 file changed, 12 insertions(+), 18 deletions(-)
> 
> --- a/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c
> +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_blit.c
> @@ -375,12 +375,12 @@ static int vmw_bo_cpu_blit_line(struct v
>   copy_size = min_t(u32, copy_size, PAGE_SIZE - src_page_offset);
>  
>   if (unmap_src) {
> - kunmap_atomic(d->src_addr);
> + kunmap_local(d->src_addr);
>   d->src_addr = NULL;
>   }
>  
>   if (unmap_dst) {
> - kunmap_atomic(d->dst_addr);
> + kunmap_local(d->dst_addr);
>   d->dst_addr = NULL;
>   }
>  
> @@ -388,12 +388,8 @@ static int vmw_bo_cpu_blit_line(struct v
>   if (WARN_ON_ONCE(dst_page >= d->dst_num_pages))
>   return -EINVAL;
>  
> - d->dst_addr =
> - kmap_atomic_prot(d->dst_pages[dst_page],
> -  d->dst_prot);
> - if (!d->dst_addr)
> - return -ENOMEM;
> -
> + d->dst_addr = 
> kmap_local_page_prot(d->dst_pages[dst_page],
> +d->dst_prot);
>   d->mapped_dst = dst_page;
>   }
>  
> @@ -401,12 +397,8 @@ static int vmw_bo_cpu_blit_line(struct v
>   if (WARN_ON_ONCE(src_page >= d->src_num_pages))
>   return -EINVAL;
>  
> - d->src_addr =
> - kmap_atomic_prot(d->src_pages[src_page],
> -  d->src_prot);
> - if (!d->src_addr)
> - return -ENOMEM;
> -
> + d->src_addr = 
> kmap_local_page_prot(d->src_pages[src_page],
> +d->src_prot);
>   d->mapped_src = src_page;
>   }
>   diff->do_cpy(diff, d->dst_addr + dst_page_offset,
> @@ -436,8 +428,10 @@ static int vmw_bo_cpu_blit_line(struct v
>   *
>   * Performs a CPU blit from one buffer object to another avoiding a full
>   * bo vmap which may exhaust- or fragment vmalloc space.
> - * On supported architectures (x86), we're using kmap_atomic which avoids
> - * cross-processor TLB- and cache flushes and may, on non-HIGHMEM systems
> + *
> + * On supported architectures (x86), we're using kmap_local_prot() which
> + * avoids cross-processor TLB- and cache flushes. kmap_local_prot() will
> + * either map a highmem page with the proper pgprot on HIGHMEM=y systems or
>   * reference already set-up mappings.
>   *
>   * Neither of the buffer objects may be placed in PCI memory
> @@ -500,9 +494,9 @@ int vmw_bo_cpu_blit(struct ttm_buffer_ob
>   }
>  out:
>   if (d.src_addr)
> - kunmap_atomic(d.src_addr);
> + kunmap_local(d.src_addr);
>   if (d.dst_addr)
> - kunmap_atomic(d.dst_addr);
> + kunmap_local(d.dst_addr);
>  
>   return ret;
>  }
> 
> 

Seems reasonable to me.
Reviewed-by: Roland Scheidegger 

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915: More SAGV related fixes/cleanups

2021-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: More SAGV related fixes/cleanups
URL   : https://patchwork.freedesktop.org/series/87699/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
5c14f9d5eac8 drm/i915: Fix enabled_planes bitmask
ebc6a3e5fe6d drm/i915: Tighten SAGV constraint for pre-tgl
6316c8608f20 drm/i915: Check SAGV wm min_ddb_alloc rather than plane_res_b
dca8ca1685be drm/i915: Calculate min_ddb_alloc for trans_wm
0531f5094e07 drm/i915: Extract skl_check_wm_level() and 
skl_check_nv12_wm_level()
42e654ae9c91 drm/i915: s/plane_res_b/blocks/ etc.
-:385: WARNING:LONG_LINE: line length of 107 exceeds 100 columns
#385: FILE: drivers/gpu/drm/i915/intel_pm.c:5955:
+   enast(old_wm->sagv.trans_wm.ignore_lines), 
old_wm->sagv.trans_wm.lines,

-:396: WARNING:LONG_LINE: line length of 108 exceeds 100 columns
#396: FILE: drivers/gpu/drm/i915/intel_pm.c:5966:
+   enast(new_wm->sagv.trans_wm.ignore_lines), 
new_wm->sagv.trans_wm.lines);

total: 0 errors, 2 warnings, 0 checks, 402 lines checked


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v3] drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9

2021-03-05 Thread Tvrtko Ursulin


On 05/03/2021 15:24, Chiou, Cooper wrote:

After switched to ffs from fls in "patch 
v5"(https://patchwork.freedesktop.org/series/81764/#rev7), now CI result is PASS no 
regression in wa_verify warning.

@Chen, Rong
Could you please run “phoronix-test-suite.supertuxkart.1024x768.Fullscreen.Ultimate.1.GranParadisoIsland.frames_per_second” with this latest patch v5 on test box to see if any performance impact. 


We need testing on more that one box I'm afraid. Need to cover different 
fusing configs of Gen9 with and without the patch. I don't have any 
useful ideas on how to do it though. :(


Regards,

Tvrtko
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 0/4] drm/i915: Silence pipe tracepoint WARNs

2021-03-05 Thread Ville Syrjälä
On Thu, Mar 04, 2021 at 02:20:22PM -0500, Steven Rostedt wrote:
> On Thu,  4 Mar 2021 19:04:17 +0200
> Ville Syrjala  wrote:
> 
> > From: Ville Syrjälä 
> > 
> > I believe this should silence the WARN spew from the
> > pipe disable tracepoint Steve reported. And I tossed in
> > a few other minor improvements as well.
> > 
> > Cc: Steven Rostedt 
> 
> It seemed to have stopped the general protection faults when tracing all
> events on my machine.
> 
> Reported-by: Steven Rostedt (VMware) 
> Tested-by: Steven Rostedt (VMware) 

Series pushed to drm-intel-next. Thanks for reporting the problem.

> 
> -- Steve
> 
> > 
> > Ville Syrjälä (4):
> >   drm/i915: Move pipe enable/disable tracepoints to
> > intel_crtc_vblank_{on,off}()
> >   drm/i915: Don't try to query the frame counter for disabled pipes
> >   drm/i915: Return zero as the scanline counter for disabled pipes
> >   drm/i915: Fix DSI TE max_vblank_count handling
> > 
> >  drivers/gpu/drm/i915/display/intel_crtc.c| 24 +---
> >  drivers/gpu/drm/i915/display/intel_display.c |  8 +--
> >  drivers/gpu/drm/i915/i915_irq.c  |  2 +-
> >  3 files changed, 23 insertions(+), 11 deletions(-)
> > 

-- 
Ville Syrjälä
Intel
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 4/6] drm/i915: Calculate min_ddb_alloc for trans_wm

2021-03-05 Thread Ville Syrjala
From: Ville Syrjälä 

Let's make all the "do we have enough DDB for this WM level?"
checks use min_ddb_alloc. To achieve that we need to populate
this for the transition watermarks as well.

Cc: Stanislav Lisovskiy 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/intel_pm.c | 8 +---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 36601e0a5073..38a6feced74f 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4986,13 +4986,13 @@ skl_allocate_plane_ddb(struct intel_atomic_state *state,
struct skl_plane_wm *wm =
_state->wm.skl.optimal.planes[plane_id];
 
-   if (wm->trans_wm.plane_res_b >= total[plane_id])
+   if (wm->trans_wm.min_ddb_alloc > total[plane_id])
memset(>trans_wm, 0, sizeof(wm->trans_wm));
 
if (wm->sagv.wm0.min_ddb_alloc > total[plane_id])
memset(>sagv.wm0, 0, sizeof(wm->sagv.wm0));
 
-   if (wm->sagv.trans_wm.plane_res_b >= total[plane_id])
+   if (wm->sagv.trans_wm.min_ddb_alloc > total[plane_id])
memset(>sagv.trans_wm, 0, 
sizeof(wm->sagv.trans_wm));
}
 
@@ -5404,13 +5404,15 @@ static void skl_compute_transition_wm(struct 
drm_i915_private *dev_priv,
} else {
res_blocks = wm0_sel_res_b + trans_offset_b;
}
+   res_blocks++;
 
/*
 * Just assume we can enable the transition watermark.  After
 * computing the DDB we'll come back and disable it if that
 * assumption turns out to be false.
 */
-   trans_wm->plane_res_b = res_blocks + 1;
+   trans_wm->plane_res_b = res_blocks;
+   trans_wm->min_ddb_alloc = max_t(u16, wm0->min_ddb_alloc, res_blocks + 
1);
trans_wm->plane_en = true;
 }
 
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 6/6] drm/i915: s/plane_res_b/blocks/ etc.

2021-03-05 Thread Ville Syrjala
From: Ville Syrjälä 

Rename a bunch of the skl+ watermark struct members to
have sensible names. Avoids me having to think what
plane_res_b/etc. means.

Cc: Stanislav Lisovskiy 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_display.c  |  24 +--
 .../drm/i915/display/intel_display_types.h|   6 +-
 drivers/gpu/drm/i915/intel_pm.c   | 198 +-
 3 files changed, 112 insertions(+), 116 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_display.c 
b/drivers/gpu/drm/i915/display/intel_display.c
index 076d381d3387..ad6567f04bfa 100644
--- a/drivers/gpu/drm/i915/display/intel_display.c
+++ b/drivers/gpu/drm/i915/display/intel_display.c
@@ -9433,12 +9433,12 @@ static void verify_wm_state(struct intel_crtc *crtc,
drm_err(_priv->drm,
"[PLANE:%d:%s] mismatch in WM%d (expected e=%d 
b=%u l=%u, got e=%d b=%u l=%u)\n",
plane->base.base.id, plane->base.name, level,
-   sw_wm_level->plane_en,
-   sw_wm_level->plane_res_b,
-   sw_wm_level->plane_res_l,
-   hw_wm_level->plane_en,
-   hw_wm_level->plane_res_b,
-   hw_wm_level->plane_res_l);
+   sw_wm_level->enable,
+   sw_wm_level->blocks,
+   sw_wm_level->lines,
+   hw_wm_level->enable,
+   hw_wm_level->blocks,
+   hw_wm_level->lines);
}
 
hw_wm_level = >wm.planes[plane->id].trans_wm;
@@ -9448,12 +9448,12 @@ static void verify_wm_state(struct intel_crtc *crtc,
drm_err(_priv->drm,
"[PLANE:%d:%s] mismatch in trans WM (expected 
e=%d b=%u l=%u, got e=%d b=%u l=%u)\n",
plane->base.base.id, plane->base.name,
-   sw_wm_level->plane_en,
-   sw_wm_level->plane_res_b,
-   sw_wm_level->plane_res_l,
-   hw_wm_level->plane_en,
-   hw_wm_level->plane_res_b,
-   hw_wm_level->plane_res_l);
+   sw_wm_level->enable,
+   sw_wm_level->blocks,
+   sw_wm_level->lines,
+   hw_wm_level->enable,
+   hw_wm_level->blocks,
+   hw_wm_level->lines);
}
 
/* DDB */
diff --git a/drivers/gpu/drm/i915/display/intel_display_types.h 
b/drivers/gpu/drm/i915/display/intel_display_types.h
index 8d9113fa82c7..b6eaa8ee2b66 100644
--- a/drivers/gpu/drm/i915/display/intel_display_types.h
+++ b/drivers/gpu/drm/i915/display/intel_display_types.h
@@ -721,9 +721,9 @@ struct intel_pipe_wm {
 
 struct skl_wm_level {
u16 min_ddb_alloc;
-   u16 plane_res_b;
-   u8 plane_res_l;
-   bool plane_en;
+   u16 blocks;
+   u8 lines;
+   bool enable;
bool ignore_lines;
bool can_sagv;
 };
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 3e26d8b667a1..559bc3ba9a74 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3893,12 +3893,12 @@ static bool skl_crtc_can_enable_sagv(const struct 
intel_crtc_state *crtc_state)
int level;
 
/* Skip this plane if it's not enabled */
-   if (!wm->wm[0].plane_en)
+   if (!wm->wm[0].enable)
continue;
 
/* Find the highest enabled wm level for this plane */
for (level = ilk_wm_max_level(dev_priv);
-!wm->wm[level].plane_en; --level)
+!wm->wm[level].enable; --level)
 { }
 
/* Highest common enabled wm level for all planes */
@@ -3917,7 +3917,7 @@ static bool skl_crtc_can_enable_sagv(const struct 
intel_crtc_state *crtc_state)
 * All enabled planes must have enabled a common wm level that
 * can tolerate memory latencies higher than sagv_block_time_us
 */
-   if (wm->wm[0].plane_en && !wm->wm[max_level].can_sagv)
+   if (wm->wm[0].enable && !wm->wm[max_level].can_sagv)
return false;
}
 
@@ -3936,7 +3936,7 @@ static bool tgl_crtc_can_enable_sagv(const struct 
intel_crtc_state *crtc_state)
const struct skl_plane_wm *wm =
_state->wm.skl.optimal.planes[plane_id];
 
-   if (wm->wm[0].plane_en && !wm->sagv.wm0.plane_en)
+   if (wm->wm[0].enable && !wm->sagv.wm0.enable)

[Intel-gfx] [PATCH 5/6] drm/i915: Extract skl_check_wm_level() and skl_check_nv12_wm_level()

2021-03-05 Thread Ville Syrjala
From: Ville Syrjälä 

Make the code more typo proof by extracting small helpers that
do the "do we have enough DDB for the WM level?" checks in
a consistent manner.

Cc: Stanislav Lisovskiy 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/intel_pm.c | 58 -
 1 file changed, 35 insertions(+), 23 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 38a6feced74f..3e26d8b667a1 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4782,6 +4782,36 @@ skl_plane_trans_wm(const struct skl_pipe_wm *pipe_wm,
return >trans_wm;
 }
 
+/*
+ * We only disable the watermarks for each plane if
+ * they exceed the ddb allocation of said plane. This
+ * is done so that we don't end up touching cursor
+ * watermarks needlessly when some other plane reduces
+ * our max possible watermark level.
+ *
+ * Bspec has this to say about the PLANE_WM enable bit:
+ * "All the watermarks at this level for all enabled
+ *  planes must be enabled before the level will be used."
+ * So this is actually safe to do.
+ */
+static void
+skl_check_wm_level(struct skl_wm_level *wm, u64 total)
+{
+   if (wm->min_ddb_alloc > total)
+   memset(wm, 0, sizeof(*wm));
+}
+
+static void
+skl_check_nv12_wm_level(struct skl_wm_level *wm, struct skl_wm_level *uv_wm,
+   u64 total, u64 uv_total)
+{
+   if (wm->min_ddb_alloc > total ||
+   uv_wm->min_ddb_alloc > uv_total) {
+   memset(wm, 0, sizeof(*wm));
+   memset(uv_wm, 0, sizeof(*uv_wm));
+   }
+}
+
 static int
 skl_allocate_plane_ddb(struct intel_atomic_state *state,
   struct intel_crtc *crtc)
@@ -4949,21 +4979,8 @@ skl_allocate_plane_ddb(struct intel_atomic_state *state,
struct skl_plane_wm *wm =
_state->wm.skl.optimal.planes[plane_id];
 
-   /*
-* We only disable the watermarks for each plane if
-* they exceed the ddb allocation of said plane. This
-* is done so that we don't end up touching cursor
-* watermarks needlessly when some other plane reduces
-* our max possible watermark level.
-*
-* Bspec has this to say about the PLANE_WM enable bit:
-* "All the watermarks at this level for all enabled
-*  planes must be enabled before the level will be 
used."
-* So this is actually safe to do.
-*/
-   if (wm->wm[level].min_ddb_alloc > total[plane_id] ||
-   wm->uv_wm[level].min_ddb_alloc > uv_total[plane_id])
-   memset(>wm[level], 0, 
sizeof(wm->wm[level]));
+   skl_check_nv12_wm_level(>wm[level], 
>uv_wm[level],
+   total[plane_id], 
uv_total[plane_id]);
 
/*
 * Wa_1408961008:icl, ehl
@@ -4986,14 +5003,9 @@ skl_allocate_plane_ddb(struct intel_atomic_state *state,
struct skl_plane_wm *wm =
_state->wm.skl.optimal.planes[plane_id];
 
-   if (wm->trans_wm.min_ddb_alloc > total[plane_id])
-   memset(>trans_wm, 0, sizeof(wm->trans_wm));
-
-   if (wm->sagv.wm0.min_ddb_alloc > total[plane_id])
-   memset(>sagv.wm0, 0, sizeof(wm->sagv.wm0));
-
-   if (wm->sagv.trans_wm.min_ddb_alloc > total[plane_id])
-   memset(>sagv.trans_wm, 0, 
sizeof(wm->sagv.trans_wm));
+   skl_check_wm_level(>trans_wm, total[plane_id]);
+   skl_check_wm_level(>sagv.wm0, total[plane_id]);
+   skl_check_wm_level(>sagv.trans_wm, total[plane_id]);
}
 
return 0;
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 3/6] drm/i915: Check SAGV wm min_ddb_alloc rather than plane_res_b

2021-03-05 Thread Ville Syrjala
From: Ville Syrjälä 

For non-transition watermarks we are supposed to check min_ddb_alloc
rather than plane_res_b when determining if we have enough DDB space
for it. A bit too much copy pasta made me check the wrong thing.

Cc: Stanislav Lisovskiy 
Fixes: df4a50a35e2c ("drm/i915: Zero out SAGV wm when we don't have enough DDB 
for it")
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/intel_pm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index b6e34d1701a0..36601e0a5073 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4989,7 +4989,7 @@ skl_allocate_plane_ddb(struct intel_atomic_state *state,
if (wm->trans_wm.plane_res_b >= total[plane_id])
memset(>trans_wm, 0, sizeof(wm->trans_wm));
 
-   if (wm->sagv.wm0.plane_res_b >= total[plane_id])
+   if (wm->sagv.wm0.min_ddb_alloc > total[plane_id])
memset(>sagv.wm0, 0, sizeof(wm->sagv.wm0));
 
if (wm->sagv.trans_wm.plane_res_b >= total[plane_id])
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 2/6] drm/i915: Tighten SAGV constraint for pre-tgl

2021-03-05 Thread Ville Syrjala
From: Ville Syrjälä 

Say we have two planes enabled with watermarks configured
as follows:
plane A: wm0=enabled/can_sagv=false, wm1=enabled/can_sagv=true
plane B: wm0=enabled/can_sagv=true,  wm1=disabled

This is possible since the latency we use to calculate
can_sagv may not be the same for both planes due to
skl_needs_memory_bw_wa().

In this case skl_crtc_can_enable_sagv() will see that
both planes have enabled at least one watermark level
with can_sagv==true, and thus proceeds to allow SAGV.
However, since plane B does not have wm1 enabled
plane A can't actually use it either. Thus we are
now running with SAGV enabled, but plane A can't
actually tolerate the extra latency it imposes.

To remedy this only allow SAGV on if the highest common
enabled watermark level for all active planes can tolerate
the extra SAGV latency.

Cc: Stanislav Lisovskiy 
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/intel_pm.c | 20 
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 854ffecd98d9..b6e34d1701a0 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -3876,6 +3876,7 @@ static bool skl_crtc_can_enable_sagv(const struct 
intel_crtc_state *crtc_state)
struct intel_crtc *crtc = to_intel_crtc(crtc_state->uapi.crtc);
struct drm_i915_private *dev_priv = to_i915(crtc->base.dev);
enum plane_id plane_id;
+   int max_level = INT_MAX;
 
if (!intel_has_sagv(dev_priv))
return false;
@@ -3900,12 +3901,23 @@ static bool skl_crtc_can_enable_sagv(const struct 
intel_crtc_state *crtc_state)
 !wm->wm[level].plane_en; --level)
 { }
 
+   /* Highest common enabled wm level for all planes */
+   max_level = min(level, max_level);
+   }
+
+   /* No enabled planes? */
+   if (max_level == INT_MAX)
+   return true;
+
+   for_each_plane_id_on_crtc(crtc, plane_id) {
+   const struct skl_plane_wm *wm =
+   _state->wm.skl.optimal.planes[plane_id];
+
/*
-* If any of the planes on this pipe don't enable wm levels that
-* incur memory latencies higher than sagv_block_time_us we
-* can't enable SAGV.
+* All enabled planes must have enabled a common wm level that
+* can tolerate memory latencies higher than sagv_block_time_us
 */
-   if (!wm->wm[level].can_sagv)
+   if (wm->wm[0].plane_en && !wm->wm[max_level].can_sagv)
return false;
}
 
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 1/6] drm/i915: Fix enabled_planes bitmask

2021-03-05 Thread Ville Syrjala
From: Ville Syrjälä 

The enabled_planes bitmask was supposed to track logically enabled
planes (ie. fb!=NULL and crtc!=NULL), but instead we end up putting
even disabled planes into the bitmask since
intel_plane_atomic_check_with_state() only takes the early exit
if the plane was disabled and stays disabled. I think I misread
the early said codepath to exit whenever the plane is logically
disabled, which is not true.

So let's fix this up properly and set the bit only when the plane
actually is logically enabled.

Cc: Manasi Navare 
Fixes: ee42ec19ca2e ("drm/i915: Track logically enabled planes for hw state")
Signed-off-by: Ville Syrjälä 
---
 drivers/gpu/drm/i915/display/intel_atomic_plane.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_atomic_plane.c 
b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
index 4683f98f7e54..c3f2962aa1eb 100644
--- a/drivers/gpu/drm/i915/display/intel_atomic_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_atomic_plane.c
@@ -317,12 +317,13 @@ int intel_plane_atomic_check_with_state(const struct 
intel_crtc_state *old_crtc_
if (!new_plane_state->hw.crtc && !old_plane_state->hw.crtc)
return 0;
 
-   new_crtc_state->enabled_planes |= BIT(plane->id);
-
ret = plane->check_plane(new_crtc_state, new_plane_state);
if (ret)
return ret;
 
+   if (fb)
+   new_crtc_state->enabled_planes |= BIT(plane->id);
+
/* FIXME pre-g4x don't work like this */
if (new_plane_state->uapi.visible)
new_crtc_state->active_planes |= BIT(plane->id);
-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 0/6] drm/i915: More SAGV related fixes/cleanups

2021-03-05 Thread Ville Syrjala
From: Ville Syrjälä 

The SAGV watermark handling is still a bit of mess. Let's try to
clean it up a bit more, and in the process fix up a couple of
minor mishaps.

Ville Syrjälä (6):
  drm/i915: Fix enabled_planes bitmask
  drm/i915: Tighten SAGV constraint for pre-tgl
  drm/i915: Check SAGV wm min_ddb_alloc rather than plane_res_b
  drm/i915: Calculate min_ddb_alloc for trans_wm
  drm/i915: Extract skl_check_wm_level() and skl_check_nv12_wm_level()
  drm/i915: s/plane_res_b/blocks/ etc.

 .../gpu/drm/i915/display/intel_atomic_plane.c |   5 +-
 drivers/gpu/drm/i915/display/intel_display.c  |  24 +-
 .../drm/i915/display/intel_display_types.h|   6 +-
 drivers/gpu/drm/i915/intel_pm.c   | 272 ++
 4 files changed, 165 insertions(+), 142 deletions(-)

-- 
2.26.2

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v3] drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9

2021-03-05 Thread Chiou, Cooper
After switched to ffs from fls in "patch 
v5"(https://patchwork.freedesktop.org/series/81764/#rev7), now CI result is 
PASS no regression in wa_verify warning.

@Chen, Rong
Could you please run 
“phoronix-test-suite.supertuxkart.1024x768.Fullscreen.Ultimate.1.GranParadisoIsland.frames_per_second”
 with this latest patch v5 on test box to see if any performance impact. Thanks,

Best Regards,
Cooper

> Quoting Tvrtko Ursulin (2021-03-05 09:23:02)
> > I am not sure if PC8 and DMC could also be involved from what Cooper
> > was saying in a different thread. Maybe another CI run without the
> > DMC, both ffs and fls. Another for limiting cstates.
> 
> Disabling the dmc leaves the display code in an inconsistent state so we don't
> complete a BAT run; but since the warnings are thrown during boot we can
> say that disabling the dmc does clear up the workaround issues on
> ehl/jsl:
> 
> https://intel-gfx-ci.01.org/tree/drm-tip/Trybot_7612/fi-ehl-2/boot0.txt
> https://intel-gfx-ci.01.org/tree/drm-tip/Trybot_7612/fi-jsl-1/boot0.txt
> -Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v3] drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9

2021-03-05 Thread Chris Wilson
Quoting Chris Wilson (2021-03-05 12:20:45)
> Quoting Tvrtko Ursulin (2021-03-05 09:23:02)
> > I am not sure if PC8 and DMC could also be involved from what Cooper was 
> > saying in a different thread. Maybe another CI run without the DMC, both 
> > ffs and fls. Another for limiting cstates.
> 
> Disabling the dmc leaves the display code in an inconsistent state so we
> don't complete a BAT run; but since the warnings are thrown during boot
> we can say that disabling the dmc does clear up the workaround issues on
> ehl/jsl:
> 
> https://intel-gfx-ci.01.org/tree/drm-tip/Trybot_7612/fi-ehl-2/boot0.txt
> https://intel-gfx-ci.01.org/tree/drm-tip/Trybot_7612/fi-jsl-1/boot0.txt

Fwiw, disabling the dmc and using fls for gen9 is not enough to avoid
the warnings though:

https://intel-gfx-ci.01.org/tree/drm-tip/Trybot_7614/fi-cfl-8109u/igt@i915_selftest@live@memory_region.html

So far only ffs works for gen9 mcr.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9 (rev7)

2021-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9 
(rev7)
URL   : https://patchwork.freedesktop.org/series/81764/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9835 -> Patchwork_19759


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@semaphore:
- fi-bdw-5557u:   NOTRUN -> [SKIP][1] ([fdo#109271]) +26 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/fi-bdw-5557u/igt@amdgpu/amd_ba...@semaphore.html

  * igt@core_hotunplug@unbind-rebind:
- fi-bdw-5557u:   NOTRUN -> [WARN][2] ([i915#2283])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/fi-bdw-5557u/igt@core_hotunp...@unbind-rebind.html

  * igt@gem_exec_gttfill@basic:
- fi-kbl-8809g:   [PASS][3] -> [TIMEOUT][4] ([i915#3145])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/fi-kbl-8809g/igt@gem_exec_gttf...@basic.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/fi-kbl-8809g/igt@gem_exec_gttf...@basic.html

  * igt@kms_chamelium@dp-crc-fast:
- fi-bdw-5557u:   NOTRUN -> [SKIP][5] ([fdo#109271] / [fdo#111827]) +8 
similar issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/fi-bdw-5557u/igt@kms_chamel...@dp-crc-fast.html

  
 Possible fixes 

  * igt@gem_linear_blits@basic:
- fi-kbl-8809g:   [TIMEOUT][6] ([i915#2502]) -> [PASS][7]
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/fi-kbl-8809g/igt@gem_linear_bl...@basic.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/fi-kbl-8809g/igt@gem_linear_bl...@basic.html

  * igt@gem_tiled_fence_blits@basic:
- fi-kbl-8809g:   [TIMEOUT][8] ([i915#3145]) -> [PASS][9]
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/fi-kbl-8809g/igt@gem_tiled_fence_bl...@basic.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/fi-kbl-8809g/igt@gem_tiled_fence_bl...@basic.html

  * igt@i915_selftest@live@client:
- fi-bsw-nick:[DMESG-FAIL][10] -> [PASS][11]
   [10]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/fi-bsw-nick/igt@i915_selftest@l...@client.html
   [11]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/fi-bsw-nick/igt@i915_selftest@l...@client.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283
  [i915#2502]: https://gitlab.freedesktop.org/drm/intel/issues/2502
  [i915#3145]: https://gitlab.freedesktop.org/drm/intel/issues/3145


Participating hosts (44 -> 40)
--

  Missing(4): fi-ilk-m540 fi-bsw-cyan fi-bdw-samus fi-hsw-4200u 


Build changes
-

  * Linux: CI_DRM_9835 -> Patchwork_19759

  CI-20190529: 20190529
  CI_DRM_9835: 2757a24fdc1f5f5bbef4371b2a1aa8cf739f818a @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6024: d8e03fe437f0c328c96717a92ad97719c02ba2cd @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19759: 300cf9636d21fd419ed23b4039579a2d7928704f @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

300cf9636d21 drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for 
Gen9

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19759/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/gem: Fix fall-through warnings for Clang

2021-03-05 Thread Patchwork
== Series Details ==

Series: drm/i915/gem: Fix fall-through warnings for Clang
URL   : https://patchwork.freedesktop.org/series/87690/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_9835 -> Patchwork_19758


Summary
---

  **SUCCESS**

  No regressions found.

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

Known issues


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

### IGT changes ###

 Issues hit 

  * igt@amdgpu/amd_basic@semaphore:
- fi-bdw-5557u:   NOTRUN -> [SKIP][1] ([fdo#109271]) +26 similar issues
   [1]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/fi-bdw-5557u/igt@amdgpu/amd_ba...@semaphore.html

  * igt@core_hotunplug@unbind-rebind:
- fi-bdw-5557u:   NOTRUN -> [WARN][2] ([i915#2283])
   [2]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/fi-bdw-5557u/igt@core_hotunp...@unbind-rebind.html

  * igt@gem_exec_gttfill@basic:
- fi-kbl-8809g:   [PASS][3] -> [TIMEOUT][4] ([i915#3145])
   [3]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/fi-kbl-8809g/igt@gem_exec_gttf...@basic.html
   [4]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/fi-kbl-8809g/igt@gem_exec_gttf...@basic.html

  * igt@kms_chamelium@dp-crc-fast:
- fi-bdw-5557u:   NOTRUN -> [SKIP][5] ([fdo#109271] / [fdo#111827]) +8 
similar issues
   [5]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/fi-bdw-5557u/igt@kms_chamel...@dp-crc-fast.html

  
 Possible fixes 

  * igt@i915_selftest@live@client:
- fi-bsw-nick:[DMESG-FAIL][6] -> [PASS][7]
   [6]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/fi-bsw-nick/igt@i915_selftest@l...@client.html
   [7]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/fi-bsw-nick/igt@i915_selftest@l...@client.html

  
 Warnings 

  * igt@i915_pm_rpm@module-reload:
- fi-glk-dsi: [DMESG-WARN][8] ([i915#3143]) -> [DMESG-WARN][9] 
([i915#1982] / [i915#3143])
   [8]: 
https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_9835/fi-glk-dsi/igt@i915_pm_...@module-reload.html
   [9]: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/fi-glk-dsi/igt@i915_pm_...@module-reload.html

  
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
  [i915#2283]: https://gitlab.freedesktop.org/drm/intel/issues/2283
  [i915#3143]: https://gitlab.freedesktop.org/drm/intel/issues/3143
  [i915#3145]: https://gitlab.freedesktop.org/drm/intel/issues/3145


Participating hosts (44 -> 38)
--

  Missing(6): fi-ilk-m540 fi-hsw-4200u fi-byt-j1900 fi-bsw-cyan fi-icl-y 
fi-bdw-samus 


Build changes
-

  * Linux: CI_DRM_9835 -> Patchwork_19758

  CI-20190529: 20190529
  CI_DRM_9835: 2757a24fdc1f5f5bbef4371b2a1aa8cf739f818a @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_6024: d8e03fe437f0c328c96717a92ad97719c02ba2cd @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_19758: 8dc258c3615cd2356d3f057fc375754a147b7a75 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

8dc258c3615c drm/i915/gem: Fix fall-through warnings for Clang

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_19758/index.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v5] drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9

2021-03-05 Thread Cooper Chiou
WaProgramMgsrForCorrectSliceSpecificMmioReads applies for Gen9 to
resolve VP8 hardware encoding system hang up on GT1 sku for
ChromiumOS projects

Slice specific MMIO read inaccurate so MGSR needs to be programmed
appropriately to get correct reads from these slicet-related MMIOs.

It dictates that before any MMIO read into Slice/Subslice specific
registers, MCR packet control register(0xFDC) needs to be programmed
to point to any enabled slice/subslice pair, especially GT1 fused sku
since this issue can be reproduced on VP8 hardware encoding via ffmpeg
on ChromiumOS devices.
When exit PC7, MGSR will reset so that we have to skip fused subslice ID.

Reference: HSD#1508045018,1405586840, BSID#0575

Cc: Ville Syrjälä 
Cc: Rodrigo Vivi 
Cc: Jani Nikula 
Cc: Chris Wilson 
Cc: Tvrtko Ursulin 
Cc: William Tseng 
Cc: Lee Shawn C 

Signed-off-by: Cooper Chiou 
---
 drivers/gpu/drm/i915/gt/intel_workarounds.c | 37 +
 1 file changed, 37 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 3b4a7da60f0b..eb2a587b06b8 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -878,9 +878,46 @@ hsw_gt_workarounds_init(struct drm_i915_private *i915, 
struct i915_wa_list *wal)
wa_write_clr(wal, GEN7_FF_THREAD_MODE, GEN7_FF_VS_REF_CNT_FFME);
 }
 
+static void
+gen9_wa_init_mcr(struct drm_i915_private *i915, struct i915_wa_list *wal)
+{
+   const struct sseu_dev_info *sseu = >gt.info.sseu;
+   unsigned int slice, subslice;
+   u32 mcr, mcr_mask;
+
+   GEM_BUG_ON(INTEL_GEN(i915) < 9);
+
+   /*
+* WaProgramMgsrForCorrectSliceSpecificMmioReads:glk,kbl,cml
+* Before any MMIO read into slice/subslice specific registers, MCR
+* packet control register needs to be programmed to point to any
+* enabled s/ss pair. Otherwise, incorrect values will be returned.
+* This means each subsequent MMIO read will be forwarded to an
+* specific s/ss combination, but this is OK since these registers
+* are consistent across s/ss in almost all cases. In the rare
+* occasions, such as INSTDONE, where this value is dependent
+* on s/ss combo, the read should be done with read_subslice_reg.
+*/
+   slice = ffs(sseu->slice_mask) - 1;
+   GEM_BUG_ON(slice >= ARRAY_SIZE(sseu->subslice_mask));
+   subslice = ffs(intel_sseu_get_subslices(sseu, slice));
+   GEM_BUG_ON(!subslice);
+   subslice--;
+
+   mcr = GEN8_MCR_SLICE(slice) | GEN8_MCR_SUBSLICE(subslice);
+   mcr_mask = GEN8_MCR_SLICE_MASK | GEN8_MCR_SUBSLICE_MASK;
+
+   drm_dbg(>drm, "MCR slice:%d/subslice:%d = %x\n", slice, subslice, 
mcr);
+
+   wa_write_clr_set(wal, GEN8_MCR_SELECTOR, mcr_mask, mcr);
+}
+
 static void
 gen9_gt_workarounds_init(struct drm_i915_private *i915, struct i915_wa_list 
*wal)
 {
+   /* WaProgramMgsrForCorrectSliceSpecificMmioReads:glk,kbl,cml,gen9 */
+   gen9_wa_init_mcr(i915, wal);
+
/* WaDisableKillLogic:bxt,skl,kbl */
if (!IS_COFFEELAKE(i915) && !IS_COMETLAKE(i915))
wa_write_or(wal,
-- 
2.17.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH RESEND][next] drm/i915/gem: Fix fall-through warnings for Clang

2021-03-05 Thread Gustavo A. R. Silva
In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a return statement instead of letting the code fall
through to the next case.

Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva 
---
 drivers/gpu/drm/i915/gem/i915_gem_shrinker.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c 
b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
index c2dba1cd9532..2a14a5c94a8a 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
@@ -60,6 +60,7 @@ static void try_to_writeback(struct drm_i915_gem_object *obj,
switch (obj->mm.madv) {
case I915_MADV_DONTNEED:
i915_gem_object_truncate(obj);
+   return;
case __I915_MADV_PURGED:
return;
}
-- 
2.27.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v3] drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9

2021-03-05 Thread Chris Wilson
Quoting Tvrtko Ursulin (2021-03-05 09:23:02)
> I am not sure if PC8 and DMC could also be involved from what Cooper was 
> saying in a different thread. Maybe another CI run without the DMC, both 
> ffs and fls. Another for limiting cstates.

Disabling the dmc leaves the display code in an inconsistent state so we
don't complete a BAT run; but since the warnings are thrown during boot
we can say that disabling the dmc does clear up the workaround issues on
ehl/jsl:

https://intel-gfx-ci.01.org/tree/drm-tip/Trybot_7612/fi-ehl-2/boot0.txt
https://intel-gfx-ci.01.org/tree/drm-tip/Trybot_7612/fi-jsl-1/boot0.txt
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v2 6/7] drm/i915: rename DISP_STEPPING->DISPLAY_STEP and GT_STEPPING->GT_STEP

2021-03-05 Thread Chris Wilson
Quoting Jani Nikula (2021-02-24 08:46:55)
> On Tue, 23 Feb 2021, Lucas De Marchi  wrote:
> > On Tue, Feb 23, 2021 at 05:35:11PM +0200, Jani Nikula wrote:
> >>Matter of taste. STEP matches the enums.
> >>
> >>Signed-off-by: Jani Nikula 
> >>---
> >> drivers/gpu/drm/i915/display/intel_display_power.c |  2 +-
> >> drivers/gpu/drm/i915/display/intel_psr.c   |  4 ++--
> >> drivers/gpu/drm/i915/display/skl_universal_plane.c |  2 +-
> >> drivers/gpu/drm/i915/gt/intel_workarounds.c| 10 +-
> >> drivers/gpu/drm/i915/i915_drv.h| 10 +-
> >> drivers/gpu/drm/i915/intel_device_info.c   |  2 +-
> >> drivers/gpu/drm/i915/intel_pm.c|  2 +-
> >> 7 files changed, 16 insertions(+), 16 deletions(-)
> >>
> >>diff --git a/drivers/gpu/drm/i915/display/intel_display_power.c 
> >>b/drivers/gpu/drm/i915/display/intel_display_power.c
> >>index f00c1750febd..1f7b2700947a 100644
> >>--- a/drivers/gpu/drm/i915/display/intel_display_power.c
> >>+++ b/drivers/gpu/drm/i915/display/intel_display_power.c
> >>@@ -5349,7 +5349,7 @@ static void tgl_bw_buddy_init(struct drm_i915_private 
> >>*dev_priv)
> >>
> >>  if (IS_ALDERLAKE_S(dev_priv) ||
> >>  IS_DG1_REVID(dev_priv, DG1_REVID_A0, DG1_REVID_A0) ||
> >>- IS_TGL_DISP_STEPPING(dev_priv, STEP_A0, STEP_B0))
> >>+ IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_B0))
> >>  /* Wa_1409767108:tgl,dg1,adl-s */
> >>  table = wa_1409767108_buddy_page_masks;
> >>  else
> >>diff --git a/drivers/gpu/drm/i915/display/intel_psr.c 
> >>b/drivers/gpu/drm/i915/display/intel_psr.c
> >>index 7c6e561f86c1..da5084b54eb6 100644
> >>--- a/drivers/gpu/drm/i915/display/intel_psr.c
> >>+++ b/drivers/gpu/drm/i915/display/intel_psr.c
> >>@@ -548,7 +548,7 @@ static void hsw_activate_psr2(struct intel_dp *intel_dp)
> >>
> >>  if (intel_dp->psr.psr2_sel_fetch_enabled) {
> >>  /* WA 1408330847 */
> >>- if (IS_TGL_DISP_STEPPING(dev_priv, STEP_A0, STEP_A0) ||
> >>+ if (IS_TGL_DISPLAY_STEP(dev_priv, STEP_A0, STEP_A0) ||
> >
> > I always hated the DISP vs DISPLAY. It should be in the commit message.
> >
> > But if you are doing the s/STEPPING/STEP/, shouldn't the filename also use
> > step and all the functions/structs?
> 
> To be honest, the rename came as an afterthought, after Aditya (I think)
> added the STEP_X enums.
> 
> For me step everywhere sounds good, I wonder what the native speakers
> think.

IS_DISPLAY_STEPPING(STEP_X) is more flamboyant than
IS_DISPLAY_STEP(STEP_X), but we often make the concession for brevity
and in this case the consistency between macro and enum beats the
inconsistency in English. So STEP reads as a perfectly acceptable synonym
for STEPPING.
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v3] drm/i915: Enable WaProgramMgsrForCorrectSliceSpecificMmioReads for Gen9

2021-03-05 Thread Tvrtko Ursulin


On 05/03/2021 00:53, Chris Wilson wrote:

Quoting Chris Wilson (2021-03-04 11:56:16)

Quoting Chris Wilson (2021-03-04 09:19:24)

Quoting Tvrtko Ursulin (2021-03-04 09:12:26)


On 02/03/2021 06:27, Cooper Chiou wrote:

WaProgramMgsrForCorrectSliceSpecificMmioReads applies for Gen9 to
resolve VP8 hardware encoding system hang up on GT1 sku for
ChromiumOS projects

Slice specific MMIO read inaccurate so MGSR needs to be programmed
appropriately to get correct reads from these slicet-related MMIOs.

It dictates that before any MMIO read into Slice/Subslice specific
registers, MCR packet control register(0xFDC) needs to be programmed
to point to any enabled slice/subslice pair, especially GT1 fused sku
since this issue can be reproduced on VP8 hardware encoding via ffmpeg
on ChromiumOS devices.
When exit PC7, MGSR will reset so that we have to skip fused subslice ID.

Reference: HSD#1508045018,1405586840, BSID#0575

Cc: Ville Syrjälä 
Cc: Rodrigo Vivi 
Cc: Jani Nikula 
Cc: Chris Wilson 
Cc: Tvrtko Ursulin 
Cc: William Tseng 
Cc: Lee Shawn C 

Signed-off-by: Cooper Chiou 
---
   drivers/gpu/drm/i915/gt/intel_workarounds.c | 38 +
   1 file changed, 38 insertions(+)

diff --git a/drivers/gpu/drm/i915/gt/intel_workarounds.c 
b/drivers/gpu/drm/i915/gt/intel_workarounds.c
index 3b4a7da60f0b..4ad598a727a6 100644
--- a/drivers/gpu/drm/i915/gt/intel_workarounds.c
+++ b/drivers/gpu/drm/i915/gt/intel_workarounds.c
@@ -878,9 +878,47 @@ hsw_gt_workarounds_init(struct drm_i915_private *i915, 
struct i915_wa_list *wal)
   wa_write_clr(wal, GEN7_FF_THREAD_MODE, GEN7_FF_VS_REF_CNT_FFME);
   }
   
+static void

+gen9_wa_init_mcr(struct drm_i915_private *i915, struct i915_wa_list *wal)
+{
+ const struct sseu_dev_info *sseu = >gt.info.sseu;
+ unsigned int slice, subslice;
+ u32 mcr, mcr_mask;
+
+ GEM_BUG_ON(INTEL_GEN(i915) < 9);
+
+ /*
+  * WaProgramMgsrForCorrectSliceSpecificMmioReads:glk,kbl,cml
+  * Before any MMIO read into slice/subslice specific registers, MCR
+  * packet control register needs to be programmed to point to any
+  * enabled s/ss pair. Otherwise, incorrect values will be returned.
+  * This means each subsequent MMIO read will be forwarded to an
+  * specific s/ss combination, but this is OK since these registers
+  * are consistent across s/ss in almost all cases. In the rare
+  * occasions, such as INSTDONE, where this value is dependent
+  * on s/ss combo, the read should be done with read_subslice_reg.
+  */
+ slice = fls(sseu->slice_mask) - 1;
+ GEM_BUG_ON(slice >= ARRAY_SIZE(sseu->subslice_mask));
+ subslice = fls(intel_sseu_get_subslices(sseu, slice));
+ GEM_BUG_ON(!subslice);
+ subslice--;
+
+ mcr = GEN8_MCR_SLICE(slice) | GEN8_MCR_SUBSLICE(subslice);
+ mcr_mask = GEN8_MCR_SLICE_MASK | GEN8_MCR_SUBSLICE_MASK;
+
+ drm_dbg(>drm, "MCR slice:%d/subslice:%d = %x\n", slice, subslice, 
mcr);
+
+ wa_write_clr_set(wal, GEN8_MCR_SELECTOR, mcr_mask, mcr);
+}


Have you considered reusing existing wa_init_mcr? Just needs the
top-level assert changed and otherwise it looks it would do the right
thing for Gen9. Advantage being a smaller patch and less code to carry.


That was the first patch, and fails for the same reason. The problem
would appear to be in the mcr_mask for gt3.


For the record, it appears to be an issue with fls vs ffs. Switching to
ffs also removes the warnings for workaround failures on ehl/jsl.


Of course the icl in farm2 started spewing warnigns, but the other icl
in farm1 were happy.


It figures yes, now I remember it was the shards which had a mix of ICL 
GT1/2 with different fusing which were exhibiting odd behaviour.


I have old patches around which a) try to program each WA in unicast 
mode (for all present ss), b) do verification for each present ss. Idea 
being to see if there are any patterns as to what writes land and which 
get lost. I don't think the results were conclusive back then but maybe 
I can try again.


I am not sure if PC8 and DMC could also be involved from what Cooper was 
saying in a different thread. Maybe another CI run without the DMC, both 
ffs and fls. Another for limiting cstates.


Regards,

Tvrtko
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 0/4] drm/i915: Silence pipe tracepoint WARNs

2021-03-05 Thread Jani Nikula
On Thu, 04 Mar 2021, Ville Syrjala  wrote:
> From: Ville Syrjälä 
>
> I believe this should silence the WARN spew from the
> pipe disable tracepoint Steve reported. And I tossed in
> a few other minor improvements as well.

On some of the patches I'll just have to take your word for what it says
in the commit messages, but the patches do what they say. On the series,

Reviewed-by: Jani Nikula 


>
> Cc: Steven Rostedt 
>
> Ville Syrjälä (4):
>   drm/i915: Move pipe enable/disable tracepoints to
> intel_crtc_vblank_{on,off}()
>   drm/i915: Don't try to query the frame counter for disabled pipes
>   drm/i915: Return zero as the scanline counter for disabled pipes
>   drm/i915: Fix DSI TE max_vblank_count handling
>
>  drivers/gpu/drm/i915/display/intel_crtc.c| 24 +---
>  drivers/gpu/drm/i915/display/intel_display.c |  8 +--
>  drivers/gpu/drm/i915/i915_irq.c  |  2 +-
>  3 files changed, 23 insertions(+), 11 deletions(-)

-- 
Jani Nikula, Intel Open Source Graphics Center
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx