Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
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


  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