From: "Michał Grzelak" <michal.grzelak@linux.intel.com>
To: igt-dev@lists.freedesktop.org
Cc: karthik.b.s@intel.com, swati2.sharma@intel.com,
juhapekka.heikkila@gmail.com, michal.grzelak@intel.com,
"Michał Grzelak" <michal.grzelak@linux.intel.com>
Subject: [PATCH i-g-t v6 6/7] tests/intel/kms_ccs: limit #crtcs tested during suspend
Date: Thu, 24 Sep 2026 09:50:18 +0200 [thread overview]
Message-ID: <20260924075019.4151374-7-michal.grzelak@linux.intel.com> (raw)
In-Reply-To: <20260924075019.4151374-1-michal.grzelak@linux.intel.com>
Limit execution of suspend tests to first and last active CRTC unless
using `extended` flag. This reduces default execution time of the test.
In turn this can lower chances of hitting CI timeout.
Currently first and last CRTC coincide with first and last pipe. In
future this is likely to change due to pipe reordering. It should not
affect the test overall since the aim is to pick two arbitrary CRTCs.
When `first' and `last' is set outside of dynamic subtest scope, it
results in build failure caused by Meson receiving SIGSEGV:
FAILED: tests/kms_ccs.testlist
/usr/bin/meson --internal exe --capture tests/kms_ccs.testlist -- [..]/tests/kms_ccs --show-testlist
--- stderr ---
Received signal SIGSEGV.
ninja: build stopped: subcommand failed.
Thus set them inside dynamic subtest's scope.
v5->v6
- describe how pipe reordering affects the test (Jani)
v3->v4
- set `first' and `last' indices outside of crtc loop (Mohammed)
Signed-off-by: Michał Grzelak <michal.grzelak@linux.intel.com>
---
tests/intel/kms_ccs.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/tests/intel/kms_ccs.c b/tests/intel/kms_ccs.c
index 8526f1ccfd..5bc5215eb7 100644
--- a/tests/intel/kms_ccs.c
+++ b/tests/intel/kms_ccs.c
@@ -191,6 +191,7 @@ typedef struct {
int fb_list_length;
bool do_hibernate;
bool all_outputs;
+ bool all_crtcs;
struct {
struct igt_fb fb;
int width, height;
@@ -1132,6 +1133,8 @@ static void test_output(data_t *data, const int testnum)
igt_crtc_t *crtc;
uint16_t dev_id;
int output_count = 0;
+ uint32_t first;
+ uint32_t last;
igt_fixture()
dev_id = intel_get_drm_devid(data->drm_fd);
@@ -1147,6 +1150,9 @@ static void test_output(data_t *data, const int testnum)
igt_describe(tests[testnum].description);
igt_subtest_with_dynamic_f("%s-%s", tests[testnum].testname, ccs_modifiers[i].str) {
+ first = data->display.crtcs[0].crtc_index;
+ last = data->display.crtcs[data->display.n_crtcs - 1].crtc_index;
+
if (ccs_modifiers[i].modifier == I915_FORMAT_MOD_4_TILED_BMG_CCS ||
ccs_modifiers[i].modifier == I915_FORMAT_MOD_4_TILED_LNL_CCS) {
igt_require_f(intel_gen(dev_id) >= 20,
@@ -1176,6 +1182,10 @@ static void test_output(data_t *data, const int testnum)
if (!intel_pipe_output_combo_valid(&data->display))
continue;
+ if (!data->all_crtcs && (data->flags & TEST_SUSPEND) &&
+ crtc->crtc_index != first && crtc->crtc_index != last)
+ continue;
+
igt_dynamic_f("pipe-%s-%s", igt_crtc_name(crtc), data->output->name) {
int valid_tests = 0;
@@ -1232,6 +1242,9 @@ static int opt_handler(int opt, int opt_index, void *opt_data)
case 'n':
data->all_outputs = true;
break;
+ case 'e':
+ data->all_crtcs = true;
+ break;
default:
return IGT_OPT_HANDLER_ERROR;
}
@@ -1246,9 +1259,10 @@ static const char *help_str =
" -s <seed>\tSeed for random number generator\n"
" -r\t\tOn suspend test do full hibernate with reboot\n"
" -n\t\tRun on all connectors. (By default suspend subtests will run on 3 connectors)\n"
+" -e\t\tRun on all CRTCs. (By default subtests will run on two CRTCs)\n"
;
-int igt_main_args("csrn:", NULL, help_str, opt_handler, &data)
+int igt_main_args("csrne:", NULL, help_str, opt_handler, &data)
{
igt_fixture() {
data.drm_fd = drm_open_driver_master(DRIVER_INTEL | DRIVER_XE);
--
2.45.2
next prev parent reply other threads:[~2026-09-24 7:55 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-24 7:50 [PATCH i-g-t v6 0/7] tests: limiting suspend tests Michał Grzelak
2026-09-24 7:50 ` [PATCH i-g-t v6 1/7] tests/kms_async_flips: split outer test loop into two Michał Grzelak
2026-09-24 7:50 ` [PATCH i-g-t v6 2/7] tests/kms_async_flips: limit #crtcs tested during suspend Michał Grzelak
2026-09-24 7:50 ` [PATCH i-g-t v6 3/7] tests/kms_vblank: limit #outputs " Michał Grzelak
2026-09-24 7:50 ` [PATCH i-g-t v6 4/7] tests/intel/kms_ccs: split outer test loop into two Michał Grzelak
2026-09-24 7:50 ` [PATCH i-g-t v6 5/7] tests/intel/kms_ccs: limit #outputs tested during suspend Michał Grzelak
2026-09-24 7:50 ` Michał Grzelak [this message]
2026-09-29 9:16 ` [PATCH i-g-t v6 6/7] tests/intel/kms_ccs: limit #crtcs " Juha-Pekka Heikkilä
2026-09-24 7:50 ` [PATCH i-g-t v6 7/7] tests/kms_hdr: run on 3 outputs when testing suspend Michał Grzelak
2026-09-24 9:14 ` ✓ i915.CI.BAT: success for tests: limiting suspend tests (rev5) Patchwork
2026-09-24 9:48 ` ✓ Xe.CI.BAT: " Patchwork
2026-09-24 23:05 ` ✗ Xe.CI.FULL: failure " Patchwork
2026-09-25 7:34 ` ✓ i915.CI.Full: success " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260924075019.4151374-7-michal.grzelak@linux.intel.com \
--to=michal.grzelak@linux.intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=juhapekka.heikkila@gmail.com \
--cc=karthik.b.s@intel.com \
--cc=michal.grzelak@intel.com \
--cc=swati2.sharma@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox