* [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units
@ 2025-10-13 20:30 Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 01/18] tests/intel/xe_oa: Add OAM formats to lnl_oa_formats Ashutosh Dixit
` (20 more replies)
0 siblings, 21 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Previously OA IGT's were running only on the OAG OA unit. This patchset
changes the tests so they can be run on any/all OA units. For example, on
BMG, the non-zero-reason-all test will now result in the following output:
$ sudo ./build/tests/xe_oa --r non-zero-reason-all
IGT-Version: 2.2-g30a56696e (x86_64) (Linux: 6.15.0+ x86_64)
Using IGT_SRANDOM=1759524233 for randomisation
Opened device: /dev/dri/card0
Starting subtest: non-zero-reason-all
Starting dynamic subtest: oag-0
Dynamic subtest oag-0: SUCCESS (0.055s)
Starting dynamic subtest: sag-1
Dynamic subtest sag-1: SUCCESS (0.071s)
Starting dynamic subtest: oam-2
Dynamic subtest oam-2: SUCCESS (0.069s)
Starting dynamic subtest: oam-3
Dynamic subtest oam-3: SUCCESS (0.068s)
Subtest non-zero-reason-all: SUCCESS (0.263s)
v2: Address code review comments from Umesh
Ashutosh Dixit (18):
tests/intel/xe_oa: Add OAM formats to lnl_oa_formats
tests/intel/xe_oa: Get rid of unnecessary
DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE
tests/intel/xe_oa: Rename nth_oa_unit to oa_unit_by_id
tests/intel/xe_oa: Change oa_unit_engine to take an oa_unit argument
tests/intel/xe_oa: Add oa_unit_by_type
tests/intel/xe_oa: Add for_each_oa_unit
tests/intel/xe_oa: Convert test_oa_formats to take an OA unit argument
tests/intel/xe_oa: Convert several more tests to take OA unit
arguments
tests/intel/xe_oa: Convert test_non_zero_reason to take an OA unit
argument
tests/intel/xe_oa: Convert blocking/polling tests to take OA unit
arguments
tests/intel/xe_oa: Convert test_mi_rpc to take an OA unit argument
tests/intel/xe_oa: Convert
test_single_ctx_render_target_writes_a_counter
tests/intel/xe_oa: Convert OA buffer mmap tests to take OA unit
arguments
tests/intel/xe_oa: Convert MMIO trigger tests to take OA unit
arguments
tests/intel/xe_oa: Convert sync tests to take OA unit arguments
tests/intel/xe_oa: Run test_oa_unit_exclusive_stream on multiple OA
units
tests/intel/xe_oa: Add new non-zero-reason-all test
tests/intel/xe_oa: Constify arguments to various functions
tests/intel/xe_oa.c | 506 ++++++++++++++++++++++----------------------
1 file changed, 256 insertions(+), 250 deletions(-)
--
2.48.1
^ permalink raw reply [flat|nested] 24+ messages in thread
* [PATCH i-g-t 01/18] tests/intel/xe_oa: Add OAM formats to lnl_oa_formats
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 02/18] tests/intel/xe_oa: Get rid of unnecessary DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE Ashutosh Dixit
` (19 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Add previously missing OAM formats to list of Xe2+ OA formats.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index 4f2aff59ac..0a00105bd4 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -242,6 +242,18 @@ static struct oa_format mtl_oa_formats[XE_OA_FORMAT_MAX] = {
};
static struct oa_format lnl_oa_formats[XE_OA_FORMAT_MAX] = {
+ [XE_OAM_FORMAT_MPEC8u64_B8_C8] = {
+ "MPEC8u64_B8_C8", .size = 192,
+ .oa_type = DRM_XE_OA_FMT_TYPE_OAM_MPEC,
+ .report_hdr_64bit = true,
+ .counter_select = 1,
+ },
+ [XE_OAM_FORMAT_MPEC8u32_B8_C8] = {
+ "MPEC8u32_B8_C8", .size = 128,
+ .oa_type = DRM_XE_OA_FMT_TYPE_OAM_MPEC,
+ .report_hdr_64bit = true,
+ .counter_select = 2,
+ },
[XE_OA_FORMAT_PEC64u64] = {
"PEC64u64", .size = 576,
.oa_type = DRM_XE_OA_FMT_TYPE_PEC,
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 02/18] tests/intel/xe_oa: Get rid of unnecessary DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 01/18] tests/intel/xe_oa: Add OAM formats to lnl_oa_formats Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t v2 03/18] tests/intel/xe_oa: Rename nth_oa_unit to oa_unit_by_id Ashutosh Dixit
` (18 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE is needed only when input OA
properties include an exec queue. In other cases the kernel does not use
DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE. Stop providing the unnecessary
DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE property for these cases. This is
needed to use OA units which don't have an associated hwe.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index 0a00105bd4..a028823e51 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -1559,8 +1559,6 @@ open_and_read_2_oa_reports(int format_id,
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(format_id),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, exponent,
- DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, hwe->engine_instance,
-
};
struct intel_xe_oa_open_prop param = {
.num_properties = ARRAY_SIZE(properties) / 2,
@@ -1877,7 +1875,6 @@ static void test_oa_exponents(const struct drm_xe_engine_class_instance *hwe)
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(fmt),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, exponent,
- DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, hwe->engine_instance,
};
struct intel_xe_oa_open_prop param = {
.num_properties = ARRAY_SIZE(properties) / 2,
@@ -2096,7 +2093,6 @@ static void test_blocking(uint64_t requested_oa_period,
ADD_PROPS(props, idx, OA_PERIOD_EXPONENT, oa_exponent);
ADD_PROPS(props, idx, OA_DISABLED, true);
ADD_PROPS(props, idx, OA_UNIT_ID, 0);
- ADD_PROPS(props, idx, OA_ENGINE_INSTANCE, hwe->engine_instance);
param.num_properties = (idx - props) / 2;
param.properties_ptr = to_user_pointer(props);
@@ -2241,7 +2237,6 @@ static void test_polling(uint64_t requested_oa_period,
ADD_PROPS(props, idx, OA_PERIOD_EXPONENT, oa_exponent);
ADD_PROPS(props, idx, OA_DISABLED, true);
ADD_PROPS(props, idx, OA_UNIT_ID, 0);
- ADD_PROPS(props, idx, OA_ENGINE_INSTANCE, hwe->engine_instance);
param.num_properties = (idx - props) / 2;
param.properties_ptr = to_user_pointer(props);
@@ -2498,7 +2493,6 @@ test_oa_tlb_invalidate(const struct drm_xe_engine_class_instance *hwe)
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(test_set->perf_oa_format),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, oa_exponent_default,
DRM_XE_OA_PROPERTY_OA_DISABLED, true,
- DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, hwe->engine_instance,
};
struct intel_xe_oa_open_prop param = {
.num_properties = ARRAY_SIZE(properties) / 2,
@@ -2563,7 +2557,6 @@ test_buffer_fill(const struct drm_xe_engine_class_instance *hwe)
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(fmt),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, oa_exponent,
- DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, hwe->engine_instance,
DRM_XE_OA_PROPERTY_OA_BUFFER_SIZE, buffer_fill_size,
};
struct intel_xe_oa_open_prop param = {
@@ -2611,7 +2604,6 @@ test_non_zero_reason(const struct drm_xe_engine_class_instance *hwe, size_t oa_b
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(fmt),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, oa_exponent,
- DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, hwe->engine_instance,
DRM_XE_OA_PROPERTY_OA_BUFFER_SIZE, oa_buffer_size ?: buffer_fill_size
};
struct intel_xe_oa_open_prop param = {
@@ -2700,7 +2692,6 @@ test_enable_disable(const struct drm_xe_engine_class_instance *hwe)
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(fmt),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, oa_exponent_default,
DRM_XE_OA_PROPERTY_OA_DISABLED, true,
- DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, hwe->engine_instance,
DRM_XE_OA_PROPERTY_WAIT_NUM_REPORTS, num_reports,
};
struct intel_xe_oa_open_prop param = {
@@ -3491,7 +3482,6 @@ test_stress_open_close(const struct drm_xe_engine_class_instance *hwe)
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(test_set->perf_oa_format),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, oa_exponent_default,
DRM_XE_OA_PROPERTY_OA_DISABLED, true,
- DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, hwe->engine_instance,
};
struct intel_xe_oa_open_prop param = {
.num_properties = ARRAY_SIZE(properties) / 2,
@@ -4008,7 +3998,6 @@ __test_mmio_triggered_reports(struct drm_xe_engine_class_instance *hwe)
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(test_set->perf_oa_format),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, oa_exponent_default,
- DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, hwe->engine_instance,
};
struct intel_xe_oa_open_prop param = {
.num_properties = sizeof(properties) / 16,
@@ -4114,7 +4103,6 @@ __test_mmio_triggered_reports_read(struct drm_xe_engine_class_instance *hwe)
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(test_set->perf_oa_format),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, oa_exponent_default,
- DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, hwe->engine_instance,
};
struct intel_xe_oa_open_prop param = {
.num_properties = sizeof(properties) / 16,
@@ -4593,7 +4581,6 @@ test_tail_address_wrap(const struct drm_xe_engine_class_instance *hwe, size_t oa
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(fmt),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, exponent,
- DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, hwe->engine_instance,
DRM_XE_OA_PROPERTY_OA_BUFFER_SIZE, buffer_size,
};
struct intel_xe_oa_open_prop param = {
@@ -4653,7 +4640,6 @@ static void test_mapped_oa_buffer(map_oa_buffer_test_t test_with_fd_open,
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(test_set->perf_oa_format),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, oa_exponent_default,
- DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE, hwe->engine_instance,
};
struct intel_xe_oa_open_prop param = {
.num_properties = ARRAY_SIZE(properties) / 2,
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t v2 03/18] tests/intel/xe_oa: Rename nth_oa_unit to oa_unit_by_id
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 01/18] tests/intel/xe_oa: Add OAM formats to lnl_oa_formats Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 02/18] tests/intel/xe_oa: Get rid of unnecessary DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 04/18] tests/intel/xe_oa: Change oa_unit_engine to take an oa_unit argument Ashutosh Dixit
` (17 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Rename nth_oa_unit to oa_unit_by_id. We will introduce oa_unit_by_type soon
and oa_unit_by_id fits that naming scheme.
v2: s/n/id/ for oa_unit_by_id function argument (Umesh)
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index a028823e51..a7141a4fb0 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -493,7 +493,7 @@ static struct drm_xe_engine_class_instance *oa_unit_engine(int fd, int n)
return hwe;
}
-static struct drm_xe_oa_unit *nth_oa_unit(int fd, int n)
+static struct drm_xe_oa_unit *oa_unit_by_id(int fd, int id)
{
struct drm_xe_query_oa_units *qoa = xe_oa_units(fd);
struct drm_xe_oa_unit *oau;
@@ -502,7 +502,7 @@ static struct drm_xe_oa_unit *nth_oa_unit(int fd, int n)
poau = (u8 *)&qoa->oa_units[0];
for (int i = 0; i < qoa->num_oa_units; i++) {
oau = (struct drm_xe_oa_unit *)poau;
- if (i == n)
+ if (oau->oa_unit_id == id)
return oau;
poau += sizeof(*oau) + oau->num_engines * sizeof(oau->eci[0]);
}
@@ -4348,7 +4348,7 @@ test_oa_unit_concurrent_oa_buffer_read(void)
struct drm_xe_engine_class_instance *hwe = oa_unit_engine(drm_fd, child);
/* No OAM support yet */
- if (nth_oa_unit(drm_fd, child)->oa_unit_type != DRM_XE_OA_UNIT_TYPE_OAG)
+ if (oa_unit_by_id(drm_fd, child)->oa_unit_type != DRM_XE_OA_UNIT_TYPE_OAG)
exit(0);
test_blocking(40 * 1000 * 1000, false, 5 * 1000 * 1000, hwe);
@@ -5027,7 +5027,7 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
/* See xe_query_oa_units_new() */
igt_require(xe_dev->oa_units);
igt_require(xe_dev->oa_units->num_oa_units);
- oau = nth_oa_unit(drm_fd, 0);
+ oau = oa_unit_by_id(drm_fd, 0);
devid = intel_get_drm_devid(drm_fd);
sysfs = igt_sysfs_open(drm_fd);
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 04/18] tests/intel/xe_oa: Change oa_unit_engine to take an oa_unit argument
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (2 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t v2 03/18] tests/intel/xe_oa: Rename nth_oa_unit to oa_unit_by_id Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 05/18] tests/intel/xe_oa: Add oa_unit_by_type Ashutosh Dixit
` (16 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
To prevent code duplication with oa_unit_by_id(), pass 'struct
drm_xe_oa_unit *' as argument to oa_unit_engine().
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 32 ++++++++------------------------
1 file changed, 8 insertions(+), 24 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index a7141a4fb0..65b13267fb 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -472,25 +472,9 @@ static u64 oa_format_fields(u64 name)
}
#define __ff oa_format_fields
-static struct drm_xe_engine_class_instance *oa_unit_engine(int fd, int n)
+static struct drm_xe_engine_class_instance *oa_unit_engine(struct drm_xe_oa_unit *oau)
{
- struct drm_xe_query_oa_units *qoa = xe_oa_units(fd);
- struct drm_xe_engine_class_instance *hwe = NULL;
- struct drm_xe_oa_unit *oau;
- u8 *poau;
-
- poau = (u8 *)&qoa->oa_units[0];
- for (int i = 0; i < qoa->num_oa_units; i++) {
- oau = (struct drm_xe_oa_unit *)poau;
-
- if (i == n) {
- hwe = oau->num_engines ? &oau->eci[random() % oau->num_engines] : NULL;
- break;
- }
- poau += sizeof(*oau) + oau->num_engines * sizeof(oau->eci[0]);
- }
-
- return hwe;
+ return !oau ? NULL : oau->num_engines ? &oau->eci[random() % oau->num_engines] : NULL;
}
static struct drm_xe_oa_unit *oa_unit_by_id(int fd, int id)
@@ -4263,7 +4247,7 @@ test_oa_unit_exclusive_stream(bool exponent)
/* for each oa unit, open one random perf stream with sample OA */
for (i = 0; i < qoa->num_oa_units; i++) {
- struct drm_xe_engine_class_instance *hwe = oa_unit_engine(drm_fd, i);
+ struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oa_unit_by_id(drm_fd, i));
oau = (struct drm_xe_oa_unit *)poau;
if (oau->oa_unit_type != DRM_XE_OA_UNIT_TYPE_OAG)
@@ -4295,7 +4279,7 @@ test_oa_unit_exclusive_stream(bool exponent)
/* for each oa unit make sure no other streams can be opened */
poau = (u8 *)&qoa->oa_units[0];
for (i = 0; i < qoa->num_oa_units; i++) {
- struct drm_xe_engine_class_instance *hwe = oa_unit_engine(drm_fd, i);
+ struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oa_unit_by_id(drm_fd, i));
int err;
oau = (struct drm_xe_oa_unit *)poau;
@@ -4345,7 +4329,7 @@ test_oa_unit_concurrent_oa_buffer_read(void)
struct drm_xe_query_oa_units *qoa = xe_oa_units(drm_fd);
igt_fork(child, qoa->num_oa_units) {
- struct drm_xe_engine_class_instance *hwe = oa_unit_engine(drm_fd, child);
+ struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oa_unit_by_id(drm_fd, child));
/* No OAM support yet */
if (oa_unit_by_id(drm_fd, child)->oa_unit_type != DRM_XE_OA_UNIT_TYPE_OAG)
@@ -4924,18 +4908,18 @@ static const char *xe_engine_class_name(uint32_t engine_class)
#define __for_one_hwe_in_each_oa_unit(hwe) \
for (int m = 0; !m || hwe; m++) \
- for_each_if(hwe = oa_unit_engine(drm_fd, m)) \
+ for_each_if(hwe = oa_unit_engine(oa_unit_by_id(drm_fd, m))) \
igt_dynamic_f("%s-%d", xe_engine_class_name(hwe->engine_class), \
hwe->engine_instance)
/* Only OAG (not OAM) is currently supported */
#define __for_one_hwe_in_oag(hwe) \
- if ((hwe = oa_unit_engine(drm_fd, 0))) \
+ if ((hwe = oa_unit_engine(oa_unit_by_id(drm_fd, 0)))) \
igt_dynamic_f("%s-%d", xe_engine_class_name(hwe->engine_class), \
hwe->engine_instance)
#define __for_one_hwe_in_oag_w_arg(hwe, str) \
- if ((hwe = oa_unit_engine(drm_fd, 0))) \
+ if ((hwe = oa_unit_engine(oa_unit_by_id(drm_fd, 0)))) \
igt_dynamic_f("%s-%d-%s", xe_engine_class_name(hwe->engine_class), \
hwe->engine_instance, str)
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 05/18] tests/intel/xe_oa: Add oa_unit_by_type
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (3 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 04/18] tests/intel/xe_oa: Change oa_unit_engine to take an oa_unit argument Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t v2 06/18] tests/intel/xe_oa: Add for_each_oa_unit Ashutosh Dixit
` (15 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Add a function which returns an OA unit identified by its type (similar to
oa_unit_by_id()).
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 21 +++++++++++++++++++--
1 file changed, 19 insertions(+), 2 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index 65b13267fb..a4aeaf2c70 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -494,6 +494,23 @@ static struct drm_xe_oa_unit *oa_unit_by_id(int fd, int id)
return NULL;
}
+static struct drm_xe_oa_unit *oa_unit_by_type(int fd, int t)
+{
+ struct drm_xe_query_oa_units *qoa = xe_oa_units(fd);
+ struct drm_xe_oa_unit *oau;
+ u8 *poau;
+
+ poau = (u8 *)&qoa->oa_units[0];
+ for (int i = 0; i < qoa->num_oa_units; i++) {
+ oau = (struct drm_xe_oa_unit *)poau;
+ if (oau->oa_unit_type == t)
+ return oau;
+ poau += sizeof(*oau) + oau->num_engines * sizeof(oau->eci[0]);
+ }
+
+ return NULL;
+}
+
static char *
pretty_print_oa_period(uint64_t oa_period_ns)
{
@@ -4914,12 +4931,12 @@ static const char *xe_engine_class_name(uint32_t engine_class)
/* Only OAG (not OAM) is currently supported */
#define __for_one_hwe_in_oag(hwe) \
- if ((hwe = oa_unit_engine(oa_unit_by_id(drm_fd, 0)))) \
+ if ((hwe = oa_unit_engine(oa_unit_by_type(drm_fd, DRM_XE_OA_UNIT_TYPE_OAG)))) \
igt_dynamic_f("%s-%d", xe_engine_class_name(hwe->engine_class), \
hwe->engine_instance)
#define __for_one_hwe_in_oag_w_arg(hwe, str) \
- if ((hwe = oa_unit_engine(oa_unit_by_id(drm_fd, 0)))) \
+ if ((hwe = oa_unit_engine(oa_unit_by_type(drm_fd, DRM_XE_OA_UNIT_TYPE_OAG)))) \
igt_dynamic_f("%s-%d-%s", xe_engine_class_name(hwe->engine_class), \
hwe->engine_instance, str)
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t v2 06/18] tests/intel/xe_oa: Add for_each_oa_unit
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (4 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 05/18] tests/intel/xe_oa: Add oa_unit_by_type Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-14 20:40 ` Umesh Nerlige Ramappa
2025-10-13 20:30 ` [PATCH i-g-t 07/18] tests/intel/xe_oa: Convert test_oa_formats to take an OA unit argument Ashutosh Dixit
` (14 subsequent siblings)
20 siblings, 1 reply; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Add a for_each_oa_unit iterator, which eliminates code duplication when
iterating over OA units obtained from OA unit query.
v2: Only retain oau argument for for_each_oa_unit() (Umesh)
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
---
tests/intel/xe_oa.c | 35 +++++++++++++++++++++++------------
1 file changed, 23 insertions(+), 12 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index a4aeaf2c70..8e73182700 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -477,18 +477,34 @@ static struct drm_xe_engine_class_instance *oa_unit_engine(struct drm_xe_oa_unit
return !oau ? NULL : oau->num_engines ? &oau->eci[random() % oau->num_engines] : NULL;
}
+static int __first_and_num_oa_units(struct drm_xe_oa_unit **oau)
+{
+ struct drm_xe_query_oa_units *qoa = xe_oa_units(drm_fd);
+
+ *oau = (struct drm_xe_oa_unit *)&qoa->oa_units[0];
+
+ return qoa->num_oa_units;
+}
+
+static struct drm_xe_oa_unit *__next_oa_unit(struct drm_xe_oa_unit *oau)
+{
+ u8 *poau = (u8 *)oau;
+
+ return (struct drm_xe_oa_unit *)(poau + sizeof(*oau) +
+ oau->num_engines * sizeof(oau->eci[0]));
+}
+
+#define for_each_oa_unit(oau) \
+ for (int _i = 0, _num_oa_units = __first_and_num_oa_units(&oau); \
+ _i < _num_oa_units; oau = __next_oa_unit(oau), _i++)
+
static struct drm_xe_oa_unit *oa_unit_by_id(int fd, int id)
{
- struct drm_xe_query_oa_units *qoa = xe_oa_units(fd);
struct drm_xe_oa_unit *oau;
- u8 *poau;
- poau = (u8 *)&qoa->oa_units[0];
- for (int i = 0; i < qoa->num_oa_units; i++) {
- oau = (struct drm_xe_oa_unit *)poau;
+ for_each_oa_unit(oau) {
if (oau->oa_unit_id == id)
return oau;
- poau += sizeof(*oau) + oau->num_engines * sizeof(oau->eci[0]);
}
return NULL;
@@ -496,16 +512,11 @@ static struct drm_xe_oa_unit *oa_unit_by_id(int fd, int id)
static struct drm_xe_oa_unit *oa_unit_by_type(int fd, int t)
{
- struct drm_xe_query_oa_units *qoa = xe_oa_units(fd);
struct drm_xe_oa_unit *oau;
- u8 *poau;
- poau = (u8 *)&qoa->oa_units[0];
- for (int i = 0; i < qoa->num_oa_units; i++) {
- oau = (struct drm_xe_oa_unit *)poau;
+ for_each_oa_unit(oau) {
if (oau->oa_unit_type == t)
return oau;
- poau += sizeof(*oau) + oau->num_engines * sizeof(oau->eci[0]);
}
return NULL;
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 07/18] tests/intel/xe_oa: Convert test_oa_formats to take an OA unit argument
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (5 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t v2 06/18] tests/intel/xe_oa: Add for_each_oa_unit Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 08/18] tests/intel/xe_oa: Convert several more tests to take OA unit arguments Ashutosh Dixit
` (13 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
To enable OA IGT's to run on all OA units, OA unit tests are converted to
take a 'struct drm_xe_oa_unit *' argument (instead of hwe). This patch
converts the first unit test (test_oa_formats), so it introduces this new
infrastructure.
OA units are now identified via a name (corresponding to OA unit type) and
id. OA units are longer identified by hwe, because some OA units have no
associated hwe's.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 92 ++++++++++++++++++++++++++++++++++-----------
1 file changed, 71 insertions(+), 21 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index 8e73182700..22cc4e8b9b 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -327,8 +327,6 @@ static int pm_fd = -1;
static int stream_fd = -1;
static uint32_t devid;
-static struct drm_xe_engine_class_instance default_hwe;
-
static struct intel_xe_perf *intel_xe_perf;
static uint64_t oa_exponent_default;
static size_t default_oa_buffer_size;
@@ -340,6 +338,54 @@ static uint32_t min_oa_exponent;
static uint32_t buffer_fill_size;
static uint32_t num_buf_sizes;
+/* OA unit names */
+static const char *oa_unit_name[] = {
+ [DRM_XE_OA_UNIT_TYPE_OAG] = "oag",
+ [DRM_XE_OA_UNIT_TYPE_OAM] = "oam",
+ [DRM_XE_OA_UNIT_TYPE_OAM_SAG] = "sag",
+};
+
+static struct intel_xe_perf_metric_set *oa_unit_metric_set(struct drm_xe_oa_unit *oau)
+{
+ const char *test_set_name = NULL;
+ struct intel_xe_perf_metric_set *metric_set_iter;
+ struct intel_xe_perf_metric_set *test_set = NULL;
+
+ if (oau->oa_unit_type == DRM_XE_OA_UNIT_TYPE_OAG)
+ test_set_name = "TestOa";
+ else if (HAS_OAM(devid) &&
+ (oau->oa_unit_type == DRM_XE_OA_UNIT_TYPE_OAM ||
+ oau->oa_unit_type == DRM_XE_OA_UNIT_TYPE_OAM_SAG))
+ test_set_name = "MediaSet1";
+ else
+ igt_assert(!"reached");
+
+ igt_list_for_each_entry(metric_set_iter, &intel_xe_perf->metric_sets, link) {
+ if (strcmp(metric_set_iter->symbol_name, test_set_name) == 0) {
+ test_set = metric_set_iter;
+ break;
+ }
+ }
+
+ igt_assert(test_set);
+
+ /*
+ * configuration was loaded in init_sys_info() ->
+ * intel_xe_perf_load_perf_configs(), and test_set->perf_oa_metrics_set
+ * should point to metric id returned by the config add ioctl. 0 is
+ * invalid.
+ */
+ igt_assert_neq_u64(test_set->perf_oa_metrics_set, 0);
+
+ igt_debug("oa_unit %d:%d - %s metric set UUID = %s\n",
+ oau->oa_unit_id,
+ oau->oa_unit_type,
+ test_set->symbol_name,
+ test_set->hw_config_guid);
+
+ return test_set;
+}
+
static struct intel_xe_perf_metric_set *metric_set(const struct drm_xe_engine_class_instance *hwe)
{
const char *test_set_name = NULL;
@@ -381,7 +427,7 @@ static struct intel_xe_perf_metric_set *metric_set(const struct drm_xe_engine_cl
return test_set;
}
-#define default_test_set metric_set(&default_hwe)
+#define default_test_set oa_unit_metric_set(oa_unit_by_type(drm_fd, DRM_XE_OA_UNIT_TYPE_OAG))
static void set_fd_flags(int fd, int flags)
{
@@ -1558,11 +1604,11 @@ open_and_read_2_oa_reports(int format_id,
uint32_t *oa_report0,
uint32_t *oa_report1,
bool timer_only,
- const struct drm_xe_engine_class_instance *hwe)
+ struct drm_xe_oa_unit *oau)
{
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
/* Include OA reports in samples */
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
@@ -1682,32 +1728,28 @@ print_reports(uint32_t *oa_report0, uint32_t *oa_report1, int fmt)
}
static bool
-hwe_supports_oa_type(int oa_type, const struct drm_xe_engine_class_instance *hwe)
+oau_supports_oa_type(int oa_type, struct drm_xe_oa_unit *oau)
{
switch (oa_type) {
case DRM_XE_OA_FMT_TYPE_OAM:
case DRM_XE_OA_FMT_TYPE_OAM_MPEC:
- return hwe->engine_class == DRM_XE_ENGINE_CLASS_VIDEO_DECODE ||
- hwe->engine_class == DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE;
+ return oau->oa_unit_type == DRM_XE_OA_UNIT_TYPE_OAM ||
+ oau->oa_unit_type == DRM_XE_OA_UNIT_TYPE_OAM_SAG;
case DRM_XE_OA_FMT_TYPE_OAG:
case DRM_XE_OA_FMT_TYPE_OAR:
- return hwe->engine_class == DRM_XE_ENGINE_CLASS_RENDER;
case DRM_XE_OA_FMT_TYPE_OAC:
- return hwe->engine_class == DRM_XE_ENGINE_CLASS_COMPUTE;
case DRM_XE_OA_FMT_TYPE_PEC:
- return hwe->engine_class == DRM_XE_ENGINE_CLASS_RENDER ||
- hwe->engine_class == DRM_XE_ENGINE_CLASS_COMPUTE;
+ return oau->oa_unit_type == DRM_XE_OA_UNIT_TYPE_OAG;
default:
return false;
}
-
}
/**
* SUBTEST: oa-formats
* Description: Test that supported OA formats work as expected
*/
-static void test_oa_formats(const struct drm_xe_engine_class_instance *hwe)
+static void test_oa_formats(struct drm_xe_oa_unit *oau)
{
for (int i = 0; i < XE_OA_FORMAT_MAX; i++) {
struct oa_format format = get_oa_format(i);
@@ -1717,7 +1759,7 @@ static void test_oa_formats(const struct drm_xe_engine_class_instance *hwe)
if (!format.name) /* sparse, indexed by ID */
continue;
- if (!hwe_supports_oa_type(format.oa_type, hwe))
+ if (!oau_supports_oa_type(format.oa_type, oau))
continue;
igt_debug("Checking OA format %s\n", format.name);
@@ -1727,13 +1769,13 @@ static void test_oa_formats(const struct drm_xe_engine_class_instance *hwe)
oa_report0,
oa_report1,
false, /* timer reports only */
- hwe);
+ oau);
print_reports(oa_report0, oa_report1, i);
sanity_check_reports(oa_report0, oa_report1, i);
- if (i == metric_set(hwe)->perf_oa_format)
- pec_sanity_check_reports(oa_report0, oa_report1, metric_set(hwe));
+ if (i == oa_unit_metric_set(oau)->perf_oa_format)
+ pec_sanity_check_reports(oa_report0, oa_report1, oa_unit_metric_set(oau));
}
}
@@ -4956,6 +4998,14 @@ static const char *xe_engine_class_name(uint32_t engine_class)
igt_require_f(hwe, "no render engine\n"); \
igt_dynamic_f("rcs-%d", hwe->engine_instance)
+#define __for_oa_unit_by_type(k) \
+ if ((oau = oa_unit_by_type(drm_fd, k))) \
+ igt_dynamic_f("%s-%d", oa_unit_name[oau->oa_unit_type], oau->oa_unit_id)
+
+#define __for_oa_unit_by_type_w_arg(k, str) \
+ if ((oau = oa_unit_by_type(drm_fd, k))) \
+ igt_dynamic_f("%s-%d-%s", oa_unit_name[oau->oa_unit_type], oau->oa_unit_id, str)
+
static int opt_handler(int opt, int opt_index, void *data)
{
uint32_t tmp;
@@ -5067,8 +5117,8 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
test_missing_sample_flags();
igt_subtest_with_dynamic("oa-formats")
- __for_one_hwe_in_oag(hwe)
- test_oa_formats(hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_oa_formats(oau);
igt_subtest("invalid-oa-exponent")
test_invalid_oa_exponent();
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 08/18] tests/intel/xe_oa: Convert several more tests to take OA unit arguments
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (6 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 07/18] tests/intel/xe_oa: Convert test_oa_formats to take an OA unit argument Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 09/18] tests/intel/xe_oa: Convert test_non_zero_reason to take an OA unit argument Ashutosh Dixit
` (12 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Convert the following tests to take 'struct drm_xe_oa_unit *'
arguments (instead of hwe), to enable these to be run on all OA units:
- test_oa_exponents
- test_buffer_fill
- test_enable_disable
- test_oa_tlb_invalidate
- test_stress_open_close
- test_tail_address_wrap
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 60 ++++++++++++++++++++++-----------------------
1 file changed, 30 insertions(+), 30 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index 22cc4e8b9b..7c87dfc5f4 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -1906,9 +1906,9 @@ static bool expected_report_timing_delta(uint32_t delta, uint32_t expected_delta
* SUBTEST: oa-exponents
* Description: Test that oa exponent values behave as expected
*/
-static void test_oa_exponents(const struct drm_xe_engine_class_instance *hwe)
+static void test_oa_exponents(struct drm_xe_oa_unit *oau)
{
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t fmt = test_set->perf_oa_format;
load_helper_init();
@@ -1920,7 +1920,7 @@ static void test_oa_exponents(const struct drm_xe_engine_class_instance *hwe)
*/
for (int exponent = min_oa_exponent; exponent < max_oa_exponent; exponent++) {
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
/* Include OA reports in samples */
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
@@ -2536,11 +2536,11 @@ num_valid_reports_captured(struct intel_xe_oa_open_prop *param,
* Description: Open OA stream twice to verify OA TLB invalidation
*/
static void
-test_oa_tlb_invalidate(const struct drm_xe_engine_class_instance *hwe)
+test_oa_tlb_invalidate(struct drm_xe_oa_unit *oau)
{
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
@@ -2594,15 +2594,15 @@ wait_for_oa_buffer_overflow(int fd, int poll_period_us)
* Description: Test filling and overflow of OA buffer
*/
static void
-test_buffer_fill(const struct drm_xe_engine_class_instance *hwe)
+test_buffer_fill(struct drm_xe_oa_unit *oau)
{
/* ~5 micro second period */
int oa_exponent = max_oa_exponent_for_period_lte(5000);
uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t fmt = test_set->perf_oa_format;
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
/* Include OA reports in samples */
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
@@ -2734,13 +2734,13 @@ test_non_zero_reason(const struct drm_xe_engine_class_instance *hwe, size_t oa_b
* Description: Test that OA stream enable/disable works as expected
*/
static void
-test_enable_disable(const struct drm_xe_engine_class_instance *hwe)
+test_enable_disable(struct drm_xe_oa_unit *oau)
{
uint32_t num_reports = 5;
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t fmt = test_set->perf_oa_format;
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(fmt),
@@ -3515,16 +3515,16 @@ test_rc6_disable(void)
* Description: Open/close OA streams in a tight loop
*/
static void
-test_stress_open_close(const struct drm_xe_engine_class_instance *hwe)
+test_stress_open_close(struct drm_xe_oa_unit *oau)
{
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
load_helper_init();
load_helper_run(HIGH);
igt_until_timeout(2) {
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
/* XXX: even without periodic sampling we have to
* specify at least one sample layout property...
@@ -4623,14 +4623,14 @@ static void closed_fd_and_unmapped_access(const struct drm_xe_engine_class_insta
* has zeroes in it.
*/
static void
-test_tail_address_wrap(const struct drm_xe_engine_class_instance *hwe, size_t oa_buffer_size)
+test_tail_address_wrap(struct drm_xe_oa_unit *oau, size_t oa_buffer_size)
{
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
u64 exponent = max_oa_exponent_for_period_lte(20000);
u64 buffer_size = oa_buffer_size ?: buffer_fill_size;
u64 fmt = test_set->perf_oa_format;
u64 properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(fmt),
@@ -5124,13 +5124,13 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
test_invalid_oa_exponent();
igt_subtest_with_dynamic("oa-exponents")
- __for_one_hwe_in_oag(hwe)
- test_oa_exponents(hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_oa_exponents(oau);
igt_subtest_with_dynamic("buffer-fill") {
igt_require(oau->capabilities & DRM_XE_OA_CAPS_OA_BUFFER_SIZE);
- __for_one_hwe_in_oag(hwe)
- test_buffer_fill(hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_buffer_fill(oau);
}
/**
@@ -5158,8 +5158,8 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
test_non_sampling_read_error();
igt_subtest_with_dynamic("enable-disable")
- __for_one_hwe_in_oag(hwe)
- test_enable_disable(hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_enable_disable(oau);
igt_subtest_with_dynamic("blocking") {
igt_require(!igt_run_in_simulation());
@@ -5193,8 +5193,8 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
igt_subtest_with_dynamic("oa-tlb-invalidate") {
igt_require(intel_graphics_ver(devid) <= IP_VER(12, 70) &&
intel_graphics_ver(devid) != IP_VER(12, 60));
- __for_one_hwe_in_oag(hwe)
- test_oa_tlb_invalidate(hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_oa_tlb_invalidate(oau);
}
igt_subtest_with_dynamic("unprivileged-single-ctx-counters") {
@@ -5223,8 +5223,8 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
}
igt_subtest_with_dynamic("stress-open-close") {
- __for_one_hwe_in_oag(hwe)
- test_stress_open_close(hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_stress_open_close(oau);
}
igt_subtest("invalid-create-userspace-config")
@@ -5269,8 +5269,8 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
long k = random() % num_buf_sizes;
igt_require(oau->capabilities & DRM_XE_OA_CAPS_OA_BUFFER_SIZE);
- __for_one_hwe_in_oag_w_arg(hwe, buf_sizes[k].name)
- test_tail_address_wrap(hwe, buf_sizes[k].size);
+ __for_oa_unit_by_type_w_arg(DRM_XE_OA_UNIT_TYPE_OAG, buf_sizes[k].name)
+ test_tail_address_wrap(oau, buf_sizes[k].size);
}
igt_subtest_group {
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 09/18] tests/intel/xe_oa: Convert test_non_zero_reason to take an OA unit argument
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (7 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 08/18] tests/intel/xe_oa: Convert several more tests to take OA unit arguments Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 10/18] tests/intel/xe_oa: Convert blocking/polling tests to take OA unit arguments Ashutosh Dixit
` (11 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Convert test_non_zero_reason to take 'struct drm_xe_oa_unit *' argument, to
enable it to be run on all OA units.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index 7c87dfc5f4..c44ce3c56a 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -2641,15 +2641,15 @@ test_buffer_fill(struct drm_xe_oa_unit *oau)
* Description: Test reason field is non-zero. Can also check OA buffer wraparound issues
*/
static void
-test_non_zero_reason(const struct drm_xe_engine_class_instance *hwe, size_t oa_buffer_size)
+test_non_zero_reason(struct drm_xe_oa_unit *oau, size_t oa_buffer_size)
{
/* ~20 micro second period */
int oa_exponent = max_oa_exponent_for_period_lte(20000);
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t fmt = test_set->perf_oa_format;
size_t report_size = get_oa_format(fmt).size;
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
/* Include OA reports in samples */
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
@@ -2720,7 +2720,7 @@ test_non_zero_reason(const struct drm_xe_engine_class_instance *hwe, size_t oa_b
*/
if (!oa_buffer_size && last_report && (offset / report_size == check_idx)) {
sanity_check_reports(last_report, report, fmt);
- pec_sanity_check_reports(last_report, report, metric_set(hwe));
+ pec_sanity_check_reports(last_report, report, oa_unit_metric_set(oau));
}
last_report = report;
@@ -5141,15 +5141,15 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
long k = random() % num_buf_sizes;
igt_require(oau->capabilities & DRM_XE_OA_CAPS_OA_BUFFER_SIZE);
- __for_one_hwe_in_oag_w_arg(hwe, buf_sizes[k].name)
- test_non_zero_reason(hwe, buf_sizes[k].size);
+ __for_oa_unit_by_type_w_arg(DRM_XE_OA_UNIT_TYPE_OAG, buf_sizes[k].name)
+ test_non_zero_reason(oau, buf_sizes[k].size);
}
igt_subtest_with_dynamic("non-zero-reason") {
igt_require(!igt_run_in_simulation());
igt_require(oau->capabilities & DRM_XE_OA_CAPS_OA_BUFFER_SIZE);
- __for_one_hwe_in_oag(hwe)
- test_non_zero_reason(hwe, 0);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_non_zero_reason(oau, 0);
}
igt_subtest("disabled-read-error")
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 10/18] tests/intel/xe_oa: Convert blocking/polling tests to take OA unit arguments
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (8 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 09/18] tests/intel/xe_oa: Convert test_non_zero_reason to take an OA unit argument Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 11/18] tests/intel/xe_oa: Convert test_mi_rpc to take an OA unit argument Ashutosh Dixit
` (10 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Convert blocking/polling tests to take 'struct drm_xe_oa_unit *' arguments,
to enable these to be run on all OA units.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index c44ce3c56a..3f9743a90b 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -2109,7 +2109,7 @@ get_time(void)
static void test_blocking(uint64_t requested_oa_period,
bool set_kernel_hrtimer,
uint64_t kernel_hrtimer,
- const struct drm_xe_engine_class_instance *hwe)
+ struct drm_xe_oa_unit *oau)
{
int oa_exponent = max_oa_exponent_for_period_lte(requested_oa_period);
uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
@@ -2138,7 +2138,7 @@ static void test_blocking(uint64_t requested_oa_period,
int min_iterations = (test_duration_ns / (oa_period + kernel_hrtimer + kernel_hrtimer / 5));
int64_t start, end;
int n = 0;
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
size_t format_size = get_oa_format(test_set->perf_oa_format).size;
ADD_PROPS(props, idx, SAMPLE_OA, true);
@@ -2146,7 +2146,7 @@ static void test_blocking(uint64_t requested_oa_period,
ADD_PROPS(props, idx, OA_FORMAT, __ff(test_set->perf_oa_format));
ADD_PROPS(props, idx, OA_PERIOD_EXPONENT, oa_exponent);
ADD_PROPS(props, idx, OA_DISABLED, true);
- ADD_PROPS(props, idx, OA_UNIT_ID, 0);
+ ADD_PROPS(props, idx, OA_UNIT_ID, oau->oa_unit_id);
param.num_properties = (idx - props) / 2;
param.properties_ptr = to_user_pointer(props);
@@ -2252,7 +2252,7 @@ static void test_blocking(uint64_t requested_oa_period,
static void test_polling(uint64_t requested_oa_period,
bool set_kernel_hrtimer,
uint64_t kernel_hrtimer,
- const struct drm_xe_engine_class_instance *hwe)
+ struct drm_xe_oa_unit *oau)
{
int oa_exponent = max_oa_exponent_for_period_lte(requested_oa_period);
uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
@@ -2282,7 +2282,7 @@ static void test_polling(uint64_t requested_oa_period,
int min_iterations = (test_duration_ns / (oa_period + (kernel_hrtimer + kernel_hrtimer / 5)));
int64_t start, end;
int n = 0;
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
size_t format_size = get_oa_format(test_set->perf_oa_format).size;
ADD_PROPS(props, idx, SAMPLE_OA, true);
@@ -2290,7 +2290,7 @@ static void test_polling(uint64_t requested_oa_period,
ADD_PROPS(props, idx, OA_FORMAT, __ff(test_set->perf_oa_format));
ADD_PROPS(props, idx, OA_PERIOD_EXPONENT, oa_exponent);
ADD_PROPS(props, idx, OA_DISABLED, true);
- ADD_PROPS(props, idx, OA_UNIT_ID, 0);
+ ADD_PROPS(props, idx, OA_UNIT_ID, oau->oa_unit_id);
param.num_properties = (idx - props) / 2;
param.properties_ptr = to_user_pointer(props);
@@ -4399,13 +4399,13 @@ test_oa_unit_concurrent_oa_buffer_read(void)
struct drm_xe_query_oa_units *qoa = xe_oa_units(drm_fd);
igt_fork(child, qoa->num_oa_units) {
- struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oa_unit_by_id(drm_fd, child));
+ struct drm_xe_oa_unit *oau = oa_unit_by_id(drm_fd, child);
/* No OAM support yet */
- if (oa_unit_by_id(drm_fd, child)->oa_unit_type != DRM_XE_OA_UNIT_TYPE_OAG)
+ if (oau->oa_unit_type != DRM_XE_OA_UNIT_TYPE_OAG)
exit(0);
- test_blocking(40 * 1000 * 1000, false, 5 * 1000 * 1000, hwe);
+ test_blocking(40 * 1000 * 1000, false, 5 * 1000 * 1000, oau);
}
igt_waitchildren();
}
@@ -5163,20 +5163,20 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
igt_subtest_with_dynamic("blocking") {
igt_require(!igt_run_in_simulation());
- __for_one_hwe_in_oag(hwe)
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
test_blocking(40 * 1000 * 1000 /* 40ms oa period */,
false /* set_kernel_hrtimer */,
5 * 1000 * 1000 /* default 5ms/200Hz hrtimer */,
- hwe);
+ oau);
}
igt_subtest_with_dynamic("polling") {
igt_require(!igt_run_in_simulation());
- __for_one_hwe_in_oag(hwe)
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
test_polling(40 * 1000 * 1000 /* 40ms oa period */,
false /* set_kernel_hrtimer */,
5 * 1000 * 1000 /* default 5ms/200Hz hrtimer */,
- hwe);
+ oau);
}
igt_subtest("polling-small-buf")
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 11/18] tests/intel/xe_oa: Convert test_mi_rpc to take an OA unit argument
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (9 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 10/18] tests/intel/xe_oa: Convert blocking/polling tests to take OA unit arguments Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 12/18] tests/intel/xe_oa: Convert test_single_ctx_render_target_writes_a_counter Ashutosh Dixit
` (9 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Convert test_mi_rpc to take 'struct drm_xe_oa_unit *' argument, to enable
it to be run on all OA units.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index 3f9743a90b..62c2c4d709 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -3004,15 +3004,16 @@ test_disabled_read_error(void)
* Description: Test OAR/OAC using MI_REPORT_PERF_COUNT
*/
static void
-test_mi_rpc(struct drm_xe_engine_class_instance *hwe)
+test_mi_rpc(struct drm_xe_oa_unit *oau)
{
+ struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
uint64_t fmt = ((IS_DG2(devid) || IS_METEORLAKE(devid)) &&
hwe->engine_class == DRM_XE_ENGINE_CLASS_COMPUTE) ?
XE_OAC_FORMAT_A24u64_B8_C8 : oar_unit_default_format();
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
/* On Gen12, MI RPC uses OAR. OAR is configured only for the
* render context that wants to measure the performance. Hence a
@@ -5187,8 +5188,8 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
igt_subtest_group {
igt_subtest_with_dynamic("mi-rpc")
- __for_one_hwe_in_oag(hwe)
- test_mi_rpc(hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_mi_rpc(oau);
igt_subtest_with_dynamic("oa-tlb-invalidate") {
igt_require(intel_graphics_ver(devid) <= IP_VER(12, 70) &&
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 12/18] tests/intel/xe_oa: Convert test_single_ctx_render_target_writes_a_counter
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (10 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 11/18] tests/intel/xe_oa: Convert test_mi_rpc to take an OA unit argument Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 13/18] tests/intel/xe_oa: Convert OA buffer mmap tests to take OA unit arguments Ashutosh Dixit
` (8 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Convert test_single_ctx_render_target_writes_a_counter to take 'struct
drm_xe_oa_unit *' argument, to enable it to be run on all OA units.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index 62c2c4d709..cdc422d724 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -3135,12 +3135,14 @@ emit_stall_timestamp_and_rpc(struct intel_bb *ibb,
emit_report_perf_count(ibb, dst, report_dst_offset, report_id);
}
-static void single_ctx_helper(struct drm_xe_engine_class_instance *hwe)
+static void single_ctx_helper(struct drm_xe_oa_unit *oau)
{
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
+ struct drm_xe_engine_class_instance *hwe =
+ &xe_find_engine_by_class(drm_fd, DRM_XE_ENGINE_CLASS_RENDER)->instance;
uint64_t fmt = oar_unit_default_format();
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
/* Have a random value here for the context id, but initialize
* it once you figure out the context ID for the work to be
@@ -3182,6 +3184,8 @@ static void single_ctx_helper(struct drm_xe_engine_class_instance *hwe)
uint32_t ctx_id_offset, counter_offset, dst_buf_size;
struct oa_format format = get_oa_format(fmt);
+ igt_require_f(hwe, "no render engine\n");
+
if (format.report_hdr_64bit) {
ctx_id_offset = 4;
counter_offset = 8;
@@ -3439,7 +3443,7 @@ static void single_ctx_helper(struct drm_xe_engine_class_instance *hwe)
* Description: A harder test for OAR/OAC using MI_REPORT_PERF_COUNT
*/
static void
-test_single_ctx_render_target_writes_a_counter(struct drm_xe_engine_class_instance *hwe)
+test_single_ctx_render_target_writes_a_counter(struct drm_xe_oa_unit *oau)
{
int child_ret;
struct igt_helper_process child = {};
@@ -3454,7 +3458,7 @@ test_single_ctx_render_target_writes_a_counter(struct drm_xe_engine_class_instan
igt_drop_root();
- single_ctx_helper(hwe);
+ single_ctx_helper(oau);
drm_close_driver(drm_fd);
}
@@ -5200,8 +5204,8 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
igt_subtest_with_dynamic("unprivileged-single-ctx-counters") {
igt_require_f(render_copy, "no render-copy function\n");
- __for_one_render_engine(hwe)
- test_single_ctx_render_target_writes_a_counter(hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_single_ctx_render_target_writes_a_counter(oau);
}
}
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 13/18] tests/intel/xe_oa: Convert OA buffer mmap tests to take OA unit arguments
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (11 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 12/18] tests/intel/xe_oa: Convert test_single_ctx_render_target_writes_a_counter Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 14/18] tests/intel/xe_oa: Convert MMIO trigger " Ashutosh Dixit
` (7 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Convert OA buffer mmap tests to take 'struct drm_xe_oa_unit *' arguments,
to enable them to be run on all OA units.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 71 +++++++++++++++++++++++----------------------
1 file changed, 36 insertions(+), 35 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index cdc422d724..50bcb48f0f 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -4424,7 +4424,7 @@ static void *map_oa_buffer(u32 *size)
return vaddr;
}
-static void invalid_param_map_oa_buffer(const struct drm_xe_engine_class_instance *hwe)
+static void invalid_param_map_oa_buffer(struct drm_xe_oa_unit *oau)
{
void *oa_vaddr = NULL;
@@ -4460,7 +4460,7 @@ static void unprivileged_try_to_map_oa_buffer(void)
igt_assert_eq(errno, EACCES);
}
-static void unprivileged_map_oa_buffer(const struct drm_xe_engine_class_instance *hwe)
+static void unprivileged_map_oa_buffer(struct drm_xe_oa_unit *oau)
{
igt_fork(child, 1) {
igt_drop_root();
@@ -4494,7 +4494,7 @@ static void try_invalid_access(void *vaddr)
signal(SIGSEGV, old_sigsegv);
}
-static void map_oa_buffer_unprivilege_access(const struct drm_xe_engine_class_instance *hwe)
+static void map_oa_buffer_unprivilege_access(struct drm_xe_oa_unit *oau)
{
void *vaddr;
uint32_t size;
@@ -4510,7 +4510,7 @@ static void map_oa_buffer_unprivilege_access(const struct drm_xe_engine_class_in
munmap(vaddr, size);
}
-static void map_oa_buffer_forked_access(const struct drm_xe_engine_class_instance *hwe)
+static void map_oa_buffer_forked_access(struct drm_xe_oa_unit *oau)
{
void *vaddr;
uint32_t size;
@@ -4526,10 +4526,10 @@ static void map_oa_buffer_forked_access(const struct drm_xe_engine_class_instanc
}
static void mmap_wait_for_periodic_reports(void *oa_vaddr, uint32_t n,
- const struct drm_xe_engine_class_instance *hwe)
+ struct drm_xe_oa_unit *oau)
{
uint32_t period_us = oa_exponent_to_ns(oa_exponent_default) / 1000;
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t fmt = test_set->perf_oa_format;
uint32_t num_periodic_reports = 0;
uint32_t report_words = get_oa_format(fmt).size >> 2;
@@ -4547,9 +4547,9 @@ static void mmap_wait_for_periodic_reports(void *oa_vaddr, uint32_t n,
}
static void mmap_check_reports(void *oa_vaddr, uint32_t oa_size,
- const struct drm_xe_engine_class_instance *hwe)
+ struct drm_xe_oa_unit *oau)
{
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t fmt = test_set->perf_oa_format;
struct oa_format format = get_oa_format(fmt);
size_t report_words = format.size >> 2;
@@ -4567,22 +4567,22 @@ static void mmap_check_reports(void *oa_vaddr, uint32_t oa_size,
sanity_check_reports(reports - 2 * report_words,
reports - report_words, fmt);
pec_sanity_check_reports(reports - 2 * report_words,
- reports - report_words, metric_set(hwe));
+ reports - report_words, oa_unit_metric_set(oau));
}
}
igt_assert(timer_reports >= 3);
}
-static void check_reports_from_mapped_buffer(const struct drm_xe_engine_class_instance *hwe)
+static void check_reports_from_mapped_buffer(struct drm_xe_oa_unit *oau)
{
void *vaddr;
uint32_t size;
vaddr = map_oa_buffer(&size);
- mmap_wait_for_periodic_reports(vaddr, 10, hwe);
- mmap_check_reports(vaddr, size, hwe);
+ mmap_wait_for_periodic_reports(vaddr, 10, oau);
+ mmap_check_reports(vaddr, size, oau);
munmap(vaddr, size);
}
@@ -4591,13 +4591,14 @@ static void check_reports_from_mapped_buffer(const struct drm_xe_engine_class_in
* SUBTEST: closed-fd-and-unmapped-access
* Description: Unmap buffer, close fd and try to access
*/
-static void closed_fd_and_unmapped_access(const struct drm_xe_engine_class_instance *hwe)
+static void closed_fd_and_unmapped_access(struct drm_xe_oa_unit *oau)
{
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
- DRM_XE_OA_PROPERTY_OA_METRIC_SET, default_test_set->perf_oa_metrics_set,
- DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(default_test_set->perf_oa_format),
+ DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
+ DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(test_set->perf_oa_format),
DRM_XE_OA_PROPERTY_OA_PERIOD_EXPONENT, oa_exponent_default,
};
struct intel_xe_oa_open_prop param = {
@@ -4610,8 +4611,8 @@ static void closed_fd_and_unmapped_access(const struct drm_xe_engine_class_insta
stream_fd = __perf_open(drm_fd, ¶m, false);
vaddr = map_oa_buffer(&size);
- mmap_wait_for_periodic_reports(vaddr, 10, hwe);
- mmap_check_reports(vaddr, size, hwe);
+ mmap_wait_for_periodic_reports(vaddr, 10, oau);
+ mmap_check_reports(vaddr, size, oau);
munmap(vaddr, size);
__perf_close(stream_fd);
@@ -4688,13 +4689,13 @@ test_tail_address_wrap(struct drm_xe_oa_unit *oau, size_t oa_buffer_size)
* SUBTEST: privileged-forked-access-vaddr
* Description: Verify that forked access to mapped buffer fails
*/
-typedef void (*map_oa_buffer_test_t)(const struct drm_xe_engine_class_instance *hwe);
+typedef void (*map_oa_buffer_test_t)(struct drm_xe_oa_unit *oau);
static void test_mapped_oa_buffer(map_oa_buffer_test_t test_with_fd_open,
- const struct drm_xe_engine_class_instance *hwe)
+ struct drm_xe_oa_unit *oau)
{
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(test_set->perf_oa_format),
@@ -4708,7 +4709,7 @@ static void test_mapped_oa_buffer(map_oa_buffer_test_t test_with_fd_open,
stream_fd = __perf_open(drm_fd, ¶m, false);
igt_assert(test_with_fd_open);
- test_with_fd_open(hwe);
+ test_with_fd_open(oau);
__perf_close(stream_fd);
}
@@ -5246,28 +5247,28 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
igt_subtest_group {
igt_subtest_with_dynamic("map-oa-buffer")
- __for_one_hwe_in_oag(hwe)
- test_mapped_oa_buffer(check_reports_from_mapped_buffer, hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_mapped_oa_buffer(check_reports_from_mapped_buffer, oau);
igt_subtest_with_dynamic("invalid-map-oa-buffer")
- __for_one_hwe_in_oag(hwe)
- test_mapped_oa_buffer(invalid_param_map_oa_buffer, hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_mapped_oa_buffer(invalid_param_map_oa_buffer, oau);
igt_subtest_with_dynamic("non-privileged-map-oa-buffer")
- __for_one_hwe_in_oag(hwe)
- test_mapped_oa_buffer(unprivileged_map_oa_buffer, hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_mapped_oa_buffer(unprivileged_map_oa_buffer, oau);
igt_subtest_with_dynamic("non-privileged-access-vaddr")
- __for_one_hwe_in_oag(hwe)
- test_mapped_oa_buffer(map_oa_buffer_unprivilege_access, hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_mapped_oa_buffer(map_oa_buffer_unprivilege_access, oau);
igt_subtest_with_dynamic("privileged-forked-access-vaddr")
- __for_one_hwe_in_oag(hwe)
- test_mapped_oa_buffer(map_oa_buffer_forked_access, hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_mapped_oa_buffer(map_oa_buffer_forked_access, oau);
igt_subtest_with_dynamic("closed-fd-and-unmapped-access")
- __for_one_hwe_in_oag(hwe)
- closed_fd_and_unmapped_access(hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ closed_fd_and_unmapped_access(oau);
}
igt_subtest_with_dynamic("tail-address-wrap") {
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 14/18] tests/intel/xe_oa: Convert MMIO trigger tests to take OA unit arguments
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (12 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 13/18] tests/intel/xe_oa: Convert OA buffer mmap tests to take OA unit arguments Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 15/18] tests/intel/xe_oa: Convert sync " Ashutosh Dixit
` (6 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Convert MMIO trigger tests to take 'struct drm_xe_oa_unit *' arguments, to
enable them to be run on all OA units.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 41 ++++++++++++++++++++++-------------------
1 file changed, 22 insertions(+), 19 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index 50bcb48f0f..ba4d3ddfb7 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -4002,11 +4002,12 @@ static u32 oa_get_mmio_base(const struct drm_xe_engine_class_instance *hwe)
* SUBTEST: oa-regs-whitelisted
* Description: Verify that OA registers are whitelisted
*/
-static void test_oa_regs_whitelist(const struct drm_xe_engine_class_instance *hwe)
+static void test_oa_regs_whitelist(struct drm_xe_oa_unit *oau)
{
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
+ struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
uint64_t properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(test_set->perf_oa_format),
@@ -4020,8 +4021,7 @@ static void test_oa_regs_whitelist(const struct drm_xe_engine_class_instance *hw
u32 mmio_base;
/* FIXME: Add support for OAM whitelist testing */
- if (hwe->engine_class != DRM_XE_ENGINE_CLASS_RENDER &&
- hwe->engine_class != DRM_XE_ENGINE_CLASS_COMPUTE)
+ if (oau->oa_unit_type != DRM_XE_OA_UNIT_TYPE_OAG)
return;
mmio_base = oa_get_mmio_base(hwe);
@@ -4049,10 +4049,12 @@ static void test_oa_regs_whitelist(const struct drm_xe_engine_class_instance *hw
}
static void
-__test_mmio_triggered_reports(struct drm_xe_engine_class_instance *hwe)
+__test_mmio_triggered_reports(struct drm_xe_oa_unit *oau)
{
- struct intel_xe_perf_metric_set *test_set = default_test_set;
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
+ struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
uint64_t properties[] = {
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(test_set->perf_oa_format),
@@ -4154,10 +4156,12 @@ __test_mmio_triggered_reports(struct drm_xe_engine_class_instance *hwe)
}
static void
-__test_mmio_triggered_reports_read(struct drm_xe_engine_class_instance *hwe)
+__test_mmio_triggered_reports_read(struct drm_xe_oa_unit *oau)
{
- struct intel_xe_perf_metric_set *test_set = default_test_set;
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
+ struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
uint64_t properties[] = {
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(test_set->perf_oa_format),
@@ -4250,8 +4254,7 @@ __test_mmio_triggered_reports_read(struct drm_xe_engine_class_instance *hwe)
* Description: Test MMIO trigger functionality with read system call
*/
static void
-test_mmio_triggered_reports(struct drm_xe_engine_class_instance *hwe,
- bool with_read)
+test_mmio_triggered_reports(struct drm_xe_oa_unit *oau, bool with_read)
{
struct igt_helper_process child = {};
int ret;
@@ -4261,9 +4264,9 @@ test_mmio_triggered_reports(struct drm_xe_engine_class_instance *hwe,
igt_drop_root();
if (with_read)
- __test_mmio_triggered_reports_read(hwe);
+ __test_mmio_triggered_reports_read(oau);
else
- __test_mmio_triggered_reports(hwe);
+ __test_mmio_triggered_reports(oau);
}
ret = igt_wait_helper(&child);
write_u64_file("/proc/sys/dev/xe/observation_paranoid", 1);
@@ -5285,19 +5288,19 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
}
igt_subtest_with_dynamic("oa-regs-whitelisted")
- __for_one_hwe_in_oag(hwe)
- test_oa_regs_whitelist(hwe);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_oa_regs_whitelist(oau);
igt_subtest_with_dynamic("mmio-triggered-reports") {
igt_require(HAS_OA_MMIO_TRIGGER(devid));
- __for_one_hwe_in_oag(hwe)
- test_mmio_triggered_reports(hwe, false);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_mmio_triggered_reports(oau, false);
}
igt_subtest_with_dynamic("mmio-triggered-reports-read") {
igt_require(HAS_OA_MMIO_TRIGGER(devid));
- __for_one_hwe_in_oag(hwe)
- test_mmio_triggered_reports(hwe, true);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_mmio_triggered_reports(oau, true);
}
}
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 15/18] tests/intel/xe_oa: Convert sync tests to take OA unit arguments
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (13 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 14/18] tests/intel/xe_oa: Convert MMIO trigger " Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 16/18] tests/intel/xe_oa: Run test_oa_unit_exclusive_stream on multiple OA units Ashutosh Dixit
` (5 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Convert sync tests to take 'struct drm_xe_oa_unit *' arguments, to enable
them to be run on all OA units.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 35 ++++++++---------------------------
1 file changed, 8 insertions(+), 27 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index ba4d3ddfb7..0e7d9d063e 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -4776,9 +4776,10 @@ struct oa_sync {
};
static void
-oa_sync_init(enum oa_sync_type sync_type, const struct drm_xe_engine_class_instance *hwe,
+oa_sync_init(enum oa_sync_type sync_type, struct drm_xe_oa_unit *oau,
struct oa_sync *osync, struct drm_xe_sync *sync)
{
+ struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
uint64_t addr = 0x1a0000;
osync->sync_type = sync_type;
@@ -4900,15 +4901,15 @@ static void oa_sync_free(struct oa_sync *osync)
* @wait-cfg: Exercise reconfig path and wait for syncs to signal
* @wait: Don't exercise reconfig path and wait for syncs to signal
*/
-static void test_syncs(const struct drm_xe_engine_class_instance *hwe,
+static void test_syncs(struct drm_xe_oa_unit *oau,
enum oa_sync_type sync_type, int flags)
{
struct drm_xe_ext_set_property extn[XE_OA_MAX_SET_PROPERTIES] = {};
- struct intel_xe_perf_metric_set *test_set = metric_set(hwe);
+ struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
struct drm_xe_sync sync = {};
struct oa_sync osync = {};
uint64_t open_properties[] = {
- DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
+ DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
DRM_XE_OA_PROPERTY_OA_METRIC_SET, test_set->perf_oa_metrics_set,
DRM_XE_OA_PROPERTY_OA_FORMAT, __ff(test_set->perf_oa_format),
@@ -4939,7 +4940,7 @@ static void test_syncs(const struct drm_xe_engine_class_instance *hwe,
if (sync_type == OA_SYNC_TYPE_USERPTR || sync_type == OA_SYNC_TYPE_UFENCE)
flags |= WAIT;
- oa_sync_init(sync_type, hwe, &osync, &sync);
+ oa_sync_init(sync_type, oau, &osync, &sync);
stream_fd = __perf_open(drm_fd, &open_param, false);
@@ -4966,25 +4967,6 @@ exit:
oa_sync_free(&osync);
}
-static const char *xe_engine_class_name(uint32_t engine_class)
-{
- switch (engine_class) {
- case DRM_XE_ENGINE_CLASS_RENDER:
- return "rcs";
- case DRM_XE_ENGINE_CLASS_COPY:
- return "bcs";
- case DRM_XE_ENGINE_CLASS_VIDEO_DECODE:
- return "vcs";
- case DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE:
- return "vecs";
- case DRM_XE_ENGINE_CLASS_COMPUTE:
- return "ccs";
- default:
- igt_warn("Engine class 0x%x unknown\n", engine_class);
- return "unknown";
- }
-}
-
#define __for_one_hwe_in_each_oa_unit(hwe) \
for (int m = 0; !m || hwe; m++) \
for_each_if(hwe = oa_unit_engine(oa_unit_by_id(drm_fd, m))) \
@@ -5065,7 +5047,6 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
{ "ufence-wait", OA_SYNC_TYPE_UFENCE, WAIT },
{ NULL },
};
- struct drm_xe_engine_class_instance *hwe = NULL;
struct drm_xe_oa_unit *oau;
struct xe_device *xe_dev;
@@ -5311,8 +5292,8 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
for (const struct sync_section *s = sync_sections; s->name; s++) {
igt_subtest_with_dynamic_f("syncs-%s", s->name) {
- __for_one_hwe_in_oag(hwe)
- test_syncs(hwe, s->sync_type, s->flags);
+ __for_oa_unit_by_type(DRM_XE_OA_UNIT_TYPE_OAG)
+ test_syncs(oau, s->sync_type, s->flags);
}
}
}
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 16/18] tests/intel/xe_oa: Run test_oa_unit_exclusive_stream on multiple OA units
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (14 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 15/18] tests/intel/xe_oa: Convert sync " Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 17/18] tests/intel/xe_oa: Add new non-zero-reason-all test Ashutosh Dixit
` (4 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Change test_oa_unit_exclusive_stream to run simultaneously on all OA units
which have an hwe. Also removed unused code now that all tests are
converted to use OA units rather than hwe's.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 86 ++++++---------------------------------------
1 file changed, 10 insertions(+), 76 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index 0e7d9d063e..128283ddd7 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -385,48 +385,6 @@ static struct intel_xe_perf_metric_set *oa_unit_metric_set(struct drm_xe_oa_unit
return test_set;
}
-
-static struct intel_xe_perf_metric_set *metric_set(const struct drm_xe_engine_class_instance *hwe)
-{
- const char *test_set_name = NULL;
- struct intel_xe_perf_metric_set *metric_set_iter;
- struct intel_xe_perf_metric_set *test_set = NULL;
-
- if (hwe->engine_class == DRM_XE_ENGINE_CLASS_RENDER ||
- hwe->engine_class == DRM_XE_ENGINE_CLASS_COMPUTE)
- test_set_name = "TestOa";
- else if ((hwe->engine_class == DRM_XE_ENGINE_CLASS_VIDEO_DECODE ||
- hwe->engine_class == DRM_XE_ENGINE_CLASS_VIDEO_ENHANCE) &&
- HAS_OAM(devid))
- test_set_name = "MediaSet1";
- else
- igt_assert(!"reached");
-
- igt_list_for_each_entry(metric_set_iter, &intel_xe_perf->metric_sets, link) {
- if (strcmp(metric_set_iter->symbol_name, test_set_name) == 0) {
- test_set = metric_set_iter;
- break;
- }
- }
-
- igt_assert(test_set);
-
- /*
- * configuration was loaded in init_sys_info() ->
- * intel_xe_perf_load_perf_configs(), and test_set->perf_oa_metrics_set
- * should point to metric id returned by the config add ioctl. 0 is
- * invalid.
- */
- igt_assert_neq_u64(test_set->perf_oa_metrics_set, 0);
-
- igt_debug("engine %d:%d - %s metric set UUID = %s\n",
- hwe->engine_class,
- hwe->engine_instance,
- test_set->symbol_name,
- test_set->hw_config_guid);
-
- return test_set;
-}
#define default_test_set oa_unit_metric_set(oa_unit_by_type(drm_fd, DRM_XE_OA_UNIT_TYPE_OAG))
static void set_fd_flags(int fd, int flags)
@@ -4303,8 +4261,8 @@ static void
test_oa_unit_exclusive_stream(bool exponent)
{
struct drm_xe_query_oa_units *qoa = xe_oa_units(drm_fd);
+ struct drm_xe_engine_class_instance *hwe;
struct drm_xe_oa_unit *oau;
- u8 *poau = (u8 *)&qoa->oa_units[0];
uint64_t properties[] = {
DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
@@ -4325,12 +4283,12 @@ test_oa_unit_exclusive_stream(bool exponent)
/* for each oa unit, open one random perf stream with sample OA */
for (i = 0; i < qoa->num_oa_units; i++) {
- struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oa_unit_by_id(drm_fd, i));
+ oau = oa_unit_by_id(drm_fd, i);
+ hwe = oa_unit_engine(oau);
- oau = (struct drm_xe_oa_unit *)poau;
- if (oau->oa_unit_type != DRM_XE_OA_UNIT_TYPE_OAG)
+ if (!hwe)
continue;
- test_set = metric_set(hwe);
+ test_set = oa_unit_metric_set(oau);
igt_debug("opening OA buffer with c:i %d:%d\n",
hwe->engine_class, hwe->engine_instance);
@@ -4346,7 +4304,6 @@ test_oa_unit_exclusive_stream(bool exponent)
properties[9] = hwe->engine_instance;
perf_fd[i] = intel_xe_perf_ioctl(drm_fd, DRM_XE_OBSERVATION_OP_STREAM_OPEN, ¶m);
igt_assert(perf_fd[i] >= 0);
- poau += sizeof(*oau) + oau->num_engines * sizeof(oau->eci[0]);
}
/* Xe KMD holds reference to the exec_q's so they shouldn't be really destroyed */
@@ -4355,15 +4312,15 @@ test_oa_unit_exclusive_stream(bool exponent)
xe_exec_queue_destroy(drm_fd, exec_q[i]);
/* for each oa unit make sure no other streams can be opened */
- poau = (u8 *)&qoa->oa_units[0];
for (i = 0; i < qoa->num_oa_units; i++) {
- struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oa_unit_by_id(drm_fd, i));
int err;
- oau = (struct drm_xe_oa_unit *)poau;
- if (oau->oa_unit_type != DRM_XE_OA_UNIT_TYPE_OAG)
+ oau = oa_unit_by_id(drm_fd, i);
+ hwe = oa_unit_engine(oau);
+
+ if (!hwe)
continue;
- test_set = metric_set(hwe);
+ test_set = oa_unit_metric_set(oau);
igt_debug("try with exp with c:i %d:%d\n",
hwe->engine_class, hwe->engine_instance);
@@ -4386,7 +4343,6 @@ test_oa_unit_exclusive_stream(bool exponent)
err = intel_xe_perf_ioctl(drm_fd, DRM_XE_OBSERVATION_OP_STREAM_OPEN, ¶m);
igt_assert_lt(err, 0);
igt_assert(errno == EBUSY || errno == ENODEV);
- poau += sizeof(*oau) + oau->num_engines * sizeof(oau->eci[0]);
}
for (i = 0; i < qoa->num_oa_units; i++) {
@@ -4967,28 +4923,6 @@ exit:
oa_sync_free(&osync);
}
-#define __for_one_hwe_in_each_oa_unit(hwe) \
- for (int m = 0; !m || hwe; m++) \
- for_each_if(hwe = oa_unit_engine(oa_unit_by_id(drm_fd, m))) \
- igt_dynamic_f("%s-%d", xe_engine_class_name(hwe->engine_class), \
- hwe->engine_instance)
-
-/* Only OAG (not OAM) is currently supported */
-#define __for_one_hwe_in_oag(hwe) \
- if ((hwe = oa_unit_engine(oa_unit_by_type(drm_fd, DRM_XE_OA_UNIT_TYPE_OAG)))) \
- igt_dynamic_f("%s-%d", xe_engine_class_name(hwe->engine_class), \
- hwe->engine_instance)
-
-#define __for_one_hwe_in_oag_w_arg(hwe, str) \
- if ((hwe = oa_unit_engine(oa_unit_by_type(drm_fd, DRM_XE_OA_UNIT_TYPE_OAG)))) \
- igt_dynamic_f("%s-%d-%s", xe_engine_class_name(hwe->engine_class), \
- hwe->engine_instance, str)
-
-#define __for_one_render_engine(hwe) \
- hwe = &xe_find_engine_by_class(drm_fd, DRM_XE_ENGINE_CLASS_RENDER)->instance; \
- igt_require_f(hwe, "no render engine\n"); \
- igt_dynamic_f("rcs-%d", hwe->engine_instance)
-
#define __for_oa_unit_by_type(k) \
if ((oau = oa_unit_by_type(drm_fd, k))) \
igt_dynamic_f("%s-%d", oa_unit_name[oau->oa_unit_type], oau->oa_unit_id)
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 17/18] tests/intel/xe_oa: Add new non-zero-reason-all test
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (15 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 16/18] tests/intel/xe_oa: Run test_oa_unit_exclusive_stream on multiple OA units Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 18/18] tests/intel/xe_oa: Constify arguments to various functions Ashutosh Dixit
` (3 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
To demonstrate the new infrastructure, add a new non-zero-reason-all test
which runs the non-zero-reason test on all OA units.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index 128283ddd7..d8543eea88 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -4931,6 +4931,10 @@ exit:
if ((oau = oa_unit_by_type(drm_fd, k))) \
igt_dynamic_f("%s-%d-%s", oa_unit_name[oau->oa_unit_type], oau->oa_unit_id, str)
+#define __for_each_oa_unit(oau) \
+ for_each_oa_unit(oau) \
+ igt_dynamic_f("%s-%d", oa_unit_name[oau->oa_unit_type], oau->oa_unit_id)
+
static int opt_handler(int opt, int opt_index, void *data)
{
uint32_t tmp;
@@ -5076,6 +5080,16 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
test_non_zero_reason(oau, 0);
}
+ /**
+ * SUBTEST: non-zero-reason-all
+ * Description: Non zero reason over all OA units
+ */
+ igt_subtest_with_dynamic("non-zero-reason-all") {
+ igt_require(oau->capabilities & DRM_XE_OA_CAPS_OA_BUFFER_SIZE);
+ __for_each_oa_unit(oau)
+ test_non_zero_reason(oau, SZ_128K);
+ }
+
igt_subtest("disabled-read-error")
test_disabled_read_error();
igt_subtest("non-sampling-read-error")
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* [PATCH i-g-t 18/18] tests/intel/xe_oa: Constify arguments to various functions
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (16 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 17/18] tests/intel/xe_oa: Add new non-zero-reason-all test Ashutosh Dixit
@ 2025-10-13 20:30 ` Ashutosh Dixit
2025-10-13 23:54 ` ✓ Xe.CI.BAT: success for Change OA IGT's to run on all OA units (rev2) Patchwork
` (2 subsequent siblings)
20 siblings, 0 replies; 24+ messages in thread
From: Ashutosh Dixit @ 2025-10-13 20:30 UTC (permalink / raw)
To: igt-dev; +Cc: Umesh Nerlige Ramappa
Constify arguments to various functions, in order to prevent inadvertent
data modification.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
tests/intel/xe_oa.c | 120 +++++++++++++++++++++++---------------------
1 file changed, 64 insertions(+), 56 deletions(-)
diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
index d8543eea88..0c9e693f7d 100644
--- a/tests/intel/xe_oa.c
+++ b/tests/intel/xe_oa.c
@@ -345,7 +345,15 @@ static const char *oa_unit_name[] = {
[DRM_XE_OA_UNIT_TYPE_OAM_SAG] = "sag",
};
-static struct intel_xe_perf_metric_set *oa_unit_metric_set(struct drm_xe_oa_unit *oau)
+/* Wrapper to deconstify @inst for xe_exec_queue_create */
+static u32 xe_exec_queue_create_deconst(int fd, uint32_t vm,
+ const struct drm_xe_engine_class_instance *inst,
+ uint64_t ext)
+{
+ return xe_exec_queue_create(fd, vm, (struct drm_xe_engine_class_instance *)inst, ext);
+}
+
+static struct intel_xe_perf_metric_set *oa_unit_metric_set(const struct drm_xe_oa_unit *oau)
{
const char *test_set_name = NULL;
struct intel_xe_perf_metric_set *metric_set_iter;
@@ -476,35 +484,35 @@ static u64 oa_format_fields(u64 name)
}
#define __ff oa_format_fields
-static struct drm_xe_engine_class_instance *oa_unit_engine(struct drm_xe_oa_unit *oau)
+static const struct drm_xe_engine_class_instance *oa_unit_engine(const struct drm_xe_oa_unit *oau)
{
return !oau ? NULL : oau->num_engines ? &oau->eci[random() % oau->num_engines] : NULL;
}
-static int __first_and_num_oa_units(struct drm_xe_oa_unit **oau)
+static int __first_and_num_oa_units(const struct drm_xe_oa_unit **oau)
{
struct drm_xe_query_oa_units *qoa = xe_oa_units(drm_fd);
- *oau = (struct drm_xe_oa_unit *)&qoa->oa_units[0];
+ *oau = (const struct drm_xe_oa_unit *)&qoa->oa_units[0];
return qoa->num_oa_units;
}
-static struct drm_xe_oa_unit *__next_oa_unit(struct drm_xe_oa_unit *oau)
+static const struct drm_xe_oa_unit *__next_oa_unit(const struct drm_xe_oa_unit *oau)
{
u8 *poau = (u8 *)oau;
- return (struct drm_xe_oa_unit *)(poau + sizeof(*oau) +
- oau->num_engines * sizeof(oau->eci[0]));
+ return (const struct drm_xe_oa_unit *)(poau + sizeof(*oau) +
+ oau->num_engines * sizeof(oau->eci[0]));
}
#define for_each_oa_unit(oau) \
for (int _i = 0, _num_oa_units = __first_and_num_oa_units(&oau); \
_i < _num_oa_units; oau = __next_oa_unit(oau), _i++)
-static struct drm_xe_oa_unit *oa_unit_by_id(int fd, int id)
+static const struct drm_xe_oa_unit *oa_unit_by_id(int fd, int id)
{
- struct drm_xe_oa_unit *oau;
+ const struct drm_xe_oa_unit *oau;
for_each_oa_unit(oau) {
if (oau->oa_unit_id == id)
@@ -514,9 +522,9 @@ static struct drm_xe_oa_unit *oa_unit_by_id(int fd, int id)
return NULL;
}
-static struct drm_xe_oa_unit *oa_unit_by_type(int fd, int t)
+static const struct drm_xe_oa_unit *oa_unit_by_type(int fd, int t)
{
- struct drm_xe_oa_unit *oau;
+ const struct drm_xe_oa_unit *oau;
for_each_oa_unit(oau) {
if (oau->oa_unit_type == t)
@@ -1562,7 +1570,7 @@ open_and_read_2_oa_reports(int format_id,
uint32_t *oa_report0,
uint32_t *oa_report1,
bool timer_only,
- struct drm_xe_oa_unit *oau)
+ const struct drm_xe_oa_unit *oau)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t properties[] = {
@@ -1686,7 +1694,7 @@ print_reports(uint32_t *oa_report0, uint32_t *oa_report1, int fmt)
}
static bool
-oau_supports_oa_type(int oa_type, struct drm_xe_oa_unit *oau)
+oau_supports_oa_type(int oa_type, const struct drm_xe_oa_unit *oau)
{
switch (oa_type) {
case DRM_XE_OA_FMT_TYPE_OAM:
@@ -1707,7 +1715,7 @@ oau_supports_oa_type(int oa_type, struct drm_xe_oa_unit *oau)
* SUBTEST: oa-formats
* Description: Test that supported OA formats work as expected
*/
-static void test_oa_formats(struct drm_xe_oa_unit *oau)
+static void test_oa_formats(const struct drm_xe_oa_unit *oau)
{
for (int i = 0; i < XE_OA_FORMAT_MAX; i++) {
struct oa_format format = get_oa_format(i);
@@ -1864,7 +1872,7 @@ static bool expected_report_timing_delta(uint32_t delta, uint32_t expected_delta
* SUBTEST: oa-exponents
* Description: Test that oa exponent values behave as expected
*/
-static void test_oa_exponents(struct drm_xe_oa_unit *oau)
+static void test_oa_exponents(const struct drm_xe_oa_unit *oau)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t fmt = test_set->perf_oa_format;
@@ -2067,7 +2075,7 @@ get_time(void)
static void test_blocking(uint64_t requested_oa_period,
bool set_kernel_hrtimer,
uint64_t kernel_hrtimer,
- struct drm_xe_oa_unit *oau)
+ const struct drm_xe_oa_unit *oau)
{
int oa_exponent = max_oa_exponent_for_period_lte(requested_oa_period);
uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
@@ -2210,7 +2218,7 @@ static void test_blocking(uint64_t requested_oa_period,
static void test_polling(uint64_t requested_oa_period,
bool set_kernel_hrtimer,
uint64_t kernel_hrtimer,
- struct drm_xe_oa_unit *oau)
+ const struct drm_xe_oa_unit *oau)
{
int oa_exponent = max_oa_exponent_for_period_lte(requested_oa_period);
uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
@@ -2494,7 +2502,7 @@ num_valid_reports_captured(struct intel_xe_oa_open_prop *param,
* Description: Open OA stream twice to verify OA TLB invalidation
*/
static void
-test_oa_tlb_invalidate(struct drm_xe_oa_unit *oau)
+test_oa_tlb_invalidate(const struct drm_xe_oa_unit *oau)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t properties[] = {
@@ -2552,7 +2560,7 @@ wait_for_oa_buffer_overflow(int fd, int poll_period_us)
* Description: Test filling and overflow of OA buffer
*/
static void
-test_buffer_fill(struct drm_xe_oa_unit *oau)
+test_buffer_fill(const struct drm_xe_oa_unit *oau)
{
/* ~5 micro second period */
int oa_exponent = max_oa_exponent_for_period_lte(5000);
@@ -2599,7 +2607,7 @@ test_buffer_fill(struct drm_xe_oa_unit *oau)
* Description: Test reason field is non-zero. Can also check OA buffer wraparound issues
*/
static void
-test_non_zero_reason(struct drm_xe_oa_unit *oau, size_t oa_buffer_size)
+test_non_zero_reason(const struct drm_xe_oa_unit *oau, size_t oa_buffer_size)
{
/* ~20 micro second period */
int oa_exponent = max_oa_exponent_for_period_lte(20000);
@@ -2692,7 +2700,7 @@ test_non_zero_reason(struct drm_xe_oa_unit *oau, size_t oa_buffer_size)
* Description: Test that OA stream enable/disable works as expected
*/
static void
-test_enable_disable(struct drm_xe_oa_unit *oau)
+test_enable_disable(const struct drm_xe_oa_unit *oau)
{
uint32_t num_reports = 5;
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
@@ -2962,10 +2970,10 @@ test_disabled_read_error(void)
* Description: Test OAR/OAC using MI_REPORT_PERF_COUNT
*/
static void
-test_mi_rpc(struct drm_xe_oa_unit *oau)
+test_mi_rpc(const struct drm_xe_oa_unit *oau)
{
- struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
+ const struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
uint64_t fmt = ((IS_DG2(devid) || IS_METEORLAKE(devid)) &&
hwe->engine_class == DRM_XE_ENGINE_CLASS_COMPUTE) ?
XE_OAC_FORMAT_A24u64_B8_C8 : oar_unit_default_format();
@@ -3014,7 +3022,7 @@ test_mi_rpc(struct drm_xe_oa_unit *oau)
bops = buf_ops_create(drm_fd);
vm = xe_vm_create(drm_fd, 0, 0);
- ctx_id = xe_exec_queue_create(drm_fd, vm, hwe, 0);
+ ctx_id = xe_exec_queue_create_deconst(drm_fd, vm, hwe, 0);
igt_assert_neq(ctx_id, INVALID_CTX_ID);
properties[3] = ctx_id;
@@ -3093,7 +3101,7 @@ emit_stall_timestamp_and_rpc(struct intel_bb *ibb,
emit_report_perf_count(ibb, dst, report_dst_offset, report_id);
}
-static void single_ctx_helper(struct drm_xe_oa_unit *oau)
+static void single_ctx_helper(const struct drm_xe_oa_unit *oau)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
struct drm_xe_engine_class_instance *hwe =
@@ -3401,7 +3409,7 @@ static void single_ctx_helper(struct drm_xe_oa_unit *oau)
* Description: A harder test for OAR/OAC using MI_REPORT_PERF_COUNT
*/
static void
-test_single_ctx_render_target_writes_a_counter(struct drm_xe_oa_unit *oau)
+test_single_ctx_render_target_writes_a_counter(const struct drm_xe_oa_unit *oau)
{
int child_ret;
struct igt_helper_process child = {};
@@ -3478,7 +3486,7 @@ test_rc6_disable(void)
* Description: Open/close OA streams in a tight loop
*/
static void
-test_stress_open_close(struct drm_xe_oa_unit *oau)
+test_stress_open_close(const struct drm_xe_oa_unit *oau)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
@@ -3960,10 +3968,10 @@ static u32 oa_get_mmio_base(const struct drm_xe_engine_class_instance *hwe)
* SUBTEST: oa-regs-whitelisted
* Description: Verify that OA registers are whitelisted
*/
-static void test_oa_regs_whitelist(struct drm_xe_oa_unit *oau)
+static void test_oa_regs_whitelist(const struct drm_xe_oa_unit *oau)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
- struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
+ const struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
uint64_t properties[] = {
DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
@@ -4007,10 +4015,10 @@ static void test_oa_regs_whitelist(struct drm_xe_oa_unit *oau)
}
static void
-__test_mmio_triggered_reports(struct drm_xe_oa_unit *oau)
+__test_mmio_triggered_reports(const struct drm_xe_oa_unit *oau)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
- struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
+ const struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
uint64_t properties[] = {
DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
@@ -4045,7 +4053,7 @@ __test_mmio_triggered_reports(struct drm_xe_oa_unit *oau)
scratch_buf_init(bops, &dst, rc_width, rc_height, 0x00ff00ff);
vm = xe_vm_create(drm_fd, 0, 0);
- context = xe_exec_queue_create(drm_fd, vm, hwe, 0);
+ context = xe_exec_queue_create_deconst(drm_fd, vm, hwe, 0);
igt_assert(context);
ibb = intel_bb_create_with_context(drm_fd, context, vm, NULL, BATCH_SZ);
@@ -4114,10 +4122,10 @@ __test_mmio_triggered_reports(struct drm_xe_oa_unit *oau)
}
static void
-__test_mmio_triggered_reports_read(struct drm_xe_oa_unit *oau)
+__test_mmio_triggered_reports_read(const struct drm_xe_oa_unit *oau)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
- struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
+ const struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
uint64_t properties[] = {
DRM_XE_OA_PROPERTY_OA_UNIT_ID, oau->oa_unit_id,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
@@ -4144,7 +4152,7 @@ __test_mmio_triggered_reports_read(struct drm_xe_oa_unit *oau)
scratch_buf_init(bops, &dst, rc_width, rc_height, 0x00ff00ff);
vm = xe_vm_create(drm_fd, 0, 0);
- context = xe_exec_queue_create(drm_fd, vm, hwe, 0);
+ context = xe_exec_queue_create_deconst(drm_fd, vm, hwe, 0);
igt_assert(context);
ibb = intel_bb_create_with_context(drm_fd, context, vm, NULL, BATCH_SZ);
@@ -4212,7 +4220,7 @@ __test_mmio_triggered_reports_read(struct drm_xe_oa_unit *oau)
* Description: Test MMIO trigger functionality with read system call
*/
static void
-test_mmio_triggered_reports(struct drm_xe_oa_unit *oau, bool with_read)
+test_mmio_triggered_reports(const struct drm_xe_oa_unit *oau, bool with_read)
{
struct igt_helper_process child = {};
int ret;
@@ -4261,8 +4269,8 @@ static void
test_oa_unit_exclusive_stream(bool exponent)
{
struct drm_xe_query_oa_units *qoa = xe_oa_units(drm_fd);
- struct drm_xe_engine_class_instance *hwe;
- struct drm_xe_oa_unit *oau;
+ const struct drm_xe_engine_class_instance *hwe;
+ const struct drm_xe_oa_unit *oau;
uint64_t properties[] = {
DRM_XE_OA_PROPERTY_OA_UNIT_ID, 0,
DRM_XE_OA_PROPERTY_SAMPLE_OA, true,
@@ -4292,7 +4300,7 @@ test_oa_unit_exclusive_stream(bool exponent)
igt_debug("opening OA buffer with c:i %d:%d\n",
hwe->engine_class, hwe->engine_instance);
- exec_q[i] = xe_exec_queue_create(drm_fd, vm, hwe, 0);
+ exec_q[i] = xe_exec_queue_create_deconst(drm_fd, vm, hwe, 0);
if (!exponent) {
properties[10] = DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID;
properties[11] = exec_q[i];
@@ -4336,7 +4344,7 @@ test_oa_unit_exclusive_stream(bool exponent)
/* case 2: concurrent access to non-OAG unit should fail */
igt_debug("try with exec_q with c:i %d:%d\n",
hwe->engine_class, hwe->engine_instance);
- exec_q[i] = xe_exec_queue_create(drm_fd, vm, hwe, 0);
+ exec_q[i] = xe_exec_queue_create_deconst(drm_fd, vm, hwe, 0);
properties[10] = DRM_XE_OA_PROPERTY_EXEC_QUEUE_ID;
properties[11] = exec_q[i];
errno = 0;
@@ -4363,7 +4371,7 @@ test_oa_unit_concurrent_oa_buffer_read(void)
struct drm_xe_query_oa_units *qoa = xe_oa_units(drm_fd);
igt_fork(child, qoa->num_oa_units) {
- struct drm_xe_oa_unit *oau = oa_unit_by_id(drm_fd, child);
+ const struct drm_xe_oa_unit *oau = oa_unit_by_id(drm_fd, child);
/* No OAM support yet */
if (oau->oa_unit_type != DRM_XE_OA_UNIT_TYPE_OAG)
@@ -4383,7 +4391,7 @@ static void *map_oa_buffer(u32 *size)
return vaddr;
}
-static void invalid_param_map_oa_buffer(struct drm_xe_oa_unit *oau)
+static void invalid_param_map_oa_buffer(const struct drm_xe_oa_unit *oau)
{
void *oa_vaddr = NULL;
@@ -4419,7 +4427,7 @@ static void unprivileged_try_to_map_oa_buffer(void)
igt_assert_eq(errno, EACCES);
}
-static void unprivileged_map_oa_buffer(struct drm_xe_oa_unit *oau)
+static void unprivileged_map_oa_buffer(const struct drm_xe_oa_unit *oau)
{
igt_fork(child, 1) {
igt_drop_root();
@@ -4453,7 +4461,7 @@ static void try_invalid_access(void *vaddr)
signal(SIGSEGV, old_sigsegv);
}
-static void map_oa_buffer_unprivilege_access(struct drm_xe_oa_unit *oau)
+static void map_oa_buffer_unprivilege_access(const struct drm_xe_oa_unit *oau)
{
void *vaddr;
uint32_t size;
@@ -4469,7 +4477,7 @@ static void map_oa_buffer_unprivilege_access(struct drm_xe_oa_unit *oau)
munmap(vaddr, size);
}
-static void map_oa_buffer_forked_access(struct drm_xe_oa_unit *oau)
+static void map_oa_buffer_forked_access(const struct drm_xe_oa_unit *oau)
{
void *vaddr;
uint32_t size;
@@ -4485,7 +4493,7 @@ static void map_oa_buffer_forked_access(struct drm_xe_oa_unit *oau)
}
static void mmap_wait_for_periodic_reports(void *oa_vaddr, uint32_t n,
- struct drm_xe_oa_unit *oau)
+ const struct drm_xe_oa_unit *oau)
{
uint32_t period_us = oa_exponent_to_ns(oa_exponent_default) / 1000;
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
@@ -4506,7 +4514,7 @@ static void mmap_wait_for_periodic_reports(void *oa_vaddr, uint32_t n,
}
static void mmap_check_reports(void *oa_vaddr, uint32_t oa_size,
- struct drm_xe_oa_unit *oau)
+ const struct drm_xe_oa_unit *oau)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t fmt = test_set->perf_oa_format;
@@ -4533,7 +4541,7 @@ static void mmap_check_reports(void *oa_vaddr, uint32_t oa_size,
igt_assert(timer_reports >= 3);
}
-static void check_reports_from_mapped_buffer(struct drm_xe_oa_unit *oau)
+static void check_reports_from_mapped_buffer(const struct drm_xe_oa_unit *oau)
{
void *vaddr;
uint32_t size;
@@ -4550,7 +4558,7 @@ static void check_reports_from_mapped_buffer(struct drm_xe_oa_unit *oau)
* SUBTEST: closed-fd-and-unmapped-access
* Description: Unmap buffer, close fd and try to access
*/
-static void closed_fd_and_unmapped_access(struct drm_xe_oa_unit *oau)
+static void closed_fd_and_unmapped_access(const struct drm_xe_oa_unit *oau)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t properties[] = {
@@ -4588,7 +4596,7 @@ static void closed_fd_and_unmapped_access(struct drm_xe_oa_unit *oau)
* has zeroes in it.
*/
static void
-test_tail_address_wrap(struct drm_xe_oa_unit *oau, size_t oa_buffer_size)
+test_tail_address_wrap(const struct drm_xe_oa_unit *oau, size_t oa_buffer_size)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
u64 exponent = max_oa_exponent_for_period_lte(20000);
@@ -4648,9 +4656,9 @@ test_tail_address_wrap(struct drm_xe_oa_unit *oau, size_t oa_buffer_size)
* SUBTEST: privileged-forked-access-vaddr
* Description: Verify that forked access to mapped buffer fails
*/
-typedef void (*map_oa_buffer_test_t)(struct drm_xe_oa_unit *oau);
+typedef void (*map_oa_buffer_test_t)(const struct drm_xe_oa_unit *oau);
static void test_mapped_oa_buffer(map_oa_buffer_test_t test_with_fd_open,
- struct drm_xe_oa_unit *oau)
+ const struct drm_xe_oa_unit *oau)
{
struct intel_xe_perf_metric_set *test_set = oa_unit_metric_set(oau);
uint64_t properties[] = {
@@ -4732,10 +4740,10 @@ struct oa_sync {
};
static void
-oa_sync_init(enum oa_sync_type sync_type, struct drm_xe_oa_unit *oau,
+oa_sync_init(enum oa_sync_type sync_type, const struct drm_xe_oa_unit *oau,
struct oa_sync *osync, struct drm_xe_sync *sync)
{
- struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
+ const struct drm_xe_engine_class_instance *hwe = oa_unit_engine(oau);
uint64_t addr = 0x1a0000;
osync->sync_type = sync_type;
@@ -4857,7 +4865,7 @@ static void oa_sync_free(struct oa_sync *osync)
* @wait-cfg: Exercise reconfig path and wait for syncs to signal
* @wait: Don't exercise reconfig path and wait for syncs to signal
*/
-static void test_syncs(struct drm_xe_oa_unit *oau,
+static void test_syncs(const struct drm_xe_oa_unit *oau,
enum oa_sync_type sync_type, int flags)
{
struct drm_xe_ext_set_property extn[XE_OA_MAX_SET_PROPERTIES] = {};
@@ -4985,7 +4993,7 @@ igt_main_args("b:t", long_options, help_str, opt_handler, NULL)
{ "ufence-wait", OA_SYNC_TYPE_UFENCE, WAIT },
{ NULL },
};
- struct drm_xe_oa_unit *oau;
+ const struct drm_xe_oa_unit *oau;
struct xe_device *xe_dev;
igt_fixture {
--
2.48.1
^ permalink raw reply related [flat|nested] 24+ messages in thread
* ✓ Xe.CI.BAT: success for Change OA IGT's to run on all OA units (rev2)
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (17 preceding siblings ...)
2025-10-13 20:30 ` [PATCH i-g-t 18/18] tests/intel/xe_oa: Constify arguments to various functions Ashutosh Dixit
@ 2025-10-13 23:54 ` Patchwork
2025-10-14 0:13 ` ✗ i915.CI.BAT: failure " Patchwork
2025-10-14 7:32 ` ✗ Xe.CI.Full: " Patchwork
20 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-10-13 23:54 UTC (permalink / raw)
To: Dixit, Ashutosh; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 980 bytes --]
== Series Details ==
Series: Change OA IGT's to run on all OA units (rev2)
URL : https://patchwork.freedesktop.org/series/155639/
State : success
== Summary ==
CI Bug Log - changes from XEIGT_8582_BAT -> XEIGTPW_13894_BAT
====================================================
Summary
-------
**SUCCESS**
No regressions found.
Participating hosts (11 -> 11)
------------------------------
No changes in participating hosts
Changes
-------
No changes found
Build changes
-------------
* IGT: IGT_8582 -> IGTPW_13894
* Linux: xe-3900-06342be0412e879eaede7e6932e651f8cb630203 -> xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada
IGTPW_13894: 13894
IGT_8582: 8582
xe-3900-06342be0412e879eaede7e6932e651f8cb630203: 06342be0412e879eaede7e6932e651f8cb630203
xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada: c917f7d11493984be9f381ca0a7667bd3e587ada
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/index.html
[-- Attachment #2: Type: text/html, Size: 1544 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✗ i915.CI.BAT: failure for Change OA IGT's to run on all OA units (rev2)
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (18 preceding siblings ...)
2025-10-13 23:54 ` ✓ Xe.CI.BAT: success for Change OA IGT's to run on all OA units (rev2) Patchwork
@ 2025-10-14 0:13 ` Patchwork
2025-10-14 7:32 ` ✗ Xe.CI.Full: " Patchwork
20 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-10-14 0:13 UTC (permalink / raw)
To: Dixit, Ashutosh; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 9131 bytes --]
== Series Details ==
Series: Change OA IGT's to run on all OA units (rev2)
URL : https://patchwork.freedesktop.org/series/155639/
State : failure
== Summary ==
CI Bug Log - changes from IGT_8582 -> IGTPW_13894
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_13894 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_13894, 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_13894/index.html
Participating hosts (43 -> 39)
------------------------------
Additional (1): bat-adls-6
Missing (5): bat-dg2-14 bat-adlp-6 fi-snb-2520m bat-rplp-1 bat-dg2-13
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_13894:
### IGT changes ###
#### Possible regressions ####
* igt@i915_pm_rpm@module-reload:
- bat-arlh-2: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8582/bat-arlh-2/igt@i915_pm_rpm@module-reload.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-arlh-2/igt@i915_pm_rpm@module-reload.html
* igt@runner@aborted:
- fi-bsw-n3050: NOTRUN -> [FAIL][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/fi-bsw-n3050/igt@runner@aborted.html
- fi-bsw-nick: NOTRUN -> [FAIL][4]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/fi-bsw-nick/igt@runner@aborted.html
Known issues
------------
Here are the changes found in IGTPW_13894 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_lmem_swapping@parallel-random-engines:
- bat-adls-6: NOTRUN -> [SKIP][5] ([i915#4613]) +3 other tests skip
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-adls-6/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@gem_tiled_pread_basic:
- bat-adls-6: NOTRUN -> [SKIP][6] ([i915#3282])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-adls-6/igt@gem_tiled_pread_basic.html
* igt@i915_selftest@live@late_gt_pm:
- fi-cfl-8109u: [PASS][7] -> [DMESG-WARN][8] ([i915#13735]) +80 other tests dmesg-warn
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8582/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/fi-cfl-8109u/igt@i915_selftest@live@late_gt_pm.html
* igt@i915_selftest@live@sanitycheck:
- fi-kbl-7567u: [PASS][9] -> [DMESG-WARN][10] ([i915#13735]) +79 other tests dmesg-warn
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8582/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/fi-kbl-7567u/igt@i915_selftest@live@sanitycheck.html
* igt@i915_selftest@live@workarounds:
- bat-dg2-11: [PASS][11] -> [DMESG-FAIL][12] ([i915#12061]) +1 other test dmesg-fail
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8582/bat-dg2-11/igt@i915_selftest@live@workarounds.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-dg2-11/igt@i915_selftest@live@workarounds.html
* igt@intel_hwmon@hwmon-read:
- bat-adls-6: NOTRUN -> [SKIP][13] ([i915#7707]) +1 other test skip
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-adls-6/igt@intel_hwmon@hwmon-read.html
* igt@kms_busy@basic@flip:
- fi-kbl-7567u: [PASS][14] -> [DMESG-WARN][15] ([i915#13735] / [i915#180])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8582/fi-kbl-7567u/igt@kms_busy@basic@flip.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/fi-kbl-7567u/igt@kms_busy@basic@flip.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy:
- bat-adls-6: NOTRUN -> [SKIP][16] ([i915#4103]) +1 other test skip
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-adls-6/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html
* igt@kms_dsc@dsc-basic:
- bat-adls-6: NOTRUN -> [SKIP][17] ([i915#3555] / [i915#3840])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-adls-6/igt@kms_dsc@dsc-basic.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-adls-6: NOTRUN -> [SKIP][18]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-adls-6/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_pipe_crc_basic@read-crc:
- fi-cfl-8109u: [PASS][19] -> [DMESG-WARN][20] ([i915#13735] / [i915#13890]) +49 other tests dmesg-warn
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8582/fi-cfl-8109u/igt@kms_pipe_crc_basic@read-crc.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/fi-cfl-8109u/igt@kms_pipe_crc_basic@read-crc.html
* igt@kms_pm_backlight@basic-brightness:
- bat-adls-6: NOTRUN -> [SKIP][21] ([i915#5354])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-adls-6/igt@kms_pm_backlight@basic-brightness.html
* igt@kms_pm_rpm@basic-pci-d3-state:
- fi-kbl-7567u: [PASS][22] -> [DMESG-WARN][23] ([i915#13735] / [i915#13890] / [i915#180]) +52 other tests dmesg-warn
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8582/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/fi-kbl-7567u/igt@kms_pm_rpm@basic-pci-d3-state.html
* igt@kms_psr@psr-primary-mmap-gtt:
- bat-adls-6: NOTRUN -> [SKIP][24] ([i915#1072] / [i915#9732]) +3 other tests skip
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-adls-6/igt@kms_psr@psr-primary-mmap-gtt.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-adls-6: NOTRUN -> [SKIP][25] ([i915#3555])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-adls-6/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-fence-read:
- bat-adls-6: NOTRUN -> [SKIP][26] ([i915#3291]) +2 other tests skip
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-adls-6/igt@prime_vgem@basic-fence-read.html
#### Possible fixes ####
* igt@i915_selftest@live@workarounds:
- bat-mtlp-9: [DMESG-FAIL][27] ([i915#12061]) -> [PASS][28] +1 other test pass
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8582/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-mtlp-9/igt@i915_selftest@live@workarounds.html
#### Warnings ####
* igt@i915_selftest@live:
- bat-atsm-1: [DMESG-FAIL][29] ([i915#12061] / [i915#13929]) -> [DMESG-FAIL][30] ([i915#12061] / [i915#14204])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8582/bat-atsm-1/igt@i915_selftest@live.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-atsm-1/igt@i915_selftest@live.html
* igt@i915_selftest@live@mman:
- bat-atsm-1: [DMESG-FAIL][31] ([i915#13929]) -> [DMESG-FAIL][32] ([i915#14204])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_8582/bat-atsm-1/igt@i915_selftest@live@mman.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/bat-atsm-1/igt@i915_selftest@live@mman.html
[i915#1072]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/1072
[i915#12061]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/12061
[i915#13735]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13735
[i915#13890]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13890
[i915#13929]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/13929
[i915#14204]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/14204
[i915#180]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/180
[i915#3282]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3291
[i915#3555]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3555
[i915#3840]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/3840
[i915#4103]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4103
[i915#4613]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/4613
[i915#5354]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/5354
[i915#7707]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/7707
[i915#9732]: https://gitlab.freedesktop.org/drm/i915/kernel/-/issues/9732
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_8582 -> IGTPW_13894
* Linux: CI_DRM_17341 -> CI_DRM_17352
CI-20190529: 20190529
CI_DRM_17341: 06342be0412e879eaede7e6932e651f8cb630203 @ git://anongit.freedesktop.org/gfx-ci/linux
CI_DRM_17352: c917f7d11493984be9f381ca0a7667bd3e587ada @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_13894: 13894
IGT_8582: 8582
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_13894/index.html
[-- Attachment #2: Type: text/html, Size: 11199 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* ✗ Xe.CI.Full: failure for Change OA IGT's to run on all OA units (rev2)
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
` (19 preceding siblings ...)
2025-10-14 0:13 ` ✗ i915.CI.BAT: failure " Patchwork
@ 2025-10-14 7:32 ` Patchwork
20 siblings, 0 replies; 24+ messages in thread
From: Patchwork @ 2025-10-14 7:32 UTC (permalink / raw)
To: Dixit, Ashutosh; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 55510 bytes --]
== Series Details ==
Series: Change OA IGT's to run on all OA units (rev2)
URL : https://patchwork.freedesktop.org/series/155639/
State : failure
== Summary ==
CI Bug Log - changes from XEIGT_8582_FULL -> XEIGTPW_13894_FULL
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with XEIGTPW_13894_FULL absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in XEIGTPW_13894_FULL, 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 -> 3)
------------------------------
Missing (1): shard-adlp
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in XEIGTPW_13894_FULL:
### IGT changes ###
#### Possible regressions ####
* igt@xe_exec_system_allocator@many-stride-malloc-fork-read-after:
- shard-lnl: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-lnl-5/igt@xe_exec_system_allocator@many-stride-malloc-fork-read-after.html
[2]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-3/igt@xe_exec_system_allocator@many-stride-malloc-fork-read-after.html
* {igt@xe_oa@non-zero-reason-all} (NEW):
- shard-dg2-set2: NOTRUN -> [SKIP][3]
[3]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-434/igt@xe_oa@non-zero-reason-all.html
New tests
---------
New tests have been introduced between XEIGT_8582_FULL and XEIGTPW_13894_FULL:
### New IGT tests (36) ###
* igt@xe_oa@blocking@oag-0:
- Statuses : 2 pass(s)
- Exec time: [1.01] s
* igt@xe_oa@buffer-fill@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.10, 0.11] s
* igt@xe_oa@buffer-size@oag-0-128m:
- Statuses : 1 pass(s)
- Exec time: [9.34] s
* igt@xe_oa@buffer-size@oag-0-512k:
- Statuses : 1 pass(s)
- Exec time: [0.06] s
* igt@xe_oa@closed-fd-and-unmapped-access@oag-0:
- Statuses : 1 pass(s)
- Exec time: [0.05] s
* igt@xe_oa@enable-disable@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01, 0.02] s
* igt@xe_oa@invalid-map-oa-buffer@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01] s
* igt@xe_oa@map-oa-buffer@oag-0:
- Statuses : 1 pass(s)
- Exec time: [0.05] s
* igt@xe_oa@mi-rpc@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01, 0.02] s
* igt@xe_oa@mmio-triggered-reports-read@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.03, 0.04] s
* igt@xe_oa@mmio-triggered-reports@oag-0:
- Statuses : 1 pass(s)
- Exec time: [0.04] s
* igt@xe_oa@non-privileged-access-vaddr@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01, 0.02] s
* igt@xe_oa@non-privileged-map-oa-buffer@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01, 0.02] s
* igt@xe_oa@non-zero-reason-all:
- Statuses : 2 pass(s) 1 skip(s)
- Exec time: [0.0, 0.25] s
* igt@xe_oa@non-zero-reason-all@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.04] s
* igt@xe_oa@non-zero-reason-all@oam-2:
- Statuses : 2 pass(s)
- Exec time: [0.07] s
* igt@xe_oa@non-zero-reason-all@oam-3:
- Statuses : 1 pass(s)
- Exec time: [0.07] s
* igt@xe_oa@non-zero-reason-all@sag-1:
- Statuses : 2 pass(s)
- Exec time: [0.06, 0.07] s
* igt@xe_oa@non-zero-reason@oag-0:
- Statuses : 2 pass(s)
- Exec time: [1.19] s
* igt@xe_oa@oa-exponents@oag-0:
- Statuses : 2 pass(s)
- Exec time: [3.42, 3.47] s
* igt@xe_oa@oa-formats@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.12, 0.14] s
* igt@xe_oa@oa-regs-whitelisted@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01, 0.02] s
* igt@xe_oa@polling@oag-0:
- Statuses : 2 pass(s)
- Exec time: [1.01, 1.02] s
* igt@xe_oa@privileged-forked-access-vaddr@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.02] s
* igt@xe_oa@stress-open-close@oag-0:
- Statuses : 2 pass(s)
- Exec time: [2.17] s
* igt@xe_oa@syncs-syncobj-cfg@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01] s
* igt@xe_oa@syncs-syncobj-none@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.00, 0.01] s
* igt@xe_oa@syncs-syncobj-wait-cfg@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01] s
* igt@xe_oa@syncs-syncobj-wait@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01] s
* igt@xe_oa@syncs-ufence-wait-cfg@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01] s
* igt@xe_oa@syncs-ufence-wait@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01] s
* igt@xe_oa@syncs-userptr-wait-cfg@oag-0:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@xe_oa@syncs-userptr-wait@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.01] s
* igt@xe_oa@tail-address-wrap@oag-0-256k:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@xe_oa@tail-address-wrap@oag-0-512k:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@xe_oa@unprivileged-single-ctx-counters@oag-0:
- Statuses : 2 pass(s)
- Exec time: [0.05, 0.07] s
Known issues
------------
Here are the changes found in XEIGTPW_13894_FULL that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@intel_hwmon@hwmon-write:
- shard-bmg: [PASS][4] -> [FAIL][5] ([Intel XE#4665])
[4]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-5/igt@intel_hwmon@hwmon-write.html
[5]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-1/igt@intel_hwmon@hwmon-write.html
* igt@kms_big_fb@4-tiled-8bpp-rotate-270:
- shard-dg2-set2: NOTRUN -> [SKIP][6] ([Intel XE#316]) +1 other test skip
[6]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-463/igt@kms_big_fb@4-tiled-8bpp-rotate-270.html
* igt@kms_big_fb@y-tiled-addfb:
- shard-bmg: NOTRUN -> [SKIP][7] ([Intel XE#2328])
[7]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-4/igt@kms_big_fb@y-tiled-addfb.html
* igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip:
- shard-dg2-set2: NOTRUN -> [SKIP][8] ([Intel XE#1124]) +1 other test skip
[8]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-435/igt@kms_big_fb@y-tiled-max-hw-stride-64bpp-rotate-0-hflip-async-flip.html
* igt@kms_big_fb@yf-tiled-32bpp-rotate-180:
- shard-lnl: NOTRUN -> [SKIP][9] ([Intel XE#1124])
[9]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-8/igt@kms_big_fb@yf-tiled-32bpp-rotate-180.html
* igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p:
- shard-lnl: NOTRUN -> [SKIP][10] ([Intel XE#2191]) +1 other test skip
[10]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-8/igt@kms_bw@connected-linear-tiling-2-displays-1920x1080p.html
* igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p:
- shard-bmg: NOTRUN -> [SKIP][11] ([Intel XE#2314] / [Intel XE#2894])
[11]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-1/igt@kms_bw@connected-linear-tiling-3-displays-1920x1080p.html
* igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs:
- shard-dg2-set2: NOTRUN -> [SKIP][12] ([Intel XE#455] / [Intel XE#787]) +11 other tests skip
[12]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-432/igt@kms_ccs@ccs-on-another-bo-y-tiled-ccs.html
* igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs@pipe-c-edp-1:
- shard-lnl: NOTRUN -> [SKIP][13] ([Intel XE#2669]) +3 other tests skip
[13]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-5/igt@kms_ccs@crc-primary-basic-4-tiled-bmg-ccs@pipe-c-edp-1.html
* igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs:
- shard-bmg: [PASS][14] -> [INCOMPLETE][15] ([Intel XE#3862]) +1 other test incomplete
[14]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-2/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
[15]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-7/igt@kms_ccs@crc-primary-suspend-4-tiled-bmg-ccs.html
* igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs:
- shard-bmg: NOTRUN -> [SKIP][16] ([Intel XE#3432])
[16]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-1/igt@kms_ccs@crc-primary-suspend-y-tiled-gen12-rc-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-mc-ccs:
- shard-lnl: NOTRUN -> [SKIP][17] ([Intel XE#2887])
[17]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-8/igt@kms_ccs@crc-sprite-planes-basic-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-6:
- shard-dg2-set2: NOTRUN -> [SKIP][18] ([Intel XE#787]) +41 other tests skip
[18]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-432/igt@kms_ccs@crc-sprite-planes-basic-y-tiled-gen12-mc-ccs@pipe-b-hdmi-a-6.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-dp-4:
- shard-dg2-set2: [PASS][19] -> [INCOMPLETE][20] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522])
[19]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-dp-4.html
[20]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs@pipe-b-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs:
- shard-dg2-set2: [PASS][21] -> [INCOMPLETE][22] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345] / [Intel XE#6168])
[21]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
[22]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-c-dp-4:
- shard-dg2-set2: NOTRUN -> [INCOMPLETE][23] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4522] / [Intel XE#6014])
[23]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-c-dp-4.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-6:
- shard-dg2-set2: [PASS][24] -> [INCOMPLETE][25] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#6168])
[24]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-433/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-6.html
[25]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs@pipe-b-hdmi-a-6.html
* igt@kms_chamelium_color@degamma:
- shard-bmg: NOTRUN -> [SKIP][26] ([Intel XE#2325])
[26]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-4/igt@kms_chamelium_color@degamma.html
- shard-dg2-set2: NOTRUN -> [SKIP][27] ([Intel XE#306])
[27]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-436/igt@kms_chamelium_color@degamma.html
- shard-lnl: NOTRUN -> [SKIP][28] ([Intel XE#306]) +1 other test skip
[28]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-5/igt@kms_chamelium_color@degamma.html
* igt@kms_chamelium_frames@dp-crc-fast:
- shard-dg2-set2: NOTRUN -> [SKIP][29] ([Intel XE#373]) +1 other test skip
[29]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-466/igt@kms_chamelium_frames@dp-crc-fast.html
* igt@kms_chamelium_hpd@dp-hpd-after-hibernate:
- shard-lnl: NOTRUN -> [SKIP][30] ([Intel XE#373])
[30]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-4/igt@kms_chamelium_hpd@dp-hpd-after-hibernate.html
* igt@kms_chamelium_hpd@vga-hpd-enable-disable-mode:
- shard-bmg: NOTRUN -> [SKIP][31] ([Intel XE#2252])
[31]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-7/igt@kms_chamelium_hpd@vga-hpd-enable-disable-mode.html
* igt@kms_content_protection@dp-mst-type-1:
- shard-dg2-set2: NOTRUN -> [SKIP][32] ([Intel XE#307])
[32]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-435/igt@kms_content_protection@dp-mst-type-1.html
* igt@kms_cursor_crc@cursor-sliding-32x32:
- shard-bmg: NOTRUN -> [SKIP][33] ([Intel XE#2320])
[33]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_cursor_crc@cursor-sliding-32x32.html
* igt@kms_cursor_crc@cursor-sliding-max-size:
- shard-lnl: NOTRUN -> [SKIP][34] ([Intel XE#1424]) +2 other tests skip
[34]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-1/igt@kms_cursor_crc@cursor-sliding-max-size.html
* igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy:
- shard-lnl: NOTRUN -> [SKIP][35] ([Intel XE#309])
[35]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-4/igt@kms_cursor_legacy@2x-cursor-vs-flip-legacy.html
* igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size:
- shard-bmg: [PASS][36] -> [SKIP][37] ([Intel XE#2291]) +7 other tests skip
[36]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-7/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html
[37]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-4/igt@kms_cursor_legacy@cursora-vs-flipb-atomic-transitions-varying-size.html
* igt@kms_display_modes@extended-mode-basic:
- shard-bmg: [PASS][38] -> [SKIP][39] ([Intel XE#4302])
[38]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-1/igt@kms_display_modes@extended-mode-basic.html
[39]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_display_modes@extended-mode-basic.html
* igt@kms_dither@fb-8bpc-vs-panel-6bpc:
- shard-bmg: [PASS][40] -> [SKIP][41] ([Intel XE#1340])
[40]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-3/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
[41]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_dither@fb-8bpc-vs-panel-6bpc.html
* igt@kms_dsc@dsc-with-output-formats:
- shard-lnl: NOTRUN -> [SKIP][42] ([Intel XE#2244])
[42]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-1/igt@kms_dsc@dsc-with-output-formats.html
* igt@kms_fbcon_fbt@fbc:
- shard-bmg: NOTRUN -> [SKIP][43] ([Intel XE#5425])
[43]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_fbcon_fbt@fbc.html
* igt@kms_feature_discovery@chamelium:
- shard-dg2-set2: NOTRUN -> [SKIP][44] ([Intel XE#701])
[44]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-435/igt@kms_feature_discovery@chamelium.html
* igt@kms_feature_discovery@display-2x:
- shard-bmg: [PASS][45] -> [SKIP][46] ([Intel XE#2373])
[45]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-4/igt@kms_feature_discovery@display-2x.html
[46]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-4/igt@kms_feature_discovery@display-2x.html
* igt@kms_flip@2x-flip-vs-rmfb-interruptible:
- shard-lnl: NOTRUN -> [SKIP][47] ([Intel XE#1421])
[47]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-8/igt@kms_flip@2x-flip-vs-rmfb-interruptible.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-bmg: [PASS][48] -> [SKIP][49] ([Intel XE#2316]) +7 other tests skip
[48]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-1/igt@kms_flip@2x-nonexisting-fb.html
[49]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_flip@flip-vs-expired-vblank@b-edp1:
- shard-lnl: [PASS][50] -> [FAIL][51] ([Intel XE#301])
[50]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
[51]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@b-edp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling:
- shard-bmg: NOTRUN -> [SKIP][52] ([Intel XE#2293] / [Intel XE#2380])
[52]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-2/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
- shard-lnl: NOTRUN -> [SKIP][53] ([Intel XE#1401] / [Intel XE#1745])
[53]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-3/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode:
- shard-lnl: NOTRUN -> [SKIP][54] ([Intel XE#1401])
[54]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-3/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode:
- shard-bmg: NOTRUN -> [SKIP][55] ([Intel XE#2293])
[55]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-2/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-valid-mode.html
* igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][56] ([Intel XE#2311]) +3 other tests skip
[56]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-3/igt@kms_frontbuffer_tracking@drrs-2p-primscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-onoff:
- shard-dg2-set2: NOTRUN -> [SKIP][57] ([Intel XE#651]) +6 other tests skip
[57]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-463/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-plflip-blt:
- shard-lnl: NOTRUN -> [SKIP][58] ([Intel XE#656]) +4 other tests skip
[58]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-4/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-shrfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-wc:
- shard-bmg: NOTRUN -> [SKIP][59] ([Intel XE#5390]) +1 other test skip
[59]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-5/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-shrfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff:
- shard-bmg: NOTRUN -> [SKIP][60] ([Intel XE#2312]) +1 other test skip
[60]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-spr-indfb-onoff.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt:
- shard-bmg: NOTRUN -> [SKIP][61] ([Intel XE#2313]) +2 other tests skip
[61]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-indfb-plflip-blt.html
* igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary:
- shard-dg2-set2: NOTRUN -> [SKIP][62] ([Intel XE#653]) +10 other tests skip
[62]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-434/igt@kms_frontbuffer_tracking@psr-shrfb-scaledprimary.html
* igt@kms_hdmi_inject@inject-audio:
- shard-lnl: NOTRUN -> [SKIP][63] ([Intel XE#1470] / [Intel XE#2853])
[63]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-3/igt@kms_hdmi_inject@inject-audio.html
* igt@kms_hdr@static-toggle-dpms:
- shard-bmg: [PASS][64] -> [SKIP][65] ([Intel XE#1503])
[64]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-1/igt@kms_hdr@static-toggle-dpms.html
[65]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-4/igt@kms_hdr@static-toggle-dpms.html
* igt@kms_joiner@invalid-modeset-force-ultra-joiner:
- shard-bmg: NOTRUN -> [SKIP][66] ([Intel XE#2934])
[66]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-2/igt@kms_joiner@invalid-modeset-force-ultra-joiner.html
* igt@kms_plane_cursor@primary@pipe-a-hdmi-a-6-size-256:
- shard-dg2-set2: NOTRUN -> [FAIL][67] ([Intel XE#616]) +5 other tests fail
[67]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-466/igt@kms_plane_cursor@primary@pipe-a-hdmi-a-6-size-256.html
* igt@kms_plane_multiple@2x-tiling-y:
- shard-bmg: NOTRUN -> [SKIP][68] ([Intel XE#5021])
[68]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-5/igt@kms_plane_multiple@2x-tiling-y.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25:
- shard-lnl: NOTRUN -> [SKIP][69] ([Intel XE#2763]) +3 other tests skip
[69]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-2/igt@kms_plane_scaling@planes-downscale-factor-0-5-upscale-factor-0-25.html
* igt@kms_pm_dc@dc6-psr:
- shard-bmg: NOTRUN -> [SKIP][70] ([Intel XE#2392])
[70]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-3/igt@kms_pm_dc@dc6-psr.html
* igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area:
- shard-lnl: NOTRUN -> [SKIP][71] ([Intel XE#1406] / [Intel XE#2893] / [Intel XE#4608])
[71]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-1/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area.html
* igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area@pipe-b-edp-1:
- shard-lnl: NOTRUN -> [SKIP][72] ([Intel XE#1406] / [Intel XE#4608]) +1 other test skip
[72]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-1/igt@kms_psr2_sf@fbc-psr2-overlay-primary-update-sf-dmg-area@pipe-b-edp-1.html
* igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf:
- shard-bmg: NOTRUN -> [SKIP][73] ([Intel XE#1406] / [Intel XE#1489]) +1 other test skip
[73]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-4/igt@kms_psr2_sf@pr-overlay-plane-move-continuous-sf.html
* igt@kms_psr2_sf@psr2-cursor-plane-update-sf:
- shard-dg2-set2: NOTRUN -> [SKIP][74] ([Intel XE#1406] / [Intel XE#1489])
[74]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-434/igt@kms_psr2_sf@psr2-cursor-plane-update-sf.html
* igt@kms_psr@pr-primary-blt:
- shard-bmg: NOTRUN -> [SKIP][75] ([Intel XE#1406] / [Intel XE#2234] / [Intel XE#2850])
[75]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-4/igt@kms_psr@pr-primary-blt.html
* igt@kms_psr@psr2-suspend:
- shard-dg2-set2: NOTRUN -> [SKIP][76] ([Intel XE#1406] / [Intel XE#2850] / [Intel XE#929]) +1 other test skip
[76]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-463/igt@kms_psr@psr2-suspend.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-lnl: [PASS][77] -> [SKIP][78] ([Intel XE#1406] / [Intel XE#4692])
[77]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-lnl-3/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
[78]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-8/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_tiled_display@basic-test-pattern:
- shard-lnl: NOTRUN -> [SKIP][79] ([Intel XE#362])
[79]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-7/igt@kms_tiled_display@basic-test-pattern.html
* igt@kms_vrr@flip-basic-fastset:
- shard-dg2-set2: NOTRUN -> [SKIP][80] ([Intel XE#455]) +4 other tests skip
[80]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-433/igt@kms_vrr@flip-basic-fastset.html
* igt@xe_compute_preempt@compute-threadgroup-preempt@engine-drm_xe_engine_class_compute:
- shard-dg2-set2: NOTRUN -> [SKIP][81] ([Intel XE#1280] / [Intel XE#455]) +1 other test skip
[81]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-435/igt@xe_compute_preempt@compute-threadgroup-preempt@engine-drm_xe_engine_class_compute.html
* igt@xe_eu_stall@unprivileged-access:
- shard-dg2-set2: NOTRUN -> [SKIP][82] ([Intel XE#5626])
[82]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-434/igt@xe_eu_stall@unprivileged-access.html
* igt@xe_eudebug_online@interrupt-other-debuggable:
- shard-dg2-set2: NOTRUN -> [SKIP][83] ([Intel XE#4837]) +4 other tests skip
[83]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-433/igt@xe_eudebug_online@interrupt-other-debuggable.html
* igt@xe_eudebug_online@preempt-breakpoint:
- shard-lnl: NOTRUN -> [SKIP][84] ([Intel XE#4837]) +3 other tests skip
[84]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-4/igt@xe_eudebug_online@preempt-breakpoint.html
* igt@xe_eudebug_online@stopped-thread:
- shard-bmg: NOTRUN -> [SKIP][85] ([Intel XE#4837]) +3 other tests skip
[85]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-1/igt@xe_eudebug_online@stopped-thread.html
* igt@xe_evict@evict-large-external-cm:
- shard-lnl: NOTRUN -> [SKIP][86] ([Intel XE#688]) +1 other test skip
[86]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-1/igt@xe_evict@evict-large-external-cm.html
* igt@xe_evict@evict-mixed-many-threads-small:
- shard-bmg: [PASS][87] -> [INCOMPLETE][88] ([Intel XE#6321])
[87]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-6/igt@xe_evict@evict-mixed-many-threads-small.html
[88]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-2/igt@xe_evict@evict-mixed-many-threads-small.html
* igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind:
- shard-bmg: NOTRUN -> [SKIP][89] ([Intel XE#2322])
[89]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-7/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind.html
- shard-lnl: NOTRUN -> [SKIP][90] ([Intel XE#1392])
[90]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-8/igt@xe_exec_basic@multigpu-no-exec-bindexecqueue-rebind.html
* igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate:
- shard-dg2-set2: NOTRUN -> [SKIP][91] ([Intel XE#288]) +5 other tests skip
[91]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-464/igt@xe_exec_fault_mode@many-bindexecqueue-userptr-invalidate.html
* igt@xe_exec_system_allocator@threads-many-stride-mmap-huge:
- shard-lnl: NOTRUN -> [SKIP][92] ([Intel XE#4943])
[92]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-3/igt@xe_exec_system_allocator@threads-many-stride-mmap-huge.html
* igt@xe_exec_system_allocator@threads-shared-vm-many-stride-mmap-remap-eocheck:
- shard-dg2-set2: NOTRUN -> [SKIP][93] ([Intel XE#4915]) +80 other tests skip
[93]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-434/igt@xe_exec_system_allocator@threads-shared-vm-many-stride-mmap-remap-eocheck.html
* igt@xe_exec_system_allocator@twice-mmap-new-huge-nomemset:
- shard-bmg: NOTRUN -> [SKIP][94] ([Intel XE#4943]) +1 other test skip
[94]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-1/igt@xe_exec_system_allocator@twice-mmap-new-huge-nomemset.html
* igt@xe_live_ktest@xe_migrate:
- shard-dg2-set2: [PASS][95] -> [FAIL][96] ([Intel XE#3099]) +6 other tests fail
[95]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-466/igt@xe_live_ktest@xe_migrate.html
[96]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-466/igt@xe_live_ktest@xe_migrate.html
* igt@xe_oa@mmio-triggered-reports-read:
- shard-dg2-set2: NOTRUN -> [SKIP][97] ([Intel XE#6032])
[97]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-435/igt@xe_oa@mmio-triggered-reports-read.html
* igt@xe_oa@syncs-syncobj-cfg:
- shard-dg2-set2: NOTRUN -> [SKIP][98] ([Intel XE#3573]) +1 other test skip
[98]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-463/igt@xe_oa@syncs-syncobj-cfg.html
* igt@xe_pm@s3-basic:
- shard-lnl: NOTRUN -> [SKIP][99] ([Intel XE#584])
[99]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-1/igt@xe_pm@s3-basic.html
* igt@xe_pm@s4-basic:
- shard-lnl: [PASS][100] -> [FAIL][101] ([Intel XE#6339]) +1 other test fail
[100]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-lnl-8/igt@xe_pm@s4-basic.html
[101]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-4/igt@xe_pm@s4-basic.html
* igt@xe_pm@s4-basic-exec:
- shard-bmg: [PASS][102] -> [FAIL][103] ([Intel XE#6339])
[102]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-8/igt@xe_pm@s4-basic-exec.html
[103]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-7/igt@xe_pm@s4-basic-exec.html
- shard-dg2-set2: [PASS][104] -> [FAIL][105] ([Intel XE#6339])
[104]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-466/igt@xe_pm@s4-basic-exec.html
[105]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-432/igt@xe_pm@s4-basic-exec.html
* igt@xe_pmu@fn-engine-activity-sched-if-idle:
- shard-dg2-set2: NOTRUN -> [SKIP][106] ([Intel XE#4650])
[106]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-464/igt@xe_pmu@fn-engine-activity-sched-if-idle.html
* igt@xe_pxp@display-pxp-fb:
- shard-dg2-set2: NOTRUN -> [SKIP][107] ([Intel XE#4733])
[107]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-434/igt@xe_pxp@display-pxp-fb.html
* igt@xe_query@multigpu-query-oa-units:
- shard-lnl: NOTRUN -> [SKIP][108] ([Intel XE#944])
[108]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-7/igt@xe_query@multigpu-query-oa-units.html
* igt@xe_query@multigpu-query-uc-fw-version-huc:
- shard-dg2-set2: NOTRUN -> [SKIP][109] ([Intel XE#944])
[109]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-436/igt@xe_query@multigpu-query-uc-fw-version-huc.html
#### Possible fixes ####
* igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1:
- shard-lnl: [FAIL][110] ([Intel XE#5993]) -> [PASS][111] +3 other tests pass
[110]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-lnl-4/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1.html
[111]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-8/igt@kms_async_flips@async-flip-with-page-flip-events-linear@pipe-c-edp-1.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-a-dp-4:
- shard-dg2-set2: [INCOMPLETE][112] ([Intel XE#1727] / [Intel XE#3113]) -> [PASS][113]
[112]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-a-dp-4.html
[113]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc@pipe-a-dp-4.html
* igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size:
- shard-bmg: [SKIP][114] ([Intel XE#2291]) -> [PASS][115] +1 other test pass
[114]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-6/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
[115]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-2/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@flip-vs-cursor-legacy:
- shard-bmg: [FAIL][116] ([Intel XE#4633]) -> [PASS][117]
[116]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-4/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
[117]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-3/igt@kms_cursor_legacy@flip-vs-cursor-legacy.html
* igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@cd-hdmi-a6-dp4:
- shard-dg2-set2: [FAIL][118] ([Intel XE#301]) -> [PASS][119] +1 other test pass
[118]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-466/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@cd-hdmi-a6-dp4.html
[119]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-436/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@cd-hdmi-a6-dp4.html
* igt@kms_flip@2x-plain-flip-fb-recreate:
- shard-bmg: [SKIP][120] ([Intel XE#2316]) -> [PASS][121] +2 other tests pass
[120]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-6/igt@kms_flip@2x-plain-flip-fb-recreate.html
[121]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-2/igt@kms_flip@2x-plain-flip-fb-recreate.html
* igt@kms_flip@flip-vs-expired-vblank@a-edp1:
- shard-lnl: [FAIL][122] ([Intel XE#301]) -> [PASS][123]
[122]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
[123]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-3/igt@kms_flip@flip-vs-expired-vblank@a-edp1.html
* igt@kms_hdr@invalid-hdr:
- shard-bmg: [SKIP][124] ([Intel XE#1503]) -> [PASS][125]
[124]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-1/igt@kms_hdr@invalid-hdr.html
[125]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_hdr@invalid-hdr.html
* igt@kms_plane_cursor@viewport:
- shard-dg2-set2: [FAIL][126] ([Intel XE#616]) -> [PASS][127] +1 other test pass
[126]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-436/igt@kms_plane_cursor@viewport.html
[127]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-464/igt@kms_plane_cursor@viewport.html
* igt@kms_plane_scaling@2x-scaler-multi-pipe:
- shard-bmg: [SKIP][128] ([Intel XE#2571]) -> [PASS][129]
[128]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-6/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
[129]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-8/igt@kms_plane_scaling@2x-scaler-multi-pipe.html
* igt@kms_pm_dc@dc5-dpms:
- shard-lnl: [FAIL][130] ([Intel XE#718]) -> [PASS][131]
[130]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-lnl-7/igt@kms_pm_dc@dc5-dpms.html
[131]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-7/igt@kms_pm_dc@dc5-dpms.html
* {igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma}:
- shard-lnl: [FAIL][132] ([Intel XE#5625]) -> [PASS][133]
[132]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-lnl-7/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html
[133]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-lnl-3/igt@xe_exec_system_allocator@pat-index-madvise-pat-idx-uc-single-vma.html
* igt@xe_module_load@load:
- shard-bmg: ([PASS][134], [PASS][135], [PASS][136], [PASS][137], [PASS][138], [PASS][139], [PASS][140], [PASS][141], [PASS][142], [PASS][143], [PASS][144], [PASS][145], [PASS][146], [PASS][147], [PASS][148], [PASS][149], [PASS][150], [PASS][151], [PASS][152], [SKIP][153], [PASS][154], [PASS][155], [PASS][156], [PASS][157], [PASS][158], [PASS][159]) ([Intel XE#2457]) -> ([PASS][160], [PASS][161], [PASS][162], [PASS][163], [PASS][164], [PASS][165], [PASS][166], [PASS][167], [PASS][168], [PASS][169], [PASS][170], [PASS][171], [PASS][172], [PASS][173], [PASS][174], [PASS][175], [PASS][176], [PASS][177], [PASS][178], [PASS][179], [PASS][180], [PASS][181], [PASS][182])
[134]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-7/igt@xe_module_load@load.html
[135]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-8/igt@xe_module_load@load.html
[136]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-6/igt@xe_module_load@load.html
[137]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-6/igt@xe_module_load@load.html
[138]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-6/igt@xe_module_load@load.html
[139]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-5/igt@xe_module_load@load.html
[140]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-5/igt@xe_module_load@load.html
[141]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-5/igt@xe_module_load@load.html
[142]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-8/igt@xe_module_load@load.html
[143]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-7/igt@xe_module_load@load.html
[144]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-7/igt@xe_module_load@load.html
[145]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-3/igt@xe_module_load@load.html
[146]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-3/igt@xe_module_load@load.html
[147]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-3/igt@xe_module_load@load.html
[148]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-8/igt@xe_module_load@load.html
[149]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-2/igt@xe_module_load@load.html
[150]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-2/igt@xe_module_load@load.html
[151]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-2/igt@xe_module_load@load.html
[152]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-1/igt@xe_module_load@load.html
[153]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-1/igt@xe_module_load@load.html
[154]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-4/igt@xe_module_load@load.html
[155]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-4/igt@xe_module_load@load.html
[156]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-1/igt@xe_module_load@load.html
[157]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-4/igt@xe_module_load@load.html
[158]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-1/igt@xe_module_load@load.html
[159]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-4/igt@xe_module_load@load.html
[160]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-2/igt@xe_module_load@load.html
[161]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-1/igt@xe_module_load@load.html
[162]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-8/igt@xe_module_load@load.html
[163]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-8/igt@xe_module_load@load.html
[164]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-1/igt@xe_module_load@load.html
[165]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-8/igt@xe_module_load@load.html
[166]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-2/igt@xe_module_load@load.html
[167]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@xe_module_load@load.html
[168]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@xe_module_load@load.html
[169]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-2/igt@xe_module_load@load.html
[170]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@xe_module_load@load.html
[171]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-7/igt@xe_module_load@load.html
[172]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-7/igt@xe_module_load@load.html
[173]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@xe_module_load@load.html
[174]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-3/igt@xe_module_load@load.html
[175]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-3/igt@xe_module_load@load.html
[176]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-4/igt@xe_module_load@load.html
[177]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-7/igt@xe_module_load@load.html
[178]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-4/igt@xe_module_load@load.html
[179]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-4/igt@xe_module_load@load.html
[180]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-4/igt@xe_module_load@load.html
[181]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-5/igt@xe_module_load@load.html
[182]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-5/igt@xe_module_load@load.html
#### Warnings ####
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs:
- shard-dg2-set2: [INCOMPLETE][183] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522]) -> [INCOMPLETE][184] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522])
[183]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-435/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
[184]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-466/igt@kms_ccs@random-ccs-data-4-tiled-dg2-mc-ccs.html
* igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc:
- shard-dg2-set2: [INCOMPLETE][185] ([Intel XE#1727] / [Intel XE#3113] / [Intel XE#4345]) -> [INCOMPLETE][186] ([Intel XE#1727] / [Intel XE#2705] / [Intel XE#3113] / [Intel XE#4212] / [Intel XE#4345] / [Intel XE#4522])
[185]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
[186]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-463/igt@kms_ccs@random-ccs-data-4-tiled-dg2-rc-ccs-cc.html
* igt@kms_content_protection@lic-type-0:
- shard-bmg: [FAIL][187] ([Intel XE#1178]) -> [SKIP][188] ([Intel XE#2341]) +1 other test skip
[187]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-1/igt@kms_content_protection@lic-type-0.html
[188]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_content_protection@lic-type-0.html
* igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][189] ([Intel XE#2311]) -> [SKIP][190] ([Intel XE#2312]) +24 other tests skip
[189]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-3/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
[190]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_frontbuffer_tracking@drrs-2p-scndscrn-pri-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render:
- shard-bmg: [SKIP][191] ([Intel XE#2312]) -> [SKIP][192] ([Intel XE#5390]) +1 other test skip
[191]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html
[192]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-8/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render:
- shard-bmg: [SKIP][193] ([Intel XE#5390]) -> [SKIP][194] ([Intel XE#2312]) +12 other tests skip
[193]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-7/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
[194]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-spr-indfb-draw-render.html
* igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc:
- shard-bmg: [SKIP][195] ([Intel XE#2312]) -> [SKIP][196] ([Intel XE#2311]) +6 other tests skip
[195]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
[196]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-7/igt@kms_frontbuffer_tracking@fbcdrrs-2p-scndscrn-cur-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt:
- shard-bmg: [SKIP][197] ([Intel XE#2313]) -> [SKIP][198] ([Intel XE#2312]) +23 other tests skip
[197]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
[198]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-cur-indfb-draw-blt.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt:
- shard-bmg: [SKIP][199] ([Intel XE#2312]) -> [SKIP][200] ([Intel XE#2313]) +6 other tests skip
[199]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-6/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt.html
[200]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-5/igt@kms_frontbuffer_tracking@psr-2p-primscrn-indfb-msflip-blt.html
* igt@kms_plane_multiple@2x-tiling-yf:
- shard-bmg: [SKIP][201] ([Intel XE#5021]) -> [SKIP][202] ([Intel XE#4596])
[201]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-4/igt@kms_plane_multiple@2x-tiling-yf.html
[202]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-6/igt@kms_plane_multiple@2x-tiling-yf.html
* igt@kms_tiled_display@basic-test-pattern-with-chamelium:
- shard-dg2-set2: [SKIP][203] ([Intel XE#362]) -> [SKIP][204] ([Intel XE#1500])
[203]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-463/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
[204]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-464/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html
* igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv:
- shard-bmg: [ABORT][205] ([Intel XE#5466] / [Intel XE#5530]) -> [ABORT][206] ([Intel XE#4917] / [Intel XE#5466] / [Intel XE#5530])
[205]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-bmg-7/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
[206]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-bmg-2/igt@xe_fault_injection@probe-fail-guc-xe_guc_ct_send_recv.html
* igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit:
- shard-dg2-set2: [SKIP][207] ([Intel XE#2229]) -> [FAIL][208] ([Intel XE#3099])
[207]: https://intel-gfx-ci.01.org/tree/intel-xe/IGT_8582/shard-dg2-466/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
[208]: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/shard-dg2-466/igt@xe_live_ktest@xe_migrate@xe_validate_ccs_kunit.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[Intel XE#1124]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1124
[Intel XE#1178]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1178
[Intel XE#1280]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1280
[Intel XE#1340]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1340
[Intel XE#1392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1392
[Intel XE#1401]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1401
[Intel XE#1406]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1406
[Intel XE#1421]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1421
[Intel XE#1424]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1424
[Intel XE#1470]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1470
[Intel XE#1489]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1489
[Intel XE#1500]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1500
[Intel XE#1503]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1503
[Intel XE#1727]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1727
[Intel XE#1745]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/1745
[Intel XE#2191]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2191
[Intel XE#2229]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2229
[Intel XE#2234]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2234
[Intel XE#2244]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2244
[Intel XE#2252]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2252
[Intel XE#2291]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2291
[Intel XE#2293]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2293
[Intel XE#2311]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2311
[Intel XE#2312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2312
[Intel XE#2313]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2313
[Intel XE#2314]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2314
[Intel XE#2316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2316
[Intel XE#2320]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2320
[Intel XE#2322]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2322
[Intel XE#2325]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2325
[Intel XE#2328]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2328
[Intel XE#2341]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2341
[Intel XE#2373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2373
[Intel XE#2380]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2380
[Intel XE#2392]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2392
[Intel XE#2457]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2457
[Intel XE#2571]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2571
[Intel XE#2669]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2669
[Intel XE#2705]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2705
[Intel XE#2763]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2763
[Intel XE#2850]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2850
[Intel XE#2853]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2853
[Intel XE#288]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/288
[Intel XE#2887]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2887
[Intel XE#2893]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2893
[Intel XE#2894]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2894
[Intel XE#2934]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/2934
[Intel XE#301]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/301
[Intel XE#306]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/306
[Intel XE#307]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/307
[Intel XE#309]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/309
[Intel XE#3099]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3099
[Intel XE#3113]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3113
[Intel XE#316]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/316
[Intel XE#3432]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3432
[Intel XE#3573]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3573
[Intel XE#362]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/362
[Intel XE#373]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/373
[Intel XE#3862]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/3862
[Intel XE#4212]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4212
[Intel XE#4302]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4302
[Intel XE#4345]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4345
[Intel XE#4522]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4522
[Intel XE#455]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/455
[Intel XE#4596]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4596
[Intel XE#4608]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4608
[Intel XE#4633]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4633
[Intel XE#4650]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4650
[Intel XE#4665]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4665
[Intel XE#4692]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4692
[Intel XE#4733]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4733
[Intel XE#4837]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4837
[Intel XE#4915]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4915
[Intel XE#4917]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4917
[Intel XE#4937]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4937
[Intel XE#4943]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/4943
[Intel XE#5021]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5021
[Intel XE#5300]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5300
[Intel XE#5390]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5390
[Intel XE#5425]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5425
[Intel XE#5466]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5466
[Intel XE#5530]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5530
[Intel XE#5625]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5625
[Intel XE#5626]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5626
[Intel XE#5786]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5786
[Intel XE#584]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/584
[Intel XE#5993]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/5993
[Intel XE#6014]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6014
[Intel XE#6032]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6032
[Intel XE#616]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/616
[Intel XE#6168]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6168
[Intel XE#6281]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6281
[Intel XE#6312]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6312
[Intel XE#6318]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6318
[Intel XE#6321]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6321
[Intel XE#6339]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/6339
[Intel XE#651]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/651
[Intel XE#653]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/653
[Intel XE#656]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/656
[Intel XE#688]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/688
[Intel XE#701]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/701
[Intel XE#718]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/718
[Intel XE#787]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/787
[Intel XE#929]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/929
[Intel XE#944]: https://gitlab.freedesktop.org/drm/xe/kernel/issues/944
Build changes
-------------
* IGT: IGT_8582 -> IGTPW_13894
* Linux: xe-3900-06342be0412e879eaede7e6932e651f8cb630203 -> xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada
IGTPW_13894: 13894
IGT_8582: 8582
xe-3900-06342be0412e879eaede7e6932e651f8cb630203: 06342be0412e879eaede7e6932e651f8cb630203
xe-3911-c917f7d11493984be9f381ca0a7667bd3e587ada: c917f7d11493984be9f381ca0a7667bd3e587ada
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/intel-xe/IGTPW_13894/index.html
[-- Attachment #2: Type: text/html, Size: 65393 bytes --]
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH i-g-t v2 06/18] tests/intel/xe_oa: Add for_each_oa_unit
2025-10-13 20:30 ` [PATCH i-g-t v2 06/18] tests/intel/xe_oa: Add for_each_oa_unit Ashutosh Dixit
@ 2025-10-14 20:40 ` Umesh Nerlige Ramappa
2025-10-14 21:59 ` Dixit, Ashutosh
0 siblings, 1 reply; 24+ messages in thread
From: Umesh Nerlige Ramappa @ 2025-10-14 20:40 UTC (permalink / raw)
To: Ashutosh Dixit; +Cc: igt-dev
On Mon, Oct 13, 2025 at 01:30:29PM -0700, Ashutosh Dixit wrote:
>Add a for_each_oa_unit iterator, which eliminates code duplication when
>iterating over OA units obtained from OA unit query.
>
>v2: Only retain oau argument for for_each_oa_unit() (Umesh)
>
>Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
LGTM,
Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Thanks,
Umesh
>---
> tests/intel/xe_oa.c | 35 +++++++++++++++++++++++------------
> 1 file changed, 23 insertions(+), 12 deletions(-)
>
>diff --git a/tests/intel/xe_oa.c b/tests/intel/xe_oa.c
>index a4aeaf2c70..8e73182700 100644
>--- a/tests/intel/xe_oa.c
>+++ b/tests/intel/xe_oa.c
>@@ -477,18 +477,34 @@ static struct drm_xe_engine_class_instance *oa_unit_engine(struct drm_xe_oa_unit
> return !oau ? NULL : oau->num_engines ? &oau->eci[random() % oau->num_engines] : NULL;
> }
>
>+static int __first_and_num_oa_units(struct drm_xe_oa_unit **oau)
>+{
>+ struct drm_xe_query_oa_units *qoa = xe_oa_units(drm_fd);
>+
>+ *oau = (struct drm_xe_oa_unit *)&qoa->oa_units[0];
>+
>+ return qoa->num_oa_units;
>+}
>+
>+static struct drm_xe_oa_unit *__next_oa_unit(struct drm_xe_oa_unit *oau)
>+{
>+ u8 *poau = (u8 *)oau;
>+
>+ return (struct drm_xe_oa_unit *)(poau + sizeof(*oau) +
>+ oau->num_engines * sizeof(oau->eci[0]));
>+}
>+
>+#define for_each_oa_unit(oau) \
>+ for (int _i = 0, _num_oa_units = __first_and_num_oa_units(&oau); \
>+ _i < _num_oa_units; oau = __next_oa_unit(oau), _i++)
>+
> static struct drm_xe_oa_unit *oa_unit_by_id(int fd, int id)
> {
>- struct drm_xe_query_oa_units *qoa = xe_oa_units(fd);
> struct drm_xe_oa_unit *oau;
>- u8 *poau;
>
>- poau = (u8 *)&qoa->oa_units[0];
>- for (int i = 0; i < qoa->num_oa_units; i++) {
>- oau = (struct drm_xe_oa_unit *)poau;
>+ for_each_oa_unit(oau) {
> if (oau->oa_unit_id == id)
> return oau;
>- poau += sizeof(*oau) + oau->num_engines * sizeof(oau->eci[0]);
> }
>
> return NULL;
>@@ -496,16 +512,11 @@ static struct drm_xe_oa_unit *oa_unit_by_id(int fd, int id)
>
> static struct drm_xe_oa_unit *oa_unit_by_type(int fd, int t)
> {
>- struct drm_xe_query_oa_units *qoa = xe_oa_units(fd);
> struct drm_xe_oa_unit *oau;
>- u8 *poau;
>
>- poau = (u8 *)&qoa->oa_units[0];
>- for (int i = 0; i < qoa->num_oa_units; i++) {
>- oau = (struct drm_xe_oa_unit *)poau;
>+ for_each_oa_unit(oau) {
> if (oau->oa_unit_type == t)
> return oau;
>- poau += sizeof(*oau) + oau->num_engines * sizeof(oau->eci[0]);
> }
>
> return NULL;
>--
>2.48.1
>
^ permalink raw reply [flat|nested] 24+ messages in thread
* Re: [PATCH i-g-t v2 06/18] tests/intel/xe_oa: Add for_each_oa_unit
2025-10-14 20:40 ` Umesh Nerlige Ramappa
@ 2025-10-14 21:59 ` Dixit, Ashutosh
0 siblings, 0 replies; 24+ messages in thread
From: Dixit, Ashutosh @ 2025-10-14 21:59 UTC (permalink / raw)
To: Umesh Nerlige Ramappa; +Cc: igt-dev
On Tue, 14 Oct 2025 13:40:30 -0700, Umesh Nerlige Ramappa wrote:
>
> On Mon, Oct 13, 2025 at 01:30:29PM -0700, Ashutosh Dixit wrote:
> > Add a for_each_oa_unit iterator, which eliminates code duplication when
> > iterating over OA units obtained from OA unit query.
> >
> > v2: Only retain oau argument for for_each_oa_unit() (Umesh)
> >
> > Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
>
> LGTM,
>
> Reviewed-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
Thanks for the review Umesh, this series is now merged!
-Ashutosh
^ permalink raw reply [flat|nested] 24+ messages in thread
end of thread, other threads:[~2025-10-14 21:59 UTC | newest]
Thread overview: 24+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-13 20:30 [PATCH i-g-t v2 00/18] Change OA IGT's to run on all OA units Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 01/18] tests/intel/xe_oa: Add OAM formats to lnl_oa_formats Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 02/18] tests/intel/xe_oa: Get rid of unnecessary DRM_XE_OA_PROPERTY_OA_ENGINE_INSTANCE Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t v2 03/18] tests/intel/xe_oa: Rename nth_oa_unit to oa_unit_by_id Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 04/18] tests/intel/xe_oa: Change oa_unit_engine to take an oa_unit argument Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 05/18] tests/intel/xe_oa: Add oa_unit_by_type Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t v2 06/18] tests/intel/xe_oa: Add for_each_oa_unit Ashutosh Dixit
2025-10-14 20:40 ` Umesh Nerlige Ramappa
2025-10-14 21:59 ` Dixit, Ashutosh
2025-10-13 20:30 ` [PATCH i-g-t 07/18] tests/intel/xe_oa: Convert test_oa_formats to take an OA unit argument Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 08/18] tests/intel/xe_oa: Convert several more tests to take OA unit arguments Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 09/18] tests/intel/xe_oa: Convert test_non_zero_reason to take an OA unit argument Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 10/18] tests/intel/xe_oa: Convert blocking/polling tests to take OA unit arguments Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 11/18] tests/intel/xe_oa: Convert test_mi_rpc to take an OA unit argument Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 12/18] tests/intel/xe_oa: Convert test_single_ctx_render_target_writes_a_counter Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 13/18] tests/intel/xe_oa: Convert OA buffer mmap tests to take OA unit arguments Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 14/18] tests/intel/xe_oa: Convert MMIO trigger " Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 15/18] tests/intel/xe_oa: Convert sync " Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 16/18] tests/intel/xe_oa: Run test_oa_unit_exclusive_stream on multiple OA units Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 17/18] tests/intel/xe_oa: Add new non-zero-reason-all test Ashutosh Dixit
2025-10-13 20:30 ` [PATCH i-g-t 18/18] tests/intel/xe_oa: Constify arguments to various functions Ashutosh Dixit
2025-10-13 23:54 ` ✓ Xe.CI.BAT: success for Change OA IGT's to run on all OA units (rev2) Patchwork
2025-10-14 0:13 ` ✗ i915.CI.BAT: failure " Patchwork
2025-10-14 7:32 ` ✗ Xe.CI.Full: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox