public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH 1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G
@ 2018-09-06 17:48 Chris Wilson
  2018-09-06 17:48 ` [PATCH 2/2] drm/i915: Limit number of capture objects Chris Wilson
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Chris Wilson @ 2018-09-06 17:48 UTC (permalink / raw)
  To: intel-gfx

If the caller supplies more than 4G of objects and than one that has to
be in the low 4G, it is possible for the low 4G to be full before we
attempt to find room for the last object that must be there. As we don't
reorder the two types, every pass hits the same problem and we fail with
ENOSPC. However, if we impose a little bit of ordering between the two
classes of objects, on the second pass we will be able to fit the
special object as we do it first. For setups that only use !48b objects,
we now reverse the order between passes, hopefully making the subsequent
passes more likely to succeed given that we are trying a different
order (rather than repeating the previous pass!)

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_gem_execbuffer.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 22b4cb775576..d70d142f5338 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -696,6 +696,8 @@ static int eb_reserve(struct i915_execbuffer *eb)
 				list_add(&vma->exec_link, &eb->unbound);
 			else if (flags & __EXEC_OBJECT_NEEDS_MAP)
 				list_add_tail(&vma->exec_link, &eb->unbound);
+			else if (!(flags & EXEC_OBJECT_SUPPORTS_48B_ADDRESS))
+				list_add(&vma->exec_link, &last);
 			else
 				list_add_tail(&vma->exec_link, &last);
 		}
-- 
2.19.0.rc2

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

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

* [PATCH 2/2] drm/i915: Limit number of capture objects
  2018-09-06 17:48 [PATCH 1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G Chris Wilson
@ 2018-09-06 17:48 ` Chris Wilson
  2018-09-06 18:00 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G Patchwork
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Chris Wilson @ 2018-09-06 17:48 UTC (permalink / raw)
  To: intel-gfx

If we fail to allocate an array for a large number of user requested
capture objects, reduce the array size and try to grab at least some of
the objects!

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
---
 drivers/gpu/drm/i915/i915_gpu_error.c | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gpu_error.c b/drivers/gpu/drm/i915/i915_gpu_error.c
index f7f2aa71d8d9..b28f753f7293 100644
--- a/drivers/gpu/drm/i915/i915_gpu_error.c
+++ b/drivers/gpu/drm/i915/i915_gpu_error.c
@@ -1365,15 +1365,20 @@ static void request_record_user_bo(struct i915_request *request,
 {
 	struct i915_capture_list *c;
 	struct drm_i915_error_object **bo;
-	long count;
+	long count, max;
 
-	count = 0;
+	max = 0;
 	for (c = request->capture_list; c; c = c->next)
-		count++;
+		max++;
+	if (!max)
+		return;
 
-	bo = NULL;
-	if (count)
-		bo = kcalloc(count, sizeof(*bo), GFP_ATOMIC);
+	bo = kmalloc_array(max, sizeof(*bo), GFP_ATOMIC);
+	if (!bo) {
+		/* If we can't capture everything, try to capture something. */
+		max = min_t(long, max, PAGE_SIZE/sizeof(*bo));
+		bo = kmalloc_array(max, sizeof(*bo), GFP_ATOMIC);
+	}
 	if (!bo)
 		return;
 
@@ -1382,7 +1387,8 @@ static void request_record_user_bo(struct i915_request *request,
 		bo[count] = i915_error_object_create(request->i915, c->vma);
 		if (!bo[count])
 			break;
-		count++;
+		if (++count == max)
+			break;
 	}
 
 	ee->user_bo = bo;
-- 
2.19.0.rc2

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

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

* ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G
  2018-09-06 17:48 [PATCH 1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G Chris Wilson
  2018-09-06 17:48 ` [PATCH 2/2] drm/i915: Limit number of capture objects Chris Wilson
@ 2018-09-06 18:00 ` Patchwork
  2018-09-06 18:01 ` ✗ Fi.CI.SPARSE: " Patchwork
  2018-09-06 18:18 ` ✗ Fi.CI.BAT: failure " Patchwork
  3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-09-06 18:00 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G
URL   : https://patchwork.freedesktop.org/series/49290/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
d1fd66113f8d drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G
28b603c0986d drm/i915: Limit number of capture objects
-:37: CHECK:SPACING: spaces preferred around that '/' (ctx:VxV)
#37: FILE: drivers/gpu/drm/i915/i915_gpu_error.c:1379:
+		max = min_t(long, max, PAGE_SIZE/sizeof(*bo));
 		                                ^

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

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

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

* ✗ Fi.CI.SPARSE: warning for series starting with [1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G
  2018-09-06 17:48 [PATCH 1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G Chris Wilson
  2018-09-06 17:48 ` [PATCH 2/2] drm/i915: Limit number of capture objects Chris Wilson
  2018-09-06 18:00 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G Patchwork
@ 2018-09-06 18:01 ` Patchwork
  2018-09-06 18:18 ` ✗ Fi.CI.BAT: failure " Patchwork
  3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-09-06 18:01 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G
URL   : https://patchwork.freedesktop.org/series/49290/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G
Okay!

Commit: drm/i915: Limit number of capture objects
+./include/linux/slab.h:631:13: error: not a function <noident>

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

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

* ✗ Fi.CI.BAT: failure for series starting with [1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G
  2018-09-06 17:48 [PATCH 1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G Chris Wilson
                   ` (2 preceding siblings ...)
  2018-09-06 18:01 ` ✗ Fi.CI.SPARSE: " Patchwork
@ 2018-09-06 18:18 ` Patchwork
  3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2018-09-06 18:18 UTC (permalink / raw)
  To: Chris Wilson; +Cc: intel-gfx

== Series Details ==

Series: series starting with [1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G
URL   : https://patchwork.freedesktop.org/series/49290/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4782 -> Patchwork_10110 =

== Summary - FAILURE ==

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

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

== Possible new issues ==

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

  === IGT changes ===

    ==== Possible regressions ====

    igt@drv_selftest@live_requests:
      fi-byt-j1900:       NOTRUN -> DMESG-WARN

    
    ==== Warnings ====

    igt@pm_rpm@module-reload:
      fi-hsw-4770r:       PASS -> SKIP

    
== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@drv_module_reload@basic-reload-inject:
      fi-hsw-4770r:       PASS -> DMESG-WARN (fdo#107425)

    igt@gem_exec_suspend@basic-s4-devices:
      fi-blb-e6850:       PASS -> INCOMPLETE (fdo#107718)

    igt@kms_flip@basic-plain-flip:
      fi-ilk-650:         PASS -> DMESG-WARN (fdo#106387) +1

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

    igt@kms_pipe_crc_basic@hang-read-crc-pipe-a:
      fi-byt-clapper:     PASS -> FAIL (fdo#103191, fdo#107362)

    
    ==== Possible fixes ====

    igt@amdgpu/amd_cs_nop@sync-fork-gfx0:
      fi-kbl-8809g:       DMESG-WARN (fdo#107762) -> PASS

    igt@kms_psr@primary_page_flip:
      fi-kbl-7560u:       FAIL (fdo#107336) -> PASS

    
    ==== Warnings ====

    igt@amdgpu/amd_prime@amd-to-i915:
      fi-kbl-8809g:       DMESG-FAIL (fdo#107762) -> FAIL (fdo#107341)

    
  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#106387 https://bugs.freedesktop.org/show_bug.cgi?id=106387
  fdo#107336 https://bugs.freedesktop.org/show_bug.cgi?id=107336
  fdo#107341 https://bugs.freedesktop.org/show_bug.cgi?id=107341
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107425 https://bugs.freedesktop.org/show_bug.cgi?id=107425
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718
  fdo#107762 https://bugs.freedesktop.org/show_bug.cgi?id=107762


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

  Additional (2): fi-byt-j1900 fi-gdg-551 
  Missing    (5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u 


== Build changes ==

    * Linux: CI_DRM_4782 -> Patchwork_10110

  CI_DRM_4782: 60edf94611d2374821fbe2a824cebcb425ce7b0d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4632: 94b4e204473a7d9f49e536c8877a4a5636e0d1b2 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10110: 28b603c0986d7d0768998240c52fd299aa6fa608 @ git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

28b603c0986d drm/i915: Limit number of capture objects
d1fd66113f8d drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G

== Logs ==

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

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

end of thread, other threads:[~2018-09-06 18:18 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-09-06 17:48 [PATCH 1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G Chris Wilson
2018-09-06 17:48 ` [PATCH 2/2] drm/i915: Limit number of capture objects Chris Wilson
2018-09-06 18:00 ` ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/2] drm/i915: Reorder execobject[] to insert non-48b objects into the low 4G Patchwork
2018-09-06 18:01 ` ✗ Fi.CI.SPARSE: " Patchwork
2018-09-06 18:18 ` ✗ Fi.CI.BAT: failure " Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox