Skip to contentSkip to conversation

test/perf: Add test to verify OA TLB invalidation

PATCH In review Umesh Nerlige Ramappa 3 participants 6 messages Mar 10, 2020 – Mar 12, 2020

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 test/perf: Add test to verify OA TLB invalidation

Run 2 polling tests back to back and compare the number of OA reports captured. Make sure the number of reports are almost same.

---
 tests/perf.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 97 insertions(+)
tests/perf.c +97 -0
index 5e818030..2394adc4 100644
@@ -2265,6 +2265,97 @@ test_polling(void)
 	__perf_close(stream_fd);
 }
 
+static int
+num_valid_reports_captured(struct drm_i915_perf_open_param *param)
+{
+	uint8_t buf[1024 * 1024];
+	int64_t tick_ns = 1000000000 / sysconf(_SC_CLK_TCK);
+	int64_t test_duration_ns = tick_ns * 5 * 100; /* 5 seconds */
+	int64_t start, end;
+	int num_reports = 0;
+
+	stream_fd = __perf_open(drm_fd, param, true);
+
+	igt_debug("tick length = %dns, test duration = %"PRIu64"ns\n",
+		  (int)tick_ns, test_duration_ns);
+
+	start = get_time();
+	do_ioctl(stream_fd, I915_PERF_IOCTL_ENABLE, 0);
+	for (/* nop */; ((end = get_time()) - start) < test_duration_ns; /* nop */) {
+		struct pollfd pollfd = { .fd = stream_fd, .events = POLLIN };
+		struct drm_i915_perf_record_header *header;
+		int ret;
+
+		while ((ret = poll(&pollfd, 1, -1)) < 0 &&
+		       errno == EINTR)
+			;
+		igt_assert_eq(ret, 1);
+		igt_assert(pollfd.revents & POLLIN);
+
+		while ((ret = read(stream_fd, buf, sizeof(buf))) < 0 &&
+		       errno == EINTR)
+			;
+
+		/* poll checks if the tail has advanced on the OA buffer, but
+		 * does not check if the reports are valid. On read, the driver
+		 * checks if the reports are valid or not. if none of the
+		 * reports are valid, it returns EAGAIN. EAGAIN should also
+		 * suffice to show that the TLB invalidation failed, but we will
+		 * try for a more concrete check. Ignore read errors here.
+		 */
+		if (ret < 0)
+			continue;
+
+		for (int offset = 0; offset < ret; offset += header->size) {
+			header = (void *)(buf + offset);
+
+			if (header->type == DRM_I915_PERF_RECORD_SAMPLE) {
+				uint32_t *report = (void *)(header + 1);
+
+				if ((report[0] >> OAREPORT_REASON_SHIFT) &
+				    OAREPORT_REASON_TIMER)
+					num_reports++;
+			}
+		}
+	}
+	__perf_close(stream_fd);
+
+	return num_reports;
+}
+
+static void
+gen12_test_oa_tlb_invalidate(void)
+{
+	int oa_exponent = max_oa_exponent_for_period_lte(30000000);
+	uint64_t properties[] = {
+		DRM_I915_PERF_PROP_SAMPLE_OA, true,
+
+		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
+	};
+	struct drm_i915_perf_open_param param = {
+		.flags = I915_PERF_FLAG_FD_CLOEXEC |
+			I915_PERF_FLAG_DISABLED |
+			I915_PERF_FLAG_FD_NONBLOCK,
+		.num_properties = sizeof(properties) / 16,
+		.properties_ptr = to_user_pointer(properties),
+	};
+	int num_reports1, num_reports2;
+	
+	/* Capture reports for 5 seconds twice and then make sure you get around
+	 * the same number of reports. In the case of failure, the number of
+	 * reports will vary largely since the beginning of the OA buffer
+	 * will have invalid entries.
+	 */
+	num_reports1 = num_valid_reports_captured(&param);
+	num_reports2 = num_valid_reports_captured(&param);
+
+	igt_debug("num_reports1 = %d, num_reports2 = %d\n", num_reports1, num_reports2);
+	igt_assert(num_reports2 > 0.95 * num_reports1);
+}
+
+
 static void
 test_buffer_fill(void)
 {
@@ -4622,6 +4713,12 @@ igt_main
 		gen8_test_single_ctx_render_target_writes_a_counter();
 	}
 
+	igt_describe("Test OA TLB invalidate");
+	igt_subtest("gen12-oa-tlb-invalidate") {
+		igt_require(intel_gen(devid) >= 12);
+		gen12_test_oa_tlb_invalidate();
+	}
+
 	igt_describe("Measure performance for a specific context using OAR in Gen 12");
 	igt_subtest("gen12-unprivileged-single-ctx-counters") {
 		igt_require(intel_gen(devid) >= 12);
Signature · 6 lines
2.17.1

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev
#1 lore raw
Quoted 32 lines · Umesh Nerlige Ramappa

Run 2 polling tests back to back and compare the number of OA reports captured. Make sure the number of reports are almost same.

---
  tests/perf.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++
  1 file changed, 97 insertions(+)
tests/perf.c +16 -0
index 5e818030..2394adc4 100644
@@ -2265,6 +2265,97 @@ test_polling(void)
  	__perf_close(stream_fd);
  }
 
+static int
+num_valid_reports_captured(struct drm_i915_perf_open_param *param)
+{
+	uint8_t buf[1024 * 1024];
+	int64_t tick_ns = 1000000000 / sysconf(_SC_CLK_TCK);
+	int64_t test_duration_ns = tick_ns * 5 * 100; /* 5 seconds */
+	int64_t start, end;
+	int num_reports = 0;
+
+	stream_fd = __perf_open(drm_fd, param, true);
+
+	igt_debug("tick length = %dns, test duration = %"PRIu64"ns\n",
+		  (int)tick_ns, test_duration_ns);
+
+	start = get_time();
+	do_ioctl(stream_fd, I915_PERF_IOCTL_ENABLE, 0);

tests/perf.c test_polling(void) · line 2293

Quoted 10 lines
tests/perf.c +10 -0
+	for (/* nop */; ((end = get_time()) - start) < test_duration_ns; /* nop */) {
+		struct pollfd pollfd = { .fd = stream_fd, .events = POLLIN };
+		struct drm_i915_perf_record_header *header;
+		int ret;
+
+		while ((ret = poll(&pollfd, 1, -1)) < 0 &&
+		       errno == EINTR)
+			;
+		igt_assert_eq(ret, 1);
+		igt_assert(pollfd.revents & POLLIN);

I guess you can drop the poll() if you drop the I915_PERF_FLAG_FD_NONBLOCK below.

That way your reads are blocking.

Or if you want more accuracy, you can compute the amount of poll() timeout based of test_duration_ns and exit the loop earlier.

Quoted 47 lines
tests/perf.c +47 -0
+
+		while ((ret = read(stream_fd, buf, sizeof(buf))) < 0 &&
+		       errno == EINTR)
+			;
+
+		/* poll checks if the tail has advanced on the OA buffer, but
+		 * does not check if the reports are valid. On read, the driver
+		 * checks if the reports are valid or not. if none of the
+		 * reports are valid, it returns EAGAIN. EAGAIN should also
+		 * suffice to show that the TLB invalidation failed, but we will
+		 * try for a more concrete check. Ignore read errors here.
+		 */
+		if (ret < 0)
+			continue;
+
+		for (int offset = 0; offset < ret; offset += header->size) {
+			header = (void *)(buf + offset);
+
+			if (header->type == DRM_I915_PERF_RECORD_SAMPLE) {
+				uint32_t *report = (void *)(header + 1);
+
+				if ((report[0] >> OAREPORT_REASON_SHIFT) &
+				    OAREPORT_REASON_TIMER)
+					num_reports++;
+			}
+		}
+	}
+	__perf_close(stream_fd);
+
+	return num_reports;
+}
+
+static void
+gen12_test_oa_tlb_invalidate(void)
+{
+	int oa_exponent = max_oa_exponent_for_period_lte(30000000);
+	uint64_t properties[] = {
+		DRM_I915_PERF_PROP_SAMPLE_OA, true,
+
+		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
+	};
+	struct drm_i915_perf_open_param param = {
+		.flags = I915_PERF_FLAG_FD_CLOEXEC |
+			I915_PERF_FLAG_DISABLED |
+			I915_PERF_FLAG_FD_NONBLOCK,

tests/perf.c test_polling(void) · line 2350

Quoted 10 lines
tests/perf.c +10 -0
+		.num_properties = sizeof(properties) / 16,
+		.properties_ptr = to_user_pointer(properties),
+	};
+	int num_reports1, num_reports2;
+	
+	/* Capture reports for 5 seconds twice and then make sure you get around
+	 * the same number of reports. In the case of failure, the number of
+	 * reports will vary largely since the beginning of the OA buffer
+	 * will have invalid entries.
+	 */

I thought you were also noticing corruption in the data.

Seems like it would be an easier characterization of the failure than the number of reports (since the number can vary for a other reasons).

What do you think?

-Lionel

Quoted 14 lines
tests/perf.c +8 -0
+	num_reports1 = num_valid_reports_captured(&param);
+	num_reports2 = num_valid_reports_captured(&param);
+
+	igt_debug("num_reports1 = %d, num_reports2 = %d\n", num_reports1, num_reports2);
+	igt_assert(num_reports2 > 0.95 * num_reports1);
+}
+
+
  static void
  test_buffer_fill(void)
  {
@@ -4622,6 +4713,12 @@ igt_main
  		gen8_test_single_ctx_render_target_writes_a_counter();
  	}

tests/perf.c igt_main · line 4724

Quoted 10 lines
tests/perf.c +6 -0
 
+	igt_describe("Test OA TLB invalidate");
+	igt_subtest("gen12-oa-tlb-invalidate") {
+		igt_require(intel_gen(devid) >= 12);
+		gen12_test_oa_tlb_invalidate();
+	}
+
  	igt_describe("Measure performance for a specific context using OAR in Gen 12");
  	igt_subtest("gen12-unprivileged-single-ctx-counters") {
  		igt_require(intel_gen(devid) >= 12);

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#2 lore raw
Quoted 46 lines · Lionel Landwerlin
Quoted 31 lines · Umesh Nerlige Ramappa

Run 2 polling tests back to back and compare the number of OA reports captured. Make sure the number of reports are almost same.

---
 tests/perf.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 97 insertions(+)
tests/perf.c +16 -0
index 5e818030..2394adc4 100644
@@ -2265,6 +2265,97 @@ test_polling(void)
 	__perf_close(stream_fd);
 }
+static int
+num_valid_reports_captured(struct drm_i915_perf_open_param *param)
+{
+	uint8_t buf[1024 * 1024];
+	int64_t tick_ns = 1000000000 / sysconf(_SC_CLK_TCK);
+	int64_t test_duration_ns = tick_ns * 5 * 100; /* 5 seconds */
+	int64_t start, end;
+	int num_reports = 0;
+
+	stream_fd = __perf_open(drm_fd, param, true);
+
+	igt_debug("tick length = %dns, test duration = %"PRIu64"ns\n",
+		  (int)tick_ns, test_duration_ns);
+
+	start = get_time();
+	do_ioctl(stream_fd, I915_PERF_IOCTL_ENABLE, 0);

tests/perf.c test_polling(void) · line 2292

Quoted 10 lines
tests/perf.c +10 -0
+	for (/* nop */; ((end = get_time()) - start) < test_duration_ns; /* nop */) {
+		struct pollfd pollfd = { .fd = stream_fd, .events = POLLIN };
+		struct drm_i915_perf_record_header *header;
+		int ret;
+
+		while ((ret = poll(&pollfd, 1, -1)) < 0 &&
+		       errno == EINTR)
+			;
+		igt_assert_eq(ret, 1);
+		igt_assert(pollfd.revents & POLLIN);

I guess you can drop the poll() if you drop the I915_PERF_FLAG_FD_NONBLOCK below.

Quoted 5 lines

That way your reads are blocking.

Or if you want more accuracy, you can compute the amount of poll() timeout based of test_duration_ns and exit the loop earlier.

In the failure case, I actually see zero valid reports in 5 seconds, so the blocking read would block endlessly. Poll will instead return indicating that reports are available (even if reports are invalid).

I think adding a poll timeout based on the test duration is a good idea in case the poll behavior changes in future.

Quoted 53 lines
Quoted 53 lines
tests/perf.c +52 -0
+
+		while ((ret = read(stream_fd, buf, sizeof(buf))) < 0 &&
+		       errno == EINTR)
+			;
+
+		/* poll checks if the tail has advanced on the OA buffer, but
+		 * does not check if the reports are valid. On read, the driver
+		 * checks if the reports are valid or not. if none of the
+		 * reports are valid, it returns EAGAIN. EAGAIN should also
+		 * suffice to show that the TLB invalidation failed, but we will
+		 * try for a more concrete check. Ignore read errors here.
+		 */
+		if (ret < 0)
+			continue;
+
+		for (int offset = 0; offset < ret; offset += header->size) {
+			header = (void *)(buf + offset);
+
+			if (header->type == DRM_I915_PERF_RECORD_SAMPLE) {
+				uint32_t *report = (void *)(header + 1);
+
+				if ((report[0] >> OAREPORT_REASON_SHIFT) &
+				    OAREPORT_REASON_TIMER)
+					num_reports++;
+			}
+		}
+	}
+	__perf_close(stream_fd);
+
+	return num_reports;
+}
+
+static void
+gen12_test_oa_tlb_invalidate(void)
+{
+	int oa_exponent = max_oa_exponent_for_period_lte(30000000);
+	uint64_t properties[] = {
+		DRM_I915_PERF_PROP_SAMPLE_OA, true,
+
+		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
+	};
+	struct drm_i915_perf_open_param param = {
+		.flags = I915_PERF_FLAG_FD_CLOEXEC |
+			I915_PERF_FLAG_DISABLED |
+			I915_PERF_FLAG_FD_NONBLOCK,
+		.num_properties = sizeof(properties) / 16,
+		.properties_ptr = to_user_pointer(properties),
+	};
+	int num_reports1, num_reports2;
+	
Quoted 8 lines

tests/perf.c test_polling(void) · line 2350

Quoted 5 lines
tests/perf.c +5 -0
+	/* Capture reports for 5 seconds twice and then make sure you get around
+	 * the same number of reports. In the case of failure, the number of
+	 * reports will vary largely since the beginning of the OA buffer
+	 * will have invalid entries.
+	 */

I thought you were also noticing corruption in the data.

I don't see corruption of OA reports. Just missing reports in the beginning of OA buffer. All reports are zeroed out.

When trying the interrupt patches, I saw a random reboot with blocking-with-interrupt (or any of the other subtests that ran multiple cases). My theory was that OA is writing reports to oa buffer memory from previous iteration. That failure/reboot does not occur anymore with this patch (invalidating tlb).

Thanks,
Umesh

Quoted 24 lines

Seems like it would be an easier characterization of the failure than the number of reports (since the number can vary for a other reasons).

What do you think?

-Lionel

Quoted 15 lines
tests/perf.c +9 -0
+	num_reports1 = num_valid_reports_captured(&param);
+	num_reports2 = num_valid_reports_captured(&param);
+
+	igt_debug("num_reports1 = %d, num_reports2 = %d\n", num_reports1, num_reports2);
+	igt_assert(num_reports2 > 0.95 * num_reports1);
+}
+
+
 static void
 test_buffer_fill(void)
 {
@@ -4622,6 +4713,12 @@ igt_main
 		gen8_test_single_ctx_render_target_writes_a_counter();
 	}
+	igt_describe("Test OA TLB invalidate");
Quoted 10 lines

tests/perf.c igt_main · line 4724

Quoted 8 lines
tests/perf.c +5 -0
+	igt_subtest("gen12-oa-tlb-invalidate") {
+		igt_require(intel_gen(devid) >= 12);
+		gen12_test_oa_tlb_invalidate();
+	}
+
 	igt_describe("Measure performance for a specific context using OAR in Gen 12");
 	igt_subtest("gen12-unprivileged-single-ctx-counters") {
 		igt_require(intel_gen(devid) >= 12);

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#3 lore raw
Quoted 125 lines · Umesh Nerlige Ramappa
Quoted 47 lines · Lionel Landwerlin
Quoted 32 lines · Umesh Nerlige Ramappa

Run 2 polling tests back to back and compare the number of OA reports captured. Make sure the number of reports are almost same.

---
 tests/perf.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++

 1 file changed, 97 insertions(+)
tests/perf.c +17 -0
index 5e818030..2394adc4 100644
@@ -2265,6 +2265,97 @@ test_polling(void)
      __perf_close(stream_fd);
  }
+static int
+num_valid_reports_captured(struct drm_i915_perf_open_param *param)
+{
+    uint8_t buf[1024 * 1024];
+    int64_t tick_ns = 1000000000 / sysconf(_SC_CLK_TCK);
+    int64_t test_duration_ns = tick_ns * 5 * 100; /* 5 seconds */
+    int64_t start, end;
+    int num_reports = 0;
+
+    stream_fd = __perf_open(drm_fd, param, true);
+
+    igt_debug("tick length = %dns, test duration = %"PRIu64"ns\n",
+          (int)tick_ns, test_duration_ns);
+
+    start = get_time();
+    do_ioctl(stream_fd, I915_PERF_IOCTL_ENABLE, 0);
+    for (/* nop */; ((end = get_time()) - start) < 

tests/perf.c test_polling(void) · line 2293

Quoted 10 lines
tests/perf.c +9 -0
 test_duration_ns; /* nop */) {
+        struct pollfd pollfd = { .fd = stream_fd, .events = POLLIN };
+        struct drm_i915_perf_record_header *header;
+        int ret;
+
+        while ((ret = poll(&pollfd, 1, -1)) < 0 &&
+               errno == EINTR)
+            ;
+        igt_assert_eq(ret, 1);
+        igt_assert(pollfd.revents & POLLIN);

I guess you can drop the poll() if you drop the I915_PERF_FLAG_FD_NONBLOCK below.

Quoted 5 lines

That way your reads are blocking.

Or if you want more accuracy, you can compute the amount of poll() timeout based of test_duration_ns and exit the loop earlier.

In the failure case, I actually see zero valid reports in 5 seconds, so the blocking read would block endlessly. Poll will instead return indicating that reports are available (even if reports are invalid).

I think adding a poll timeout based on the test duration is a good idea in case the poll behavior changes in future.

Quoted 58 lines
Quoted 58 lines
tests/perf.c +7 -0
+
+        while ((ret = read(stream_fd, buf, sizeof(buf))) < 0 &&
+               errno == EINTR)
+            ;
+
+        /* poll checks if the tail has advanced on the OA buffer, but
+         * does not check if the reports are valid. On read, the 

driver
+         * checks if the reports are valid or not. if none of the +         * reports are valid, it returns EAGAIN. EAGAIN should also +         * suffice to show that the TLB invalidation failed, but we will
+         * try for a more concrete check. Ignore read errors here. +         */
+        if (ret < 0)
+            continue;

tests/perf.c +26 -0
+
+        for (int offset = 0; offset < ret; offset += header->size) {
+            header = (void *)(buf + offset);
+
+            if (header->type == DRM_I915_PERF_RECORD_SAMPLE) {
+                uint32_t *report = (void *)(header + 1);
+
+                if ((report[0] >> OAREPORT_REASON_SHIFT) &
+                    OAREPORT_REASON_TIMER)
+                    num_reports++;
+            }
+        }
+    }
+    __perf_close(stream_fd);
+
+    return num_reports;
+}
+
+static void
+gen12_test_oa_tlb_invalidate(void)
+{
+    int oa_exponent = max_oa_exponent_for_period_lte(30000000);
+    uint64_t properties[] = {
+        DRM_I915_PERF_PROP_SAMPLE_OA, true,
+
+        DRM_I915_PERF_PROP_OA_METRICS_SET, 

test_set->perf_oa_metrics_set,
+        DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format, +        DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
+    };
+    struct drm_i915_perf_open_param param = {
+        .flags = I915_PERF_FLAG_FD_CLOEXEC |
+            I915_PERF_FLAG_DISABLED |
+            I915_PERF_FLAG_FD_NONBLOCK,
+        .num_properties = sizeof(properties) / 16,
+        .properties_ptr = to_user_pointer(properties), +    };
+    int num_reports1, num_reports2;
+
+    /* Capture reports for 5 seconds twice and then make sure you get around

Quoted 8 lines
Quoted 5 lines

+     * the same number of reports. In the case of failure, the number of
+     * reports will vary largely since the beginning of the OA buffer +     * will have invalid entries.
+     */

I thought you were also noticing corruption in the data.

Quoted 6 lines

I don't see corruption of OA reports. Just missing reports in the beginning of OA buffer. All reports are zeroed out.

When trying the interrupt patches, I saw a random reboot with blocking-with-interrupt (or any of the other subtests that ran multiple cases). My theory was that OA is writing reports to oa buffer memory from previous iteration. That failure/reboot does not occur anymore with this patch (invalidating tlb).

Thanks,
Umesh

Thanks for the explanation.

-Lionel

Quoted 28 lines
Quoted 28 lines

Seems like it would be an easier characterization of the failure than the number of reports (since the number can vary for a other reasons).

What do you think?

-Lionel

Quoted 18 lines

+    num_reports1 = num_valid_reports_captured(&param); +    num_reports2 = num_valid_reports_captured(&param); +
+    igt_debug("num_reports1 = %d, num_reports2 = %d\n", num_reports1, num_reports2);
+    igt_assert(num_reports2 > 0.95 * num_reports1);

tests/perf.c +3 -0
+}
+
+

 static void
 test_buffer_fill(void)
 {

tests/perf.c +3 -0
@@ -4622,6 +4713,12 @@ igt_main
 gen8_test_single_ctx_render_target_writes_a_counter();
      }
+    igt_describe("Test OA TLB invalidate");
+    igt_subtest("gen12-oa-tlb-invalidate") {
+        igt_require(intel_gen(devid) >= 12);
Quoted 8 lines
Quoted 8 lines

tests/perf.c igt_main · line 4724

Quoted 6 lines
tests/perf.c +3 -0
+        gen12_test_oa_tlb_invalidate();
+    }
+
      igt_describe("Measure performance for a specific context using OAR in Gen 12");
      igt_subtest("gen12-unprivileged-single-ctx-counters") {
          igt_require(intel_gen(devid) >= 12);

_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#4 lore raw

[igt-dev] ✓ Fi.CI.BAT: success for test/perf: Add test to verify OA TLB invalidation

In reply to Umesh Nerlige Ramappa
== Series Details ==

== Series Details ==

Series: test/perf: Add test to verify OA TLB invalidation
URL : https://patchwork.freedesktop.org/series/74477/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8106 -> IGTPW_4284
====================================================

Summary
-------

**SUCCESS**

No regressions found.

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

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

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

### IGT changes ###

#### Issues hit ####

* igt@gem_exec_suspend@basic-s4-devices:
- fi-tgl-y: [PASS][1] -> [FAIL][2] ([CI#94])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/fi-tgl-y/igt@[email protected]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/fi-tgl-y/igt@[email protected]

* igt@kms_flip@basic-flip-vs-dpms:
- fi-skl-6770hq: [PASS][3] -> [SKIP][4] ([fdo#109271]) +24 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/fi-skl-6770hq/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/fi-skl-6770hq/igt@[email protected]

* igt@prime_vgem@basic-sync-default:
- fi-tgl-y: [PASS][5] -> [DMESG-WARN][6] ([CI#94] / [i915#402]) +2 similar issues
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/fi-tgl-y/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/fi-tgl-y/igt@[email protected]

#### Possible fixes ####

* igt@gem_flink_basic@bad-open:
- fi-tgl-y: [DMESG-WARN][7] ([CI#94] / [i915#402]) -> [PASS][8]
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/fi-tgl-y/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/fi-tgl-y/igt@[email protected]

[CI#94]: https://gitlab.freedesktop.org/gfx-ci/i915-infra/issues/94
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[i915#402]: https://gitlab.freedesktop.org/drm/intel/issues/402

Participating hosts (44 -> 44)
------------------------------

Additional (5): fi-bdw-5557u fi-kbl-7500u fi-cfl-8109u fi-skl-6600u fi-snb-2600
Missing (5): fi-hsw-4200u fi-bsw-cyan fi-ctg-p8600 fi-byt-clapper fi-bdw-samus

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

* CI: CI-20190529 -> None
* IGT: IGT_5504 -> IGTPW_4284

CI-20190529: 20190529
CI_DRM_8106: 5b0076e8066ea8218e7857ee1aa28b0670acde94 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4284: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/index.html
IGT_5504: d6788bf0404f76b66170e18eb26c85004b5ccb25 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools

== Testlist changes ==

+igt@perf@gen12-oa-tlb-invalidate

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/index.html
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev

#5 lore raw

[igt-dev] ✓ Fi.CI.IGT: success for test/perf: Add test to verify OA TLB invalidation

In reply to Umesh Nerlige Ramappa
== Series Details ==

== Series Details ==

Series: test/perf: Add test to verify OA TLB invalidation
URL : https://patchwork.freedesktop.org/series/74477/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_8106_full -> IGTPW_4284_full
====================================================

Summary
-------

**SUCCESS**

No regressions found.

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

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

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

### IGT changes ###

#### Possible regressions ####

* {igt@perf@gen12-oa-tlb-invalidate} (NEW):
- shard-tglb: NOTRUN -> [FAIL][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-tglb8/igt@[email protected]
- shard-iclb: NOTRUN -> [SKIP][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb5/igt@[email protected]

New tests
---------

New tests have been introduced between CI_DRM_8106_full and IGTPW_4284_full:

### New IGT tests (1) ###

* igt@perf@gen12-oa-tlb-invalidate:
- Statuses : 1 fail(s) 4 skip(s)
- Exec time: [0.0, 10.10] s

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

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

### IGT changes ###

#### Issues hit ####

* igt@gem_ctx_shared@exec-single-timeline-bsd:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#110841])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb8/igt@[email protected]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb1/igt@[email protected]

* igt@gem_eio@in-flight-contexts-10ms:
- shard-snb: [PASS][5] -> [INCOMPLETE][6] ([i915#82])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-snb4/igt@[email protected]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-snb4/igt@[email protected]

* igt@gem_exec_async@concurrent-writes-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([fdo#112146]) +6 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb8/igt@[email protected]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb2/igt@[email protected]

* igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#110854])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb1/igt@[email protected]
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb3/igt@[email protected]

* igt@gem_exec_parallel@vcs1-fds:
- shard-iclb: [PASS][11] -> [SKIP][12] ([fdo#112080]) +10 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb4/igt@[email protected]
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb3/igt@[email protected]

* igt@gem_exec_schedule@pi-shared-iova-bsd:
- shard-iclb: [PASS][13] -> [SKIP][14] ([i915#677]) +1 similar issue
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb5/igt@[email protected]
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb2/igt@[email protected]

* igt@gem_exec_schedule@preempt-queue-bsd1:
- shard-iclb: [PASS][15] -> [SKIP][16] ([fdo#109276]) +15 similar issues
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb1/igt@[email protected]
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb5/igt@[email protected]

* igt@gem_exec_whisper@basic-contexts:
- shard-glk: [PASS][17] -> [DMESG-WARN][18] ([i915#118] / [i915#95])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-glk6/igt@[email protected]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-glk2/igt@[email protected]

* igt@i915_pm_dc@dc6-dpms:
- shard-iclb: [PASS][19] -> [FAIL][20] ([i915#454]) +1 similar issue
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb7/igt@[email protected]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb3/igt@[email protected]

* igt@i915_pm_rps@reset:
- shard-iclb: [PASS][21] -> [FAIL][22] ([i915#413]) +1 similar issue
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb7/igt@[email protected]
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb5/igt@[email protected]

* igt@kms_cursor_crc@pipe-a-cursor-suspend:
- shard-kbl: [PASS][23] -> [DMESG-WARN][24] ([i915#180])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-kbl7/igt@[email protected]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-kbl1/igt@[email protected]

* igt@kms_flip@2x-plain-flip-ts-check:
- shard-glk: [PASS][25] -> [FAIL][26] ([i915#34])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-glk6/igt@[email protected]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-glk8/igt@[email protected]

* igt@kms_flip@flip-vs-expired-vblank-interruptible:
- shard-glk: [PASS][27] -> [FAIL][28] ([i915#79])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-glk4/igt@[email protected]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-glk8/igt@[email protected]

* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-apl: [PASS][29] -> [DMESG-WARN][30] ([i915#180]) +3 similar issues
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-apl6/igt@[email protected]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-apl8/igt@[email protected]

* igt@kms_psr2_su@frontbuffer:
- shard-iclb: [PASS][31] -> [SKIP][32] ([fdo#109642] / [fdo#111068])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb2/igt@[email protected]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb1/igt@[email protected]

* igt@kms_psr@psr2_cursor_render:
- shard-iclb: [PASS][33] -> [SKIP][34] ([fdo#109441]) +2 similar issues
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb2/igt@kms_psr@psr2_cursor_render.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb7/igt@kms_psr@psr2_cursor_render.html

#### Possible fixes ####

* igt@gem_ctx_isolation@rcs0-s3:
- shard-kbl: [DMESG-WARN][35] ([i915#180]) -> [PASS][36] +2 similar issues
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-kbl1/igt@[email protected]
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-kbl6/igt@[email protected]

* igt@gem_ctx_persistence@processes:
- shard-kbl: [FAIL][37] ([i915#570] / [i915#679]) -> [PASS][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-kbl2/igt@[email protected]
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-kbl7/igt@[email protected]

* igt@gem_exec_schedule@implicit-both-bsd:
- shard-iclb: [SKIP][39] ([i915#677]) -> [PASS][40]
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb4/igt@[email protected]
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb3/igt@[email protected]

* igt@gem_exec_schedule@preempt-other-chain-bsd:
- shard-iclb: [SKIP][41] ([fdo#112146]) -> [PASS][42] +5 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb4/igt@[email protected]
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb8/igt@[email protected]

* igt@gem_exec_whisper@basic-queues-forked:
- shard-glk: [DMESG-WARN][43] ([i915#118] / [i915#95]) -> [PASS][44] +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-glk2/igt@[email protected]
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-glk8/igt@[email protected]

* igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-glk: [FAIL][45] ([i915#644]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-glk9/igt@[email protected]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-glk8/igt@[email protected]

* igt@i915_suspend@sysfs-reader:
- shard-snb: [DMESG-WARN][47] ([i915#42]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-snb4/igt@[email protected]
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-snb2/igt@[email protected]

* igt@kms_cursor_crc@pipe-b-cursor-64x64-offscreen:
- shard-apl: [FAIL][49] ([i915#54]) -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-apl6/igt@[email protected]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-apl3/igt@[email protected]

* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible:
- shard-glk: [FAIL][51] ([i915#79]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-glk9/igt@[email protected]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-glk5/igt@[email protected]

* igt@kms_flip@flip-vs-suspend-interruptible:
- shard-kbl: [DMESG-WARN][53] ([i915#180] / [i915#56]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-kbl1/igt@[email protected]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-kbl4/igt@[email protected]

* igt@kms_plane_lowres@pipe-a-tiling-x:
- shard-glk: [FAIL][55] ([i915#899]) -> [PASS][56]
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-glk9/igt@[email protected]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-glk5/igt@[email protected]

* igt@kms_plane_multiple@atomic-pipe-c-tiling-x:
- shard-hsw: [DMESG-WARN][57] ([i915#478]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-hsw7/igt@[email protected]
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-hsw4/igt@[email protected]

* igt@kms_psr@psr2_cursor_blt:
- shard-iclb: [SKIP][59] ([fdo#109441]) -> [PASS][60] +1 similar issue
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb4/igt@kms_psr@psr2_cursor_blt.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb2/igt@kms_psr@psr2_cursor_blt.html

* igt@kms_vblank@pipe-a-ts-continuation-suspend:
- shard-apl: [DMESG-WARN][61] ([i915#180]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-apl1/igt@[email protected]
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-apl2/igt@[email protected]

* igt@perf_pmu@busy-vcs1:
- shard-iclb: [SKIP][63] ([fdo#112080]) -> [PASS][64] +12 similar issues
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb7/igt@[email protected]
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb1/igt@[email protected]

* igt@prime_vgem@basic-gtt:
- shard-snb: [DMESG-WARN][65] ([i915#478]) -> [PASS][66]
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-snb4/igt@[email protected]
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-snb6/igt@[email protected]

* igt@prime_vgem@fence-wait-bsd2:
- shard-iclb: [SKIP][67] ([fdo#109276]) -> [PASS][68] +20 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-iclb7/igt@[email protected]
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-iclb2/igt@[email protected]

#### Warnings ####

* igt@gem_linear_blits@normal:
- shard-apl: [TIMEOUT][69] ([i915#1322]) -> [TIMEOUT][70] ([fdo#111732] / [i915#1322])
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-apl4/igt@[email protected]
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-apl6/igt@[email protected]

* igt@gem_userptr_blits@dmabuf-sync:
- shard-snb: [DMESG-WARN][71] ([fdo#110789] / [fdo#111870] / [i915#478]) -> [DMESG-WARN][72] ([fdo#111870] / [i915#478])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-snb6/igt@[email protected]
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-snb4/igt@[email protected]
- shard-hsw: [DMESG-WARN][73] ([fdo#110789] / [fdo#111870]) -> [DMESG-WARN][74] ([fdo#111870])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-hsw8/igt@[email protected]
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-hsw4/igt@[email protected]

* igt@i915_pm_rpm@fences:
- shard-snb: [INCOMPLETE][75] ([i915#82]) -> [SKIP][76] ([fdo#109271])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_8106/shard-snb4/igt@[email protected]
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/shard-snb4/igt@[email protected]

{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#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
[fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
[fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111732]: https://bugs.freedesktop.org/show_bug.cgi?id=111732
[fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
[fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
[fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1322]: https://gitlab.freedesktop.org/drm/intel/issues/1322
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#34]: https://gitlab.freedesktop.org/drm/intel/issues/34
[i915#413]: https://gitlab.freedesktop.org/drm/intel/issues/413
[i915#42]: https://gitlab.freedesktop.org/drm/intel/issues/42
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#478]: https://gitlab.freedesktop.org/drm/intel/issues/478
[i915#54]: https://gitlab.freedesktop.org/drm/intel/issues/54
[i915#56]: https://gitlab.freedesktop.org/drm/intel/issues/56
[i915#570]: https://gitlab.freedesktop.org/drm/intel/issues/570
[i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
[i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
[i915#679]: https://gitlab.freedesktop.org/drm/intel/issues/679
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
[i915#82]: https://gitlab.freedesktop.org/drm/intel/issues/82
[i915#899]: https://gitlab.freedesktop.org/drm/intel/issues/899
[i915#95]: https://gitlab.freedesktop.org/drm/intel/issues/95

Participating hosts (10 -> 8)
------------------------------

Missing (2): pig-skl-6260u pig-glk-j5005

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

* CI: CI-20190529 -> None
* IGT: IGT_5504 -> IGTPW_4284
* Piglit: piglit_4509 -> None

CI-20190529: 20190529
CI_DRM_8106: 5b0076e8066ea8218e7857ee1aa28b0670acde94 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4284: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/index.html
IGT_5504: d6788bf0404f76b66170e18eb26c85004b5ccb25 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4284/index.html
_______________________________________________
igt-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/igt-dev