All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/i915: Keep physical cursors pinned while in use
@ 2018-08-17  8:24 Chris Wilson
  2018-08-17  8:29 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Chris Wilson @ 2018-08-17  8:24 UTC (permalink / raw)
  To: intel-gfx

The optimisation inherent in commit 6a2c4232ece1 ("drm/i915: Make the
physical object coherent with GTT") relies on that once we allocated a
cursor we would have coherent, zero overhead access to the scanout plane
holding the cursor. That is we could then do the very frequent cursor
updates X enjoys with no indirection or kernel involvement. However,
that all hinges on the GGTT mmap of the cursor being pinned and not
require refaulting on each access -- handling such a page fault likely
requires the busy GGTT to be rearranged causing a stall. A very simple
fix is then to handle the physical cursor exactly like other cursors and
keep its vma pinned while active.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107600
References: 6a2c4232ece1 ("drm/i915: Make the physical object coherent with GTT")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
 drivers/gpu/drm/i915/intel_display.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 592b847db88e..d47ec9fd4af4 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -12966,8 +12966,11 @@ static int intel_plane_pin_fb(struct intel_plane_state *plane_state)
 	    INTEL_INFO(dev_priv)->cursor_needs_physical) {
 		struct drm_i915_gem_object *obj = intel_fb_obj(fb);
 		const int align = intel_cursor_alignment(dev_priv);
+		int err;
 
-		return i915_gem_object_attach_phys(obj, align);
+		err = i915_gem_object_attach_phys(obj, align);
+		if (err)
+			return err;
 	}
 
 	vma = intel_pin_and_fence_fb_obj(fb,
-- 
2.18.0

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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* ✗ Fi.CI.CHECKPATCH: warning for drm/i915: Keep physical cursors pinned while in use
  2018-08-17  8:24 [PATCH] drm/i915: Keep physical cursors pinned while in use Chris Wilson
@ 2018-08-17  8:29 ` Patchwork
  2018-08-17  8:47 ` ✓ Fi.CI.BAT: success " Patchwork
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-08-17  8:29 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Keep physical cursors pinned while in use
URL   : https://patchwork.freedesktop.org/series/48379/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
df341afb28f5 drm/i915: Keep physical cursors pinned while in use
-:21: WARNING:COMMIT_LOG_LONG_LINE: Possible unwrapped commit description (prefer a maximum 75 chars per line)
#21: 
References: 6a2c4232ece1 ("drm/i915: Make the physical object coherent with GTT")

-:21: ERROR:GIT_COMMIT_ID: Please use git commit description style 'commit <12+ chars of sha1> ("<title line>")' - ie: 'commit 6a2c4232ece1 ("drm/i915: Make the physical object coherent with GTT")'
#21: 
References: 6a2c4232ece1 ("drm/i915: Make the physical object coherent with GTT")

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

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* ✓ Fi.CI.BAT: success for drm/i915: Keep physical cursors pinned while in use
  2018-08-17  8:24 [PATCH] drm/i915: Keep physical cursors pinned while in use Chris Wilson
  2018-08-17  8:29 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
@ 2018-08-17  8:47 ` Patchwork
  2018-08-17 11:04 ` ✓ Fi.CI.IGT: " Patchwork
  2018-08-22 12:35 ` [PATCH] " Ville Syrjälä
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-08-17  8:47 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Keep physical cursors pinned while in use
URL   : https://patchwork.freedesktop.org/series/48379/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4684 -> Patchwork_9966 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/48379/revisions/1/mbox/

== Possible new issues ==

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

  === IGT changes ===

    ==== Possible regressions ====

    {igt@pm_rpm@module-reload}:
      fi-bxt-dsi:         NOTRUN -> WARN
      {fi-icl-u}:         NOTRUN -> WARN
      {fi-bdw-samus}:     NOTRUN -> DMESG-FAIL

    
== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@kms_frontbuffer_tracking@basic:
      {fi-byt-clapper}:   PASS -> FAIL (fdo#103167)

    {igt@kms_psr@primary_page_flip}:
      {fi-icl-u}:         NOTRUN -> FAIL (fdo#107383) +3

    {igt@kms_psr@sprite_plane_onoff}:
      {fi-bdw-samus}:     NOTRUN -> FAIL (fdo#107360)

    
    ==== Possible fixes ====

    igt@drv_selftest@live_hangcheck:
      fi-kbl-guc:         DMESG-FAIL (fdo#106947, fdo#106560) -> PASS
      fi-bxt-j4205:       DMESG-FAIL (fdo#106560) -> PASS

    igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
      fi-bxt-dsi:         INCOMPLETE (fdo#103927) -> PASS

    {igt@kms_psr@primary_mmap_gtt}:
      fi-cnl-psr:         DMESG-WARN (fdo#107372) -> PASS

    
    ==== Warnings ====

    {igt@kms_psr@primary_page_flip}:
      fi-cnl-psr:         DMESG-WARN (fdo#107372) -> DMESG-FAIL (fdo#107372)

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

  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#106560 https://bugs.freedesktop.org/show_bug.cgi?id=106560
  fdo#106947 https://bugs.freedesktop.org/show_bug.cgi?id=106947
  fdo#107360 https://bugs.freedesktop.org/show_bug.cgi?id=107360
  fdo#107372 https://bugs.freedesktop.org/show_bug.cgi?id=107372
  fdo#107383 https://bugs.freedesktop.org/show_bug.cgi?id=107383


== Participating hosts (52 -> 48) ==

  Additional (2): fi-icl-u fi-bdw-samus 
  Missing    (6): fi-ilk-m540 fi-hsw-4200u fi-skl-guc fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 


== Build changes ==

    * Linux: CI_DRM_4684 -> Patchwork_9966

  CI_DRM_4684: bb1a6d0044581c5d8867afde39111ea4605c644d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4604: 2a5777f8a694f1f8edcf021afb1ef36192c6762d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9966: df341afb28f5bdd2eaa3eba5a15dc854d08474b5 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

df341afb28f5 drm/i915: Keep physical cursors pinned while in use

== Logs ==

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* ✓ Fi.CI.IGT: success for drm/i915: Keep physical cursors pinned while in use
  2018-08-17  8:24 [PATCH] drm/i915: Keep physical cursors pinned while in use Chris Wilson
  2018-08-17  8:29 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
  2018-08-17  8:47 ` ✓ Fi.CI.BAT: success " Patchwork
@ 2018-08-17 11:04 ` Patchwork
  2018-08-22 12:35 ` [PATCH] " Ville Syrjälä
  3 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2018-08-17 11:04 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: drm/i915: Keep physical cursors pinned while in use
URL   : https://patchwork.freedesktop.org/series/48379/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4684_full -> Patchwork_9966_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_9966_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_9966_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_9966_full:

  === IGT changes ===

    ==== Warnings ====

    igt@gem_exec_params@dr1-dirt:
      shard-kbl:          PASS -> ( 2 PASS ) +842

    igt@gem_exec_schedule@preempt-other-chain-blt:
      shard-snb:          SKIP -> ( 2 SKIP ) +1076

    igt@gem_pwrite_pread@snooped-pwrite-blt-cpu_mmap-correctness:
      shard-snb:          PASS -> ( 2 PASS ) +1062

    igt@gem_userptr_blits@map-fixed-invalidate-overlap:
      shard-glk:          PASS -> ( 2 PASS ) +1216

    igt@kms_concurrent@pipe-d:
      shard-hsw:          SKIP -> ( 2 SKIP ) +584

    igt@kms_flip@2x-plain-flip-ts-check:
      shard-apl:          SKIP -> ( 2 SKIP ) +516

    igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-blt:
      shard-glk:          SKIP -> ( 2 SKIP ) +473

    igt@kms_frontbuffer_tracking@psr-rgb101010-draw-mmap-wc:
      shard-kbl:          SKIP -> ( 2 SKIP ) +311

    igt@kms_rotation_crc@sprite-rotation-90-pos-100-0:
      shard-apl:          PASS -> ( 2 PASS ) +1098

    igt@pm_rc6_residency@rc6-accuracy:
      shard-kbl:          PASS -> ( 1 PASS, 1 SKIP )

    igt@syncobj_basic@bad-create-flags:
      shard-hsw:          PASS -> ( 2 PASS ) +1107

    
== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@gem_exec_schedule@pi-ringfull-blt:
      shard-kbl:          NOTRUN -> ( 2 FAIL ) (fdo#103158)

    igt@gem_mocs_settings@mocs-rc6-bsd1:
      shard-snb:          SKIP -> ( 2 INCOMPLETE ) (fdo#105411)

    igt@kms_setmode@basic:
      shard-kbl:          PASS -> FAIL (fdo#99912)

    igt@kms_sysfs_edid_timing:
      shard-kbl:          NOTRUN -> ( 2 FAIL ) (fdo#100047)

    igt@perf@polling:
      shard-hsw:          PASS -> ( 1 FAIL, 1 PASS ) (fdo#102252)

    
    ==== Possible fixes ====

    igt@prime_vgem@basic-fence-flip:
      shard-snb:          FAIL (fdo#104008) -> ( 2 PASS )

    
    ==== Warnings ====

    igt@gem_exec_schedule@pi-ringfull-bsd:
      shard-glk:          FAIL (fdo#103158) -> ( 2 FAIL ) (fdo#103158) +1

    igt@gem_exec_schedule@pi-ringfull-render:
      shard-apl:          FAIL (fdo#103158) -> ( 2 FAIL ) (fdo#103158) +1

    igt@gem_exec_schedule@pi-ringfull-vebox:
      shard-kbl:          FAIL (fdo#103158) -> ( 2 FAIL ) (fdo#103158)

    igt@kms_available_modes_crc@available_mode_test_crc:
      shard-hsw:          FAIL (fdo#106641) -> ( 2 FAIL ) (fdo#106641)
      shard-kbl:          FAIL (fdo#106641) -> ( 2 FAIL ) (fdo#106641)

    igt@kms_cursor_legacy@2x-long-nonblocking-modeset-vs-cursor-atomic:
      shard-glk:          FAIL (fdo#105454, fdo#106509) -> ( 2 FAIL ) (fdo#105454, fdo#106509)

    igt@kms_cursor_legacy@2x-nonblocking-modeset-vs-cursor-atomic:
      shard-glk:          FAIL (fdo#105454) -> ( 1 FAIL, 1 PASS ) (fdo#105454, fdo#106509)

    igt@kms_draw_crc@draw-method-xrgb8888-mmap-wc-ytiled:
      shard-glk:          FAIL (fdo#103184) -> ( 1 FAIL, 1 PASS ) (fdo#103184)

    igt@kms_rotation_crc@primary-rotation-180:
      shard-snb:          FAIL (fdo#103925) -> ( 2 FAIL ) (fdo#103925)

    igt@kms_setmode@basic:
      shard-apl:          FAIL (fdo#99912) -> ( 2 FAIL ) (fdo#99912)
      shard-glk:          FAIL (fdo#99912) -> ( 2 FAIL ) (fdo#99912)
      shard-hsw:          FAIL (fdo#99912) -> ( 2 FAIL ) (fdo#99912)
      shard-snb:          FAIL (fdo#99912) -> ( 2 FAIL ) (fdo#99912)

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

  fdo#100047 https://bugs.freedesktop.org/show_bug.cgi?id=100047
  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  fdo#103158 https://bugs.freedesktop.org/show_bug.cgi?id=103158
  fdo#103184 https://bugs.freedesktop.org/show_bug.cgi?id=103184
  fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
  fdo#105454 https://bugs.freedesktop.org/show_bug.cgi?id=105454
  fdo#106509 https://bugs.freedesktop.org/show_bug.cgi?id=106509
  fdo#106641 https://bugs.freedesktop.org/show_bug.cgi?id=106641
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

    * Linux: CI_DRM_4684 -> Patchwork_9966

  CI_DRM_4684: bb1a6d0044581c5d8867afde39111ea4605c644d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4604: 2a5777f8a694f1f8edcf021afb1ef36192c6762d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_9966: df341afb28f5bdd2eaa3eba5a15dc854d08474b5 @ git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Keep physical cursors pinned while in use
  2018-08-17  8:24 [PATCH] drm/i915: Keep physical cursors pinned while in use Chris Wilson
                   ` (2 preceding siblings ...)
  2018-08-17 11:04 ` ✓ Fi.CI.IGT: " Patchwork
@ 2018-08-22 12:35 ` Ville Syrjälä
  2018-08-31  7:57   ` Chris Wilson
  3 siblings, 1 reply; 6+ messages in thread
From: Ville Syrjälä @ 2018-08-22 12:35 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

On Fri, Aug 17, 2018 at 09:24:05AM +0100, Chris Wilson wrote:
> The optimisation inherent in commit 6a2c4232ece1 ("drm/i915: Make the
> physical object coherent with GTT") relies on that once we allocated a
> cursor we would have coherent, zero overhead access to the scanout plane
> holding the cursor. That is we could then do the very frequent cursor
> updates X enjoys with no indirection or kernel involvement. However,
> that all hinges on the GGTT mmap of the cursor being pinned and not
> require refaulting on each access -- handling such a page fault likely
> requires the busy GGTT to be rearranged causing a stall. A very simple
> fix is then to handle the physical cursor exactly like other cursors and
> keep its vma pinned while active.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107600

I guess this wasn't the thing we wanted. But seems quite harmless to
me anyway, so 

Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

in case you still want to land it.

> References: 6a2c4232ece1 ("drm/i915: Make the physical object coherent with GTT")
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
> ---
>  drivers/gpu/drm/i915/intel_display.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> index 592b847db88e..d47ec9fd4af4 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -12966,8 +12966,11 @@ static int intel_plane_pin_fb(struct intel_plane_state *plane_state)
>  	    INTEL_INFO(dev_priv)->cursor_needs_physical) {
>  		struct drm_i915_gem_object *obj = intel_fb_obj(fb);
>  		const int align = intel_cursor_alignment(dev_priv);
> +		int err;
>  
> -		return i915_gem_object_attach_phys(obj, align);
> +		err = i915_gem_object_attach_phys(obj, align);
> +		if (err)
> +			return err;
>  	}
>  
>  	vma = intel_pin_and_fence_fb_obj(fb,
> -- 
> 2.18.0

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

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/i915: Keep physical cursors pinned while in use
  2018-08-22 12:35 ` [PATCH] " Ville Syrjälä
@ 2018-08-31  7:57   ` Chris Wilson
  0 siblings, 0 replies; 6+ messages in thread
From: Chris Wilson @ 2018-08-31  7:57 UTC (permalink / raw)
  To: Ville Syrjälä; +Cc: intel-gfx

Quoting Ville Syrjälä (2018-08-22 13:35:52)
> On Fri, Aug 17, 2018 at 09:24:05AM +0100, Chris Wilson wrote:
> > The optimisation inherent in commit 6a2c4232ece1 ("drm/i915: Make the
> > physical object coherent with GTT") relies on that once we allocated a
> > cursor we would have coherent, zero overhead access to the scanout plane
> > holding the cursor. That is we could then do the very frequent cursor
> > updates X enjoys with no indirection or kernel involvement. However,
> > that all hinges on the GGTT mmap of the cursor being pinned and not
> > require refaulting on each access -- handling such a page fault likely
> > requires the busy GGTT to be rearranged causing a stall. A very simple
> > fix is then to handle the physical cursor exactly like other cursors and
> > keep its vma pinned while active.
> > 
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107600
> 
> I guess this wasn't the thing we wanted. But seems quite harmless to
> me anyway, so 

It ties neatly in with the ggtt map being used for updates, so I think
it's harmless enough. If I could just get a contiguous page out of
shmemfs, I could follow up with the removal of phys_object. :|
> 
> Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
> 
> in case you still want to land it.

But without the bugzilla since that bug is occurring without cursor
updates, so is even more bizarre.
-Chris
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-08-31  7:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-17  8:24 [PATCH] drm/i915: Keep physical cursors pinned while in use Chris Wilson
2018-08-17  8:29 ` ✗ Fi.CI.CHECKPATCH: warning for " Patchwork
2018-08-17  8:47 ` ✓ Fi.CI.BAT: success " Patchwork
2018-08-17 11:04 ` ✓ Fi.CI.IGT: " Patchwork
2018-08-22 12:35 ` [PATCH] " Ville Syrjälä
2018-08-31  7:57   ` Chris Wilson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.