All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t 0/3] Add support to paint already mmaped buffer
@ 2024-03-15  6:11 Vandita Kulkarni
  2024-03-15  6:11 ` [PATCH i-g-t 1/3] lib/igt_draw: Dont mmap, if the buffer is already mmapped Vandita Kulkarni
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Vandita Kulkarni @ 2024-03-15  6:11 UTC (permalink / raw
  To: igt-dev; +Cc: zbigniew.kempczynski, bhanuprakash.modem, Kulkarni, Vandita

From: "Kulkarni, Vandita" <vandita.kulkarni@intel.com>

On some of the platforms first write after mmap takes longer time,
hence provide and option to just update the fb incase we are resuing
the mmaped fb.

Vandita Kulkarni (3):
  lib/igt_draw: Dont mmap, if the buffer is already mmapped
  tests/kms_async_flips: Reuse the already mmapped buffer
  tests/kms_frontbuffer_tracking: Align to new igt_draw_rect usage

 lib/igt_draw.c                         | 57 +++++++++++++++-----------
 lib/igt_draw.h                         |  2 +-
 tests/intel/kms_frontbuffer_tracking.c |  2 +-
 tests/kms_async_flips.c                | 16 ++++++--
 4 files changed, 47 insertions(+), 30 deletions(-)

-- 
2.34.1


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

* [PATCH i-g-t 1/3] lib/igt_draw: Dont mmap, if the buffer is already mmapped
  2024-03-15  6:11 [PATCH i-g-t 0/3] Add support to paint already mmaped buffer Vandita Kulkarni
@ 2024-03-15  6:11 ` Vandita Kulkarni
  2024-03-19 13:20   ` Zbigniew Kempczyński
  2024-03-15  6:11 ` [PATCH i-g-t 2/3] tests/kms_async_flips: Reuse the already mmapped buffer Vandita Kulkarni
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Vandita Kulkarni @ 2024-03-15  6:11 UTC (permalink / raw
  To: igt-dev; +Cc: zbigniew.kempczynski, bhanuprakash.modem, Vandita Kulkarni

This will help add support to tests which would reuse the
same fbs and would not want to mmap again and would just
want to update the fbs.

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 lib/igt_draw.c | 57 ++++++++++++++++++++++++++++----------------------
 lib/igt_draw.h |  2 +-
 2 files changed, 33 insertions(+), 26 deletions(-)

diff --git a/lib/igt_draw.c b/lib/igt_draw.c
index 2c01d7b02..d0aed2b26 100644
--- a/lib/igt_draw.c
+++ b/lib/igt_draw.c
@@ -75,6 +75,7 @@ struct buf_data {
 	uint32_t handle;
 	uint32_t size;
 	uint32_t stride;
+	void *buf_ptr;
 	int width;
 	int height;
 	int bpp;
@@ -498,29 +499,32 @@ static void draw_rect_mmap_wc(int fd, struct buf_data *buf, struct rect *rect,
 			      uint32_t tiling, uint32_t swizzle, uint32_t color)
 {
 	uint32_t *ptr;
-
-	if (is_i915_device(fd)) {
-		gem_set_domain(fd, buf->handle, I915_GEM_DOMAIN_GTT,
-			       I915_GEM_DOMAIN_GTT);
-
-		/* We didn't implement suport for the older tiling methods yet. */
-		if (tiling != I915_TILING_NONE)
-			igt_require(intel_display_ver(intel_get_drm_devid(fd)) >= 5);
-
-		if (gem_has_lmem(fd))
-			ptr = gem_mmap_offset__fixed(fd, buf->handle, 0,
-						     PAGE_ALIGN(buf->size),
-						     PROT_READ | PROT_WRITE);
-		else if (gem_has_legacy_mmap(fd))
-			ptr = gem_mmap__wc(fd, buf->handle, 0, PAGE_ALIGN(buf->size),
-					   PROT_READ | PROT_WRITE);
-		else
-			ptr = gem_mmap_offset__wc(fd, buf->handle, 0,
-						  PAGE_ALIGN(buf->size),
-						  PROT_READ | PROT_WRITE);
+	if (!buf->buf_ptr) {
+		if (is_i915_device(fd)) {
+			gem_set_domain(fd, buf->handle, I915_GEM_DOMAIN_GTT,
+				       I915_GEM_DOMAIN_GTT);
+
+			/* We didn't implement suport for the older tiling methods yet. */
+			if (tiling != I915_TILING_NONE)
+				igt_require(intel_display_ver(intel_get_drm_devid(fd)) >= 5);
+
+			if (gem_has_lmem(fd))
+				ptr = gem_mmap_offset__fixed(fd, buf->handle, 0,
+							     PAGE_ALIGN(buf->size),
+							     PROT_READ | PROT_WRITE);
+			else if (gem_has_legacy_mmap(fd))
+				ptr = gem_mmap__wc(fd, buf->handle, 0, PAGE_ALIGN(buf->size),
+						   PROT_READ | PROT_WRITE);
+			else
+				ptr = gem_mmap_offset__wc(fd, buf->handle, 0,
+							  PAGE_ALIGN(buf->size),
+							  PROT_READ | PROT_WRITE);
+		} else {
+			ptr = xe_bo_mmap_ext(fd, buf->handle, buf->size,
+					     PROT_READ | PROT_WRITE);
+		}
 	} else {
-		ptr = xe_bo_mmap_ext(fd, buf->handle, buf->size,
-				     PROT_READ | PROT_WRITE);
+		ptr = buf->buf_ptr;
 	}
 
 	switch (tiling) {
@@ -538,7 +542,8 @@ static void draw_rect_mmap_wc(int fd, struct buf_data *buf, struct rect *rect,
 		break;
 	}
 
-	igt_assert(gem_munmap(ptr, buf->size) == 0);
+	if (ptr != buf->buf_ptr)
+		igt_assert(gem_munmap(ptr, buf->size) == 0);
 }
 
 static void draw_rect_pwrite_untiled(int fd, struct buf_data *buf,
@@ -839,6 +844,7 @@ static void draw_rect_render(int fd, struct cmd_data *cmd_data,
  * @buf_handle: the handle of the buffer where you're going to draw to
  * @buf_size: the size of the buffer
  * @buf_stride: the stride of the buffer
+ * @buf_ptr: Pointer to the mmapped buffer
  * @buf_width: the width of the buffer
  * @buf_height: the height of the buffer
  * @tiling: the tiling of the buffer
@@ -855,7 +861,7 @@ static void draw_rect_render(int fd, struct cmd_data *cmd_data,
  */
 void igt_draw_rect(int fd, struct buf_ops *bops, uint32_t ctx,
 		   uint32_t buf_handle, uint32_t buf_size, uint32_t buf_stride,
-		   int buf_width, int buf_height,
+		   void *buf_ptr, int buf_width, int buf_height,
 		   uint32_t tiling, enum igt_draw_method method,
 		   int rect_x, int rect_y, int rect_w, int rect_h,
 		   uint32_t color, int bpp)
@@ -870,6 +876,7 @@ void igt_draw_rect(int fd, struct buf_ops *bops, uint32_t ctx,
 		.handle = buf_handle,
 		.size = buf_size,
 		.stride = buf_stride,
+		.buf_ptr = buf_ptr,
 		.width = buf_width,
 		.height = buf_height,
 		.bpp = bpp,
@@ -935,7 +942,7 @@ void igt_draw_rect_fb(int fd, struct buf_ops *bops,
 		      int rect_w, int rect_h, uint32_t color)
 {
 	igt_draw_rect(fd, bops, ctx, fb->gem_handle, fb->size, fb->strides[0],
-		      fb->width, fb->height,
+		      fb->driver_priv, fb->width, fb->height,
 		      igt_fb_mod_to_tiling(fb->modifier), method,
 		      rect_x, rect_y, rect_w, rect_h, color,
 		      igt_drm_format_to_bpp(fb->drm_format));
diff --git a/lib/igt_draw.h b/lib/igt_draw.h
index 1dec95e86..865641ef6 100644
--- a/lib/igt_draw.h
+++ b/lib/igt_draw.h
@@ -54,7 +54,7 @@ bool igt_draw_supports_method(int fd, enum igt_draw_method method);
 
 void igt_draw_rect(int fd, struct buf_ops *bops, uint32_t ctx,
 		   uint32_t buf_handle, uint32_t buf_size, uint32_t buf_stride,
-		   int buf_width, int buf_height,
+		   void *buf_ptr, int buf_width, int buf_height,
 		   uint32_t tiling, enum igt_draw_method method,
 		   int rect_x, int rect_y, int rect_w, int rect_h,
 		   uint32_t color, int bpp);
-- 
2.34.1


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

* [PATCH i-g-t 2/3] tests/kms_async_flips: Reuse the already mmapped buffer
  2024-03-15  6:11 [PATCH i-g-t 0/3] Add support to paint already mmaped buffer Vandita Kulkarni
  2024-03-15  6:11 ` [PATCH i-g-t 1/3] lib/igt_draw: Dont mmap, if the buffer is already mmapped Vandita Kulkarni
@ 2024-03-15  6:11 ` Vandita Kulkarni
  2024-03-19 13:24   ` Zbigniew Kempczyński
  2024-03-15  6:11 ` [PATCH i-g-t 3/3] tests/kms_frontbuffer_tracking: Align to new igt_draw_rect usage Vandita Kulkarni
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Vandita Kulkarni @ 2024-03-15  6:11 UTC (permalink / raw
  To: igt-dev; +Cc: zbigniew.kempczynski, bhanuprakash.modem, Vandita Kulkarni

In crc test case where we are trying to update the fb
dont mmap it agian. On some platforms it was found that
updating a newly mmapped buffer takes longer time.

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 tests/kms_async_flips.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
index 2895168f7..4658ca4c0 100644
--- a/tests/kms_async_flips.c
+++ b/tests/kms_async_flips.c
@@ -221,12 +221,19 @@ static void test_init_fbs(data_t *data)
 		prev_modifier = data->modifier;
 
 		if (data->bufs[0].fb_id) {
-			for (i = 0; i < NUM_FBS; i++)
+			for (i = 0; i < NUM_FBS; i++) {
+				if (is_intel_device(data->drm_fd))
+					igt_fb_unmap_buffer(&data->bufs[i], data->bufs[i].driver_priv);
 				igt_remove_fb(data->drm_fd, &data->bufs[i]);
+			}
 		}
 
-		for (i = 0; i < NUM_FBS; i++)
+		for (i = 0; i < NUM_FBS; i++) {
 			make_fb(data, &data->bufs[i], width, height, i);
+			if (is_intel_device(data->drm_fd))
+				data->bufs[i].driver_priv = igt_fb_map_buffer(data->drm_fd,
+									      &data->bufs[i]);
+		}
 	}
 
 	igt_plane_set_fb(data->plane, &data->bufs[0]);
@@ -730,8 +737,11 @@ igt_main
 	}
 
 	igt_fixture {
-		for (i = 0; i < NUM_FBS; i++)
+		for (i = 0; i < NUM_FBS; i++) {
+			if (is_intel_device(data.drm_fd))
+				igt_fb_unmap_buffer(&data.bufs[i], data.bufs[i].driver_priv);
 			igt_remove_fb(data.drm_fd, &data.bufs[i]);
+		}
 
 		if (is_intel_device(data.drm_fd))
 			buf_ops_destroy(data.bops);
-- 
2.34.1


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

* [PATCH i-g-t 3/3] tests/kms_frontbuffer_tracking: Align to new igt_draw_rect usage
  2024-03-15  6:11 [PATCH i-g-t 0/3] Add support to paint already mmaped buffer Vandita Kulkarni
  2024-03-15  6:11 ` [PATCH i-g-t 1/3] lib/igt_draw: Dont mmap, if the buffer is already mmapped Vandita Kulkarni
  2024-03-15  6:11 ` [PATCH i-g-t 2/3] tests/kms_async_flips: Reuse the already mmapped buffer Vandita Kulkarni
@ 2024-03-15  6:11 ` Vandita Kulkarni
  2024-03-19 13:25   ` Zbigniew Kempczyński
  2024-03-15  6:53 ` ✗ CI.xeBAT: failure for Add support to paint already mmaped buffer Patchwork
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 10+ messages in thread
From: Vandita Kulkarni @ 2024-03-15  6:11 UTC (permalink / raw
  To: igt-dev; +Cc: zbigniew.kempczynski, bhanuprakash.modem, Vandita Kulkarni

Pass NULL as we dont have any mmaped buffers

Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
---
 tests/intel/kms_frontbuffer_tracking.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
index db2db0ff1..392539408 100644
--- a/tests/intel/kms_frontbuffer_tracking.c
+++ b/tests/intel/kms_frontbuffer_tracking.c
@@ -2254,7 +2254,7 @@ static void *busy_thread_func(void *data)
 {
 	while (!busy_thread.stop)
 		igt_draw_rect(drm.fd, drm.bops, 0, busy_thread.handle,
-			      busy_thread.size, busy_thread.stride,
+			      busy_thread.size, busy_thread.stride, NULL,
 			      busy_thread.width, busy_thread.height,
 			      busy_thread.tiling, IGT_DRAW_BLT, 0, 0,
 			      busy_thread.width, busy_thread.height,
-- 
2.34.1


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

* ✗ CI.xeBAT: failure for Add support to paint already mmaped buffer
  2024-03-15  6:11 [PATCH i-g-t 0/3] Add support to paint already mmaped buffer Vandita Kulkarni
                   ` (2 preceding siblings ...)
  2024-03-15  6:11 ` [PATCH i-g-t 3/3] tests/kms_frontbuffer_tracking: Align to new igt_draw_rect usage Vandita Kulkarni
@ 2024-03-15  6:53 ` Patchwork
  2024-03-15  7:17 ` ✗ Fi.CI.BAT: " Patchwork
  2024-03-19 13:08 ` [PATCH i-g-t 0/3] " Zbigniew Kempczyński
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2024-03-15  6:53 UTC (permalink / raw
  To: Kulkarni, Vandita; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 1540 bytes --]

== Series Details ==

Series: Add support to paint already mmaped buffer
URL   : https://patchwork.freedesktop.org/series/131167/
State : failure

== Summary ==

CI Bug Log - changes from XEIGT_7766_BAT -> XEIGTPW_10843_BAT
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with XEIGTPW_10843_BAT absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in XEIGTPW_10843_BAT, please notify your bug team (I915-ci-infra@lists.freedesktop.org) to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

Participating hosts (4 -> 0)
------------------------------

  ERROR: It appears as if the changes made in XEIGTPW_10843_BAT prevented too many machines from booting.

  Missing    (4): bat-pvc-2 bat-dg2-oem2 bat-adlp-7 bat-atsm-2 


Changes
-------

  No changes found


Build changes
-------------

  * IGT: IGT_7766 -> IGTPW_10843
  * Linux: xe-943-c44e29a7b62293355744fd857aad93cbf43e5126 -> xe-946-b7ead5c90db25002638773b1a9289220e6a36b4d

  IGTPW_10843: 10843
  IGT_7766: 08cf1b2fa6b2f422f417ea74f41b12b93e91156f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
  xe-943-c44e29a7b62293355744fd857aad93cbf43e5126: c44e29a7b62293355744fd857aad93cbf43e5126
  xe-946-b7ead5c90db25002638773b1a9289220e6a36b4d: b7ead5c90db25002638773b1a9289220e6a36b4d

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_10843/index.html

[-- Attachment #2: Type: text/html, Size: 2123 bytes --]

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

* ✗ Fi.CI.BAT: failure for Add support to paint already mmaped buffer
  2024-03-15  6:11 [PATCH i-g-t 0/3] Add support to paint already mmaped buffer Vandita Kulkarni
                   ` (3 preceding siblings ...)
  2024-03-15  6:53 ` ✗ CI.xeBAT: failure for Add support to paint already mmaped buffer Patchwork
@ 2024-03-15  7:17 ` Patchwork
  2024-03-19 13:08 ` [PATCH i-g-t 0/3] " Zbigniew Kempczyński
  5 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2024-03-15  7:17 UTC (permalink / raw
  To: Kulkarni, Vandita; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 7976 bytes --]

== Series Details ==

Series: Add support to paint already mmaped buffer
URL   : https://patchwork.freedesktop.org/series/131167/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_14437 -> IGTPW_10843
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_10843 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_10843, please notify your bug team (I915-ci-infra@lists.freedesktop.org) 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/IGTPW_10843/index.html

Participating hosts (35 -> 34)
------------------------------

  Additional (2): bat-dg1-7 bat-kbl-2 
  Missing    (3): fi-cfl-8109u bat-jsl-1 fi-snb-2520m 

Possible new issues
-------------------

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

### IGT changes ###

#### Possible regressions ####

  * igt@dmabuf@all-tests@dma_fence_chain:
    - fi-kbl-8809g:       [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14437/fi-kbl-8809g/igt@dmabuf@all-tests@dma_fence_chain.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/fi-kbl-8809g/igt@dmabuf@all-tests@dma_fence_chain.html

  
Known issues
------------

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

### IGT changes ###

#### Issues hit ####

  * igt@fbdev@info:
    - bat-kbl-2:          NOTRUN -> [SKIP][3] ([i915#1849])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-kbl-2/igt@fbdev@info.html

  * igt@gem_lmem_swapping@parallel-random-engines:
    - bat-kbl-2:          NOTRUN -> [SKIP][4] +39 other tests skip
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-kbl-2/igt@gem_lmem_swapping@parallel-random-engines.html

  * igt@gem_mmap@basic:
    - bat-dg1-7:          NOTRUN -> [SKIP][5] ([i915#4083])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@gem_mmap@basic.html

  * igt@gem_tiled_fence_blits@basic:
    - bat-dg1-7:          NOTRUN -> [SKIP][6] ([i915#4077]) +2 other tests skip
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@gem_tiled_fence_blits@basic.html

  * igt@gem_tiled_pread_basic:
    - bat-dg1-7:          NOTRUN -> [SKIP][7] ([i915#4079]) +1 other test skip
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@gem_tiled_pread_basic.html

  * igt@i915_pm_rps@basic-api:
    - bat-dg1-7:          NOTRUN -> [SKIP][8] ([i915#6621])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@i915_pm_rps@basic-api.html

  * igt@i915_selftest@live@hangcheck:
    - bat-rpls-3:         [PASS][9] -> [DMESG-WARN][10] ([i915#5591])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14437/bat-rpls-3/igt@i915_selftest@live@hangcheck.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-rpls-3/igt@i915_selftest@live@hangcheck.html

  * igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy:
    - bat-dg1-7:          NOTRUN -> [SKIP][11] ([i915#4212]) +7 other tests skip
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@kms_addfb_basic@addfb25-x-tiled-mismatch-legacy.html

  * igt@kms_addfb_basic@basic-y-tiled-legacy:
    - bat-dg1-7:          NOTRUN -> [SKIP][12] ([i915#4215])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@kms_addfb_basic@basic-y-tiled-legacy.html

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

  * igt@kms_dsc@dsc-basic:
    - bat-dg1-7:          NOTRUN -> [SKIP][14] ([i915#3555] / [i915#3840])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@kms_dsc@dsc-basic.html

  * igt@kms_force_connector_basic@force-load-detect:
    - bat-dg1-7:          NOTRUN -> [SKIP][15]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@kms_force_connector_basic@force-load-detect.html

  * igt@kms_hdmi_inject@inject-audio:
    - bat-dg1-7:          NOTRUN -> [SKIP][16] ([i915#433])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@kms_hdmi_inject@inject-audio.html

  * igt@kms_pm_backlight@basic-brightness:
    - bat-dg1-7:          NOTRUN -> [SKIP][17] ([i915#5354])
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@kms_pm_backlight@basic-brightness.html

  * igt@kms_psr@psr-primary-page-flip:
    - bat-dg1-7:          NOTRUN -> [SKIP][18] ([i915#9732]) +3 other tests skip
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@kms_psr@psr-primary-page-flip.html

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

  * igt@prime_vgem@basic-fence-flip:
    - bat-dg1-7:          NOTRUN -> [SKIP][20] ([i915#3708]) +3 other tests skip
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@prime_vgem@basic-fence-flip.html

  * igt@prime_vgem@basic-fence-mmap:
    - bat-dg1-7:          NOTRUN -> [SKIP][21] ([i915#3708] / [i915#4077]) +1 other test skip
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg1-7/igt@prime_vgem@basic-fence-mmap.html

  
#### Possible fixes ####

  * igt@gem_lmem_swapping@basic@lmem0:
    - bat-dg2-14:         [FAIL][22] ([i915#10378]) -> [PASS][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_14437/bat-dg2-14/igt@gem_lmem_swapping@basic@lmem0.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_10843/bat-dg2-14/igt@gem_lmem_swapping@basic@lmem0.html

  
  [i915#10378]: https://gitlab.freedesktop.org/drm/intel/issues/10378
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
  [i915#433]: https://gitlab.freedesktop.org/drm/intel/issues/433
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#5591]: https://gitlab.freedesktop.org/drm/intel/issues/5591
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#9732]: https://gitlab.freedesktop.org/drm/intel/issues/9732


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7766 -> IGTPW_10843

  CI-20190529: 20190529
  CI_DRM_14437: b7ead5c90db25002638773b1a9289220e6a36b4d @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_10843: 10843
  IGT_7766: 08cf1b2fa6b2f422f417ea74f41b12b93e91156f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git


Testlist changes
----------------

-igt@xe_pm@s2idle-vm-bind-basic
-igt@xe_pm@s2idle-vm-bind-prefetch
-igt@xe_pm@s2idle-vm-bind-usrptr
-igt@xe_pm@s3-vm-bind-basic
-igt@xe_pm@s3-vm-bind-prefetch
-igt@xe_pm@s3-vm-bind-usrptr
-igt@xe_pm@s4-vm-bind-basic
-igt@xe_pm@s4-vm-bind-prefetch
-igt@xe_pm@s4-vm-bind-usrptr
-igt@xe_pm@unbind-all

== Logs ==

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

[-- Attachment #2: Type: text/html, Size: 9344 bytes --]

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

* Re: [PATCH i-g-t 0/3] Add support to paint already mmaped buffer
  2024-03-15  6:11 [PATCH i-g-t 0/3] Add support to paint already mmaped buffer Vandita Kulkarni
                   ` (4 preceding siblings ...)
  2024-03-15  7:17 ` ✗ Fi.CI.BAT: " Patchwork
@ 2024-03-19 13:08 ` Zbigniew Kempczyński
  5 siblings, 0 replies; 10+ messages in thread
From: Zbigniew Kempczyński @ 2024-03-19 13:08 UTC (permalink / raw
  To: Vandita Kulkarni; +Cc: igt-dev, bhanuprakash.modem

On Fri, Mar 15, 2024 at 11:41:39AM +0530, Vandita Kulkarni wrote:
> From: "Kulkarni, Vandita" <vandita.kulkarni@intel.com>
> 
> On some of the platforms first write after mmap takes longer time,
> hence provide and option to just update the fb incase we are resuing
> the mmaped fb.
> 
> Vandita Kulkarni (3):
>   lib/igt_draw: Dont mmap, if the buffer is already mmapped
>   tests/kms_async_flips: Reuse the already mmapped buffer
>   tests/kms_frontbuffer_tracking: Align to new igt_draw_rect usage
> 
>  lib/igt_draw.c                         | 57 +++++++++++++++-----------
>  lib/igt_draw.h                         |  2 +-
>  tests/intel/kms_frontbuffer_tracking.c |  2 +-
>  tests/kms_async_flips.c                | 16 ++++++--
>  4 files changed, 47 insertions(+), 30 deletions(-)
> 
> -- 
> 2.34.1
> 

First of all, try to not break compilation chain with each patch.

You may check this using:

git rebase -i origin/master --exec ./meson.sh

--
Zbigniew

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

* Re: [PATCH i-g-t 1/3] lib/igt_draw: Dont mmap, if the buffer is already mmapped
  2024-03-15  6:11 ` [PATCH i-g-t 1/3] lib/igt_draw: Dont mmap, if the buffer is already mmapped Vandita Kulkarni
@ 2024-03-19 13:20   ` Zbigniew Kempczyński
  0 siblings, 0 replies; 10+ messages in thread
From: Zbigniew Kempczyński @ 2024-03-19 13:20 UTC (permalink / raw
  To: Vandita Kulkarni; +Cc: igt-dev, bhanuprakash.modem

On Fri, Mar 15, 2024 at 11:41:40AM +0530, Vandita Kulkarni wrote:
> This will help add support to tests which would reuse the
> same fbs and would not want to mmap again and would just
> want to update the fbs.
> 
> Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
> ---
>  lib/igt_draw.c | 57 ++++++++++++++++++++++++++++----------------------
>  lib/igt_draw.h |  2 +-
>  2 files changed, 33 insertions(+), 26 deletions(-)
> 
> diff --git a/lib/igt_draw.c b/lib/igt_draw.c
> index 2c01d7b02..d0aed2b26 100644
> --- a/lib/igt_draw.c
> +++ b/lib/igt_draw.c
> @@ -75,6 +75,7 @@ struct buf_data {
>  	uint32_t handle;
>  	uint32_t size;
>  	uint32_t stride;
> +	void *buf_ptr;
>  	int width;
>  	int height;
>  	int bpp;
> @@ -498,29 +499,32 @@ static void draw_rect_mmap_wc(int fd, struct buf_data *buf, struct rect *rect,
>  			      uint32_t tiling, uint32_t swizzle, uint32_t color)
>  {
>  	uint32_t *ptr;
> -

Keep this line, it's convention to use single empty line between
declaration and the code.

> -	if (is_i915_device(fd)) {
> -		gem_set_domain(fd, buf->handle, I915_GEM_DOMAIN_GTT,
> -			       I915_GEM_DOMAIN_GTT);
> -
> -		/* We didn't implement suport for the older tiling methods yet. */
> -		if (tiling != I915_TILING_NONE)
> -			igt_require(intel_display_ver(intel_get_drm_devid(fd)) >= 5);
> -
> -		if (gem_has_lmem(fd))
> -			ptr = gem_mmap_offset__fixed(fd, buf->handle, 0,
> -						     PAGE_ALIGN(buf->size),
> -						     PROT_READ | PROT_WRITE);
> -		else if (gem_has_legacy_mmap(fd))
> -			ptr = gem_mmap__wc(fd, buf->handle, 0, PAGE_ALIGN(buf->size),
> -					   PROT_READ | PROT_WRITE);
> -		else
> -			ptr = gem_mmap_offset__wc(fd, buf->handle, 0,
> -						  PAGE_ALIGN(buf->size),
> -						  PROT_READ | PROT_WRITE);
> +	if (!buf->buf_ptr) {
> +		if (is_i915_device(fd)) {
> +			gem_set_domain(fd, buf->handle, I915_GEM_DOMAIN_GTT,
> +				       I915_GEM_DOMAIN_GTT);
> +
> +			/* We didn't implement suport for the older tiling methods yet. */
> +			if (tiling != I915_TILING_NONE)
> +				igt_require(intel_display_ver(intel_get_drm_devid(fd)) >= 5);
> +
> +			if (gem_has_lmem(fd))
> +				ptr = gem_mmap_offset__fixed(fd, buf->handle, 0,
> +							     PAGE_ALIGN(buf->size),
> +							     PROT_READ | PROT_WRITE);
> +			else if (gem_has_legacy_mmap(fd))
> +				ptr = gem_mmap__wc(fd, buf->handle, 0, PAGE_ALIGN(buf->size),
> +						   PROT_READ | PROT_WRITE);
> +			else
> +				ptr = gem_mmap_offset__wc(fd, buf->handle, 0,
> +							  PAGE_ALIGN(buf->size),
> +							  PROT_READ | PROT_WRITE);
> +		} else {
> +			ptr = xe_bo_mmap_ext(fd, buf->handle, buf->size,
> +					     PROT_READ | PROT_WRITE);
> +		}
>  	} else {
> -		ptr = xe_bo_mmap_ext(fd, buf->handle, buf->size,
> -				     PROT_READ | PROT_WRITE);
> +		ptr = buf->buf_ptr;
>  	}
>  
>  	switch (tiling) {
> @@ -538,7 +542,8 @@ static void draw_rect_mmap_wc(int fd, struct buf_data *buf, struct rect *rect,
>  		break;
>  	}
>  
> -	igt_assert(gem_munmap(ptr, buf->size) == 0);
> +	if (ptr != buf->buf_ptr)
> +		igt_assert(gem_munmap(ptr, buf->size) == 0);
>  }

I know the reason why you want to reuse pointer to the buffer
when it comes from the caller (to not mmap/munmap over and over again)
and all above is fine for me. But, you should assert in draw_rect_mmap_cpu()
and draw_rect_mmap_gtt() pointing we don't support such behavior on
those functions. I mean igt_assert_neq(buf->buf_ptr, NULL); is enought.

>  
>  static void draw_rect_pwrite_untiled(int fd, struct buf_data *buf,
> @@ -839,6 +844,7 @@ static void draw_rect_render(int fd, struct cmd_data *cmd_data,
>   * @buf_handle: the handle of the buffer where you're going to draw to
>   * @buf_size: the size of the buffer
>   * @buf_stride: the stride of the buffer
> + * @buf_ptr: Pointer to the mmapped buffer

You support this only for WC, so this should be documented here.
Above also suggests you _have_to_ provide mmaped buffer what is
not true.

Generally this code intention to not remap the buffer is fine for
me. Just fix details.

--
Zbigniew

>   * @buf_width: the width of the buffer
>   * @buf_height: the height of the buffer
>   * @tiling: the tiling of the buffer
> @@ -855,7 +861,7 @@ static void draw_rect_render(int fd, struct cmd_data *cmd_data,
>   */
>  void igt_draw_rect(int fd, struct buf_ops *bops, uint32_t ctx,
>  		   uint32_t buf_handle, uint32_t buf_size, uint32_t buf_stride,
> -		   int buf_width, int buf_height,
> +		   void *buf_ptr, int buf_width, int buf_height,
>  		   uint32_t tiling, enum igt_draw_method method,
>  		   int rect_x, int rect_y, int rect_w, int rect_h,
>  		   uint32_t color, int bpp)
> @@ -870,6 +876,7 @@ void igt_draw_rect(int fd, struct buf_ops *bops, uint32_t ctx,
>  		.handle = buf_handle,
>  		.size = buf_size,
>  		.stride = buf_stride,
> +		.buf_ptr = buf_ptr,
>  		.width = buf_width,
>  		.height = buf_height,
>  		.bpp = bpp,
> @@ -935,7 +942,7 @@ void igt_draw_rect_fb(int fd, struct buf_ops *bops,
>  		      int rect_w, int rect_h, uint32_t color)
>  {
>  	igt_draw_rect(fd, bops, ctx, fb->gem_handle, fb->size, fb->strides[0],
> -		      fb->width, fb->height,
> +		      fb->driver_priv, fb->width, fb->height,
>  		      igt_fb_mod_to_tiling(fb->modifier), method,
>  		      rect_x, rect_y, rect_w, rect_h, color,
>  		      igt_drm_format_to_bpp(fb->drm_format));
> diff --git a/lib/igt_draw.h b/lib/igt_draw.h
> index 1dec95e86..865641ef6 100644
> --- a/lib/igt_draw.h
> +++ b/lib/igt_draw.h
> @@ -54,7 +54,7 @@ bool igt_draw_supports_method(int fd, enum igt_draw_method method);
>  
>  void igt_draw_rect(int fd, struct buf_ops *bops, uint32_t ctx,
>  		   uint32_t buf_handle, uint32_t buf_size, uint32_t buf_stride,
> -		   int buf_width, int buf_height,
> +		   void *buf_ptr, int buf_width, int buf_height,
>  		   uint32_t tiling, enum igt_draw_method method,
>  		   int rect_x, int rect_y, int rect_w, int rect_h,
>  		   uint32_t color, int bpp);
> -- 
> 2.34.1
> 

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

* Re: [PATCH i-g-t 2/3] tests/kms_async_flips: Reuse the already mmapped buffer
  2024-03-15  6:11 ` [PATCH i-g-t 2/3] tests/kms_async_flips: Reuse the already mmapped buffer Vandita Kulkarni
@ 2024-03-19 13:24   ` Zbigniew Kempczyński
  0 siblings, 0 replies; 10+ messages in thread
From: Zbigniew Kempczyński @ 2024-03-19 13:24 UTC (permalink / raw
  To: Vandita Kulkarni; +Cc: igt-dev, bhanuprakash.modem

On Fri, Mar 15, 2024 at 11:41:41AM +0530, Vandita Kulkarni wrote:
> In crc test case where we are trying to update the fb
> dont mmap it agian. On some platforms it was found that
> updating a newly mmapped buffer takes longer time.
> 
> Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
> ---
>  tests/kms_async_flips.c | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/tests/kms_async_flips.c b/tests/kms_async_flips.c
> index 2895168f7..4658ca4c0 100644
> --- a/tests/kms_async_flips.c
> +++ b/tests/kms_async_flips.c
> @@ -221,12 +221,19 @@ static void test_init_fbs(data_t *data)
>  		prev_modifier = data->modifier;
>  
>  		if (data->bufs[0].fb_id) {
> -			for (i = 0; i < NUM_FBS; i++)
> +			for (i = 0; i < NUM_FBS; i++) {
> +				if (is_intel_device(data->drm_fd))
> +					igt_fb_unmap_buffer(&data->bufs[i], data->bufs[i].driver_priv);

Ok, you're smuggling mmaped fb via driver_priv field. It's fine for me,
I see only nouveau is using this field on their need but this won't
interfere. From me:

Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>

--
Zbigniew

>  				igt_remove_fb(data->drm_fd, &data->bufs[i]);
> +			}
>  		}
>  
> -		for (i = 0; i < NUM_FBS; i++)
> +		for (i = 0; i < NUM_FBS; i++) {
>  			make_fb(data, &data->bufs[i], width, height, i);
> +			if (is_intel_device(data->drm_fd))
> +				data->bufs[i].driver_priv = igt_fb_map_buffer(data->drm_fd,
> +									      &data->bufs[i]);
> +		}
>  	}
>  
>  	igt_plane_set_fb(data->plane, &data->bufs[0]);
> @@ -730,8 +737,11 @@ igt_main
>  	}
>  
>  	igt_fixture {
> -		for (i = 0; i < NUM_FBS; i++)
> +		for (i = 0; i < NUM_FBS; i++) {
> +			if (is_intel_device(data.drm_fd))
> +				igt_fb_unmap_buffer(&data.bufs[i], data.bufs[i].driver_priv);
>  			igt_remove_fb(data.drm_fd, &data.bufs[i]);
> +		}
>  
>  		if (is_intel_device(data.drm_fd))
>  			buf_ops_destroy(data.bops);
> -- 
> 2.34.1
> 

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

* Re: [PATCH i-g-t 3/3] tests/kms_frontbuffer_tracking: Align to new igt_draw_rect usage
  2024-03-15  6:11 ` [PATCH i-g-t 3/3] tests/kms_frontbuffer_tracking: Align to new igt_draw_rect usage Vandita Kulkarni
@ 2024-03-19 13:25   ` Zbigniew Kempczyński
  0 siblings, 0 replies; 10+ messages in thread
From: Zbigniew Kempczyński @ 2024-03-19 13:25 UTC (permalink / raw
  To: Vandita Kulkarni; +Cc: igt-dev, bhanuprakash.modem

On Fri, Mar 15, 2024 at 11:41:42AM +0530, Vandita Kulkarni wrote:
> Pass NULL as we dont have any mmaped buffers
> 
> Signed-off-by: Vandita Kulkarni <vandita.kulkarni@intel.com>
> ---
>  tests/intel/kms_frontbuffer_tracking.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
> index db2db0ff1..392539408 100644
> --- a/tests/intel/kms_frontbuffer_tracking.c
> +++ b/tests/intel/kms_frontbuffer_tracking.c
> @@ -2254,7 +2254,7 @@ static void *busy_thread_func(void *data)
>  {
>  	while (!busy_thread.stop)
>  		igt_draw_rect(drm.fd, drm.bops, 0, busy_thread.handle,
> -			      busy_thread.size, busy_thread.stride,
> +			      busy_thread.size, busy_thread.stride, NULL,
>  			      busy_thread.width, busy_thread.height,
>  			      busy_thread.tiling, IGT_DRAW_BLT, 0, 0,
>  			      busy_thread.width, busy_thread.height,
> -- 
> 2.34.1
> 

Likely requires squeezing where you introduce this field to the
igt_draw_rect(). Anyway code is correct.

--
Zbigniew

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

end of thread, other threads:[~2024-03-19 13:26 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-15  6:11 [PATCH i-g-t 0/3] Add support to paint already mmaped buffer Vandita Kulkarni
2024-03-15  6:11 ` [PATCH i-g-t 1/3] lib/igt_draw: Dont mmap, if the buffer is already mmapped Vandita Kulkarni
2024-03-19 13:20   ` Zbigniew Kempczyński
2024-03-15  6:11 ` [PATCH i-g-t 2/3] tests/kms_async_flips: Reuse the already mmapped buffer Vandita Kulkarni
2024-03-19 13:24   ` Zbigniew Kempczyński
2024-03-15  6:11 ` [PATCH i-g-t 3/3] tests/kms_frontbuffer_tracking: Align to new igt_draw_rect usage Vandita Kulkarni
2024-03-19 13:25   ` Zbigniew Kempczyński
2024-03-15  6:53 ` ✗ CI.xeBAT: failure for Add support to paint already mmaped buffer Patchwork
2024-03-15  7:17 ` ✗ Fi.CI.BAT: " Patchwork
2024-03-19 13:08 ` [PATCH i-g-t 0/3] " Zbigniew Kempczyński

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.