All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series
@ 2019-06-21 15:42 Anshuman Gupta
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 1/6] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta
                   ` (16 more replies)
  0 siblings, 17 replies; 27+ messages in thread
From: Anshuman Gupta @ 2019-06-21 15:42 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

This patch series adds new tests to validate Display C states.
DC states like DC5 and DC6 are validated during PSR entry/exit and during DPMS on/off cycle.

This is an update after adding a new patch to series which skip the
DC6 igt test in case PC8+ residencies are limited by BIOS.

Below CI Platform are failing to reach PC8 state.

fi-icl-u2
fi-cfl-8109u
fi-kbl-7567u
fi-kbl-8809g
fi-skl-6600u

These above platforms has been added to known issue list and there is FDO also
created for PC8 issue.
https://bugs.freedesktop.org/show_bug.cgi?id=110548
After analyzing the PMC debugfs logs, possible root cause of PC8 failures
would be PCIe external devices connected to PCIe ports are not power gated.

Example : on fi-icl-u2 Southport C (SPC) is turned on.
PCH IP: 4 - SPA State: Off
PCH IP: 5 - SPB State: Off
PCH IP: 6 - SPC State: On

In PC8 success case we have found that all south port IP are power gated.

Below is the summary of major changes since first revision.

1. Changed the name of test from "pm_dc" to "i915_pm_dc" aligned to other PM tests.
2. Changed the DC5/6 counter check timeout from 1 sec to 3 sec,
   as in case of PSR on some platfrom like KBL it requires more than 2 second to
   disable 'DC off' power well after vblank event.
3. Changed the test name from tests/pm_dc to tests tests/i915/i915_pm_dc in
   name of individual patch.
4. Addressed the review comment by saving POWER_DIR values in igt_disable_runtime_pm().
5. CI fixures for dc5-dpms failure.
   Checking DC5 counter value after DPMS off, broke the dpms_on_off
   function to dpms_on and dpms_off.
6. Used igt_pm_enable_sata_link_power_management() function in order to use
   min_power policy for SATA.
7. igt_pm_enable_sata_link_power_management() function to restore the
   original SATA link power policy using an exit handler.
8. IGT crashes fixture in i915_pm_rpm.c.

Anshuman Gupta (1):
  tests/i915/i915_pm_dc:Skip the DC6 test if it doesn't support PC8+

Jyoti Yadav (5):
  lib/igt_pm: igt lib helper routines to support DC5/6 tests
  tests/i915/i915_pm_dc: Added new test to verify Display C States
  tests/i915/i915_pm_dc: Added test for DC6 during PSR
  tests/i915/i915_pm_dc: Added test for DC5 during DPMS
  tests/i915/i915_pm_dc: Added test for DC6 during DPMS

 lib/igt_pm.c                   | 190 ++++++++++++++----
 lib/igt_pm.h                   |   6 +-
 tests/Makefile.sources         |   3 +
 tests/i915/i915_pm_backlight.c |   6 +-
 tests/i915/i915_pm_dc.c        | 341 +++++++++++++++++++++++++++++++++
 tests/i915/i915_pm_rpm.c       |  24 +--
 tests/meson.build              |   1 +
 7 files changed, 504 insertions(+), 67 deletions(-)
 create mode 100644 tests/i915/i915_pm_dc.c

-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v12 1/6] lib/igt_pm: igt lib helper routines to support DC5/6 tests
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
@ 2019-06-21 15:42 ` Anshuman Gupta
  2019-08-14 17:39   ` Anshuman Gupta
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 2/6] tests/i915/i915_pm_dc: Added new test to verify Display C States Anshuman Gupta
                   ` (15 subsequent siblings)
  16 siblings, 1 reply; 27+ messages in thread
From: Anshuman Gupta @ 2019-06-21 15:42 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

This patch does the following chnegs to lib/igt_pm.c

-dmc_loaded() will be used by new test i915_pm_dc.c which will validate
 Display C States. So moving the same to igt_pm library.

-Introduced igt_disable_runtime_pm() in order to disable runtime suspend
 for the function which support dc9.

-Changed the igt_pm_enable_sata_link_power_management() and
 igt_pm_restore_sata_link_power_management() in order to save
 and restore the sata link power policy by an exit handler.

v2: Simplify the comment section.
v3: Remove . from the subject line.
v4: Rebased, resolve conflicts in pm_rpm.c
    Included patch set version change log.
v5: Listing actual change in patch set changelog to make review easier.
v6: igt's lib added support for disabling runtime suspend,
    change in commit log. rebased due to test name pm_rpm changed
    to i915_pm_rpm.
v7: Addressed review comment by saving POWER_DIR values in
    igt_disable_runtime_pm(). [Imre]
v8: Addressed the review comment, igt_pm_enable_sata_link_power_management
    function to restore the original SATA link power policy if things fail
    by using an exit handler. [Imre]
v9: IGT failure fixture in i915_pm_backlight and i915_pm_rpm.

Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 lib/igt_pm.c                   | 190 ++++++++++++++++++++++++++-------
 lib/igt_pm.h                   |   6 +-
 tests/i915/i915_pm_backlight.c |   6 +-
 tests/i915/i915_pm_rpm.c       |  24 +----
 4 files changed, 159 insertions(+), 67 deletions(-)

diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index fd22273a..9b83fbb5 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -38,6 +38,7 @@
 #include "drmtest.h"
 #include "igt_pm.h"
 #include "igt_aux.h"
+#include "igt_sysfs.h"
 
 /**
  * SECTION:igt_pm
@@ -63,11 +64,15 @@ enum {
 #define MIN_POWER_STR		"min_power\n"
 /* Remember to fix this if adding longer strings */
 #define MAX_POLICY_STRLEN	strlen(MAX_PERFORMANCE_STR)
+int8_t *__sata_link_pm_policies;
 
 static char __igt_pm_audio_runtime_power_save[64];
 static char * __igt_pm_audio_runtime_control_path;
 static char __igt_pm_audio_runtime_control[64];
 
+static void __igt_pm_sata_link_pm_exit_handler(int sig);
+static void __igt_pm_restore_sata_link_power_management(void);
+
 static int __igt_pm_audio_restore_runtime_pm(void)
 {
 	int fd;
@@ -280,28 +285,12 @@ void igt_pm_enable_audio_runtime_pm(void)
 		igt_debug("Failed to enable audio runtime PM! (%d)\n", -err);
 }
 
-/**
- * igt_pm_enable_sata_link_power_management:
- *
- * Enable the min_power policy for SATA link power management.
- * Without this we cannot reach deep runtime power states.
- *
- * We don't have any assertions on open since the system might not have
- * a SATA host.
- *
- * Returns:
- * An opaque pointer to the data needed to restore the default values
- * after the test has terminated, or NULL if SATA link power management
- * is not supported. This pointer should be freed when no longer used
- * (typically after having called restore_sata_link_power_management()).
- */
-int8_t *igt_pm_enable_sata_link_power_management(void)
+static void __igt_pm_enable_sata_link_power_management(void)
 {
 	int fd, i;
 	ssize_t len;
 	char *buf;
 	char *file_name;
-	int8_t *link_pm_policies = NULL;
 
 	file_name = malloc(PATH_MAX);
 	buf = malloc(MAX_POLICY_STRLEN + 1);
@@ -313,6 +302,9 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
 			 "/sys/class/scsi_host/host%d/link_power_management_policy",
 			 i);
 
+		/* We don't have any assertions on open since the system
+		 * might not have a SATA host.
+		 */
 		fd = open(file_name, O_RDWR);
 		if (fd < 0)
 			break;
@@ -333,11 +325,13 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
 			policy = POLICY_UNKNOWN;
 
 		if (!(i % 256))
-			link_pm_policies = realloc(link_pm_policies,
-						   (i / 256 + 1) * 256 + 1);
+			__sata_link_pm_policies =
+			realloc(__sata_link_pm_policies,
+				(i / 256 + 1) * 256 + 1);
 
-		link_pm_policies[i] = policy;
-		link_pm_policies[i + 1] = 0;
+		__sata_link_pm_policies[i] = policy;
+		__sata_link_pm_policies[i + 1] = 0;
+		igt_install_exit_handler(__igt_pm_sata_link_pm_exit_handler);
 
 		/* If the policy is something we don't know about,
 		 * don't touch it, since we might potentially break things.
@@ -355,39 +349,27 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
 	}
 	free(buf);
 	free(file_name);
-
-	return link_pm_policies;
 }
 
-/**
- * igt_pm_restore_sata_link_power_management:
- * @pm_data: An opaque pointer with saved link PM policies;
- *           If NULL is passed we force enable the "max_performance" policy.
- *
- * Restore the link power management policies to the values
- * prior to enabling min_power.
- *
- * Caveat: If the system supports hotplugging and hotplugging takes
- *         place during our testing so that the hosts change numbers
- *         we might restore the settings to the wrong hosts.
- */
-void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
-
+static void __igt_pm_restore_sata_link_power_management(void)
 {
 	int fd, i;
 	char *file_name;
 
+	if (!__sata_link_pm_policies)
+		return;
+
 	/* Disk runtime PM policies. */
 	file_name = malloc(PATH_MAX);
 	for (i = 0; ; i++) {
 		int8_t policy;
 
-		if (!pm_data)
+		if (!__sata_link_pm_policies)
 			policy = POLICY_MAX_PERFORMANCE;
-		else if (pm_data[i] == POLICY_UNKNOWN)
+		else if (__sata_link_pm_policies[i] == POLICY_UNKNOWN)
 			continue;
 		else
-			policy = pm_data[i];
+			policy = __sata_link_pm_policies[i];
 
 		snprintf(file_name, PATH_MAX,
 			 "/sys/class/scsi_host/host%d/link_power_management_policy",
@@ -421,7 +403,53 @@ void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
 		close(fd);
 	}
 	free(file_name);
+	free(__sata_link_pm_policies);
+	__sata_link_pm_policies = NULL;
+}
+
+/**
+ * igt_pm_enable_sata_link_power_management:
+ *
+ * Enable the min_power policy for SATA link power management.
+ * Without this we cannot reach deep runtime power states.
+ * Returns: Void
+ */
+void igt_pm_enable_sata_link_power_management(void)
+{
+	int err;
+
+	/* Check if has been already saved. */
+	if (__sata_link_pm_policies)
+		return;
+
+	 __igt_pm_enable_sata_link_power_management();
+}
+
+/**
+ * igt_pm_restore_sata_link_power_management:
+ *
+ * Restore the link power management policies to the values
+ * prior to enabling min_power.
+ *
+ * Caveat: If the system supports hotplugging and hotplugging takes
+ *         place during our testing so that the hosts change numbers
+ *         we might restore the settings to the wrong hosts.
+ */
+void igt_pm_restore_sata_link_power_management(void)
+{
+	int err;
+
+	if (!__sata_link_pm_policies)
+		return;
+
+	 __igt_pm_restore_sata_link_power_management();
 }
+
+static void __igt_pm_sata_link_pm_exit_handler(int sig)
+{
+	__igt_pm_restore_sata_link_power_management();
+}
+
 #define POWER_DIR "/sys/devices/pci0000:00/0000:00:02.0/power"
 /* We just leak this on exit ... */
 int pm_status_fd = -1;
@@ -585,6 +613,61 @@ bool igt_setup_runtime_pm(void)
 	return true;
 }
 
+bool igt_disable_runtime_pm(void)
+{
+	int fd;
+	ssize_t size;
+	char buf[6];
+
+	if (pm_status_fd < 0) {
+		fd = open(POWER_DIR "/autosuspend_delay_ms", O_RDWR);
+		if (fd < 0)
+			return false;
+
+		size = read(fd, __igt_pm_runtime_autosuspend,
+			    sizeof(__igt_pm_runtime_autosuspend));
+
+		if (size <= 0) {
+			close(fd);
+			return false;
+		}
+
+		strchomp(__igt_pm_runtime_autosuspend);
+		igt_install_exit_handler(__igt_pm_runtime_exit_handler);
+		close(fd);
+	}
+
+	/* We know we support runtime PM, let's try to disable it now. */
+	fd = open(POWER_DIR "/control", O_RDWR);
+	igt_assert_f(fd >= 0, "Can't open " POWER_DIR "/control\n");
+
+	if (pm_status_fd < 0) {
+		igt_assert(read(fd, __igt_pm_runtime_control,
+				sizeof(__igt_pm_runtime_control)) > 0);
+		strchomp(__igt_pm_runtime_control);
+
+		igt_debug("Saved runtime power management as '%s' and '%s'\n",
+			  __igt_pm_runtime_autosuspend,
+			  __igt_pm_runtime_control);
+	}
+
+	size = write(fd, "on\n", 3);
+	igt_assert(size == 3);
+	lseek(fd, 0, SEEK_SET);
+	size = read(fd, buf, ARRAY_SIZE(buf));
+	igt_assert(size == 3);
+	igt_assert(strncmp(buf, "on\n", 3) == 0);
+	close(fd);
+
+	if (pm_status_fd < 0) {
+		pm_status_fd = open(POWER_DIR "/runtime_status", O_RDONLY);
+		igt_assert_f(pm_status_fd >= 0,
+			     "Can't open " POWER_DIR "/runtime_status\n");
+	}
+
+	return true;
+}
+
 /**
  * igt_get_runtime_pm_status:
  *
@@ -628,3 +711,30 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
 {
 	return igt_wait(igt_get_runtime_pm_status() == status, 10000, 100);
 }
+
+/**
+ * dmc_loaded:
+ * @debugfs: fd to the debugfs dir.
+
+ * Check whether DMC FW is loaded or not. DMC FW is require for few Display C
+ * states like DC5 and DC6. FW does the Context Save and Restore during Display
+ * C States entry and exit.
+ *
+ * Returns:
+ * True if DMC FW is loaded otherwise false.
+ */
+bool igt_pm_dmc_loaded(int debugfs)
+{
+	igt_require(debugfs != -1);
+	char buf[15];
+	int len;
+
+	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
+	if (len < 0)
+		return true; /* no CSR support, no DMC requirement */
+
+	buf[len] = '\0';
+
+	igt_info("DMC: %s\n", buf);
+	return strstr(buf, "fw loaded: yes");
+}
diff --git a/lib/igt_pm.h b/lib/igt_pm.h
index 10cc6794..979b3463 100644
--- a/lib/igt_pm.h
+++ b/lib/igt_pm.h
@@ -25,8 +25,8 @@
 #define IGT_PM_H
 
 void igt_pm_enable_audio_runtime_pm(void);
-int8_t *igt_pm_enable_sata_link_power_management(void);
-void igt_pm_restore_sata_link_power_management(int8_t *pm_data);
+void igt_pm_enable_sata_link_power_management(void);
+void igt_pm_restore_sata_link_power_management(void);
 
 /**
  * igt_runtime_pm_status:
@@ -47,8 +47,10 @@ enum igt_runtime_pm_status {
 };
 
 bool igt_setup_runtime_pm(void);
+bool igt_disable_runtime_pm(void);
 void igt_restore_runtime_pm(void);
 enum igt_runtime_pm_status igt_get_runtime_pm_status(void);
 bool igt_wait_for_pm_status(enum igt_runtime_pm_status status);
+bool igt_pm_dmc_loaded(int debugfs);
 
 #endif /* IGT_PM_H */
diff --git a/tests/i915/i915_pm_backlight.c b/tests/i915/i915_pm_backlight.c
index 4c1bff5b..9a5f4c37 100644
--- a/tests/i915/i915_pm_backlight.c
+++ b/tests/i915/i915_pm_backlight.c
@@ -47,7 +47,6 @@ struct context {
 #define FADESPEED 100 /* milliseconds between steps */
 
 IGT_TEST_DESCRIPTION("Basic backlight sysfs test");
-static int8_t *pm_data = NULL;
 
 static int backlight_read(int *result, const char *fname)
 {
@@ -235,7 +234,7 @@ igt_main
 		igt_plane_set_fb(primary, &fb);
 
 		igt_display_commit2(&display, display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
-		pm_data = igt_pm_enable_sata_link_power_management();
+		igt_pm_enable_sata_link_power_management();
 	}
 
 	igt_subtest("basic-brightness")
@@ -255,8 +254,7 @@ igt_main
 
 		igt_display_fini(&display);
 		igt_remove_fb(display.drm_fd, &fb);
-		igt_pm_restore_sata_link_power_management(pm_data);
-		free(pm_data);
+		igt_pm_restore_sata_link_power_management();
 		close(display.drm_fd);
 	}
 }
diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
index a2c9d0ed..2d2f77be 100644
--- a/tests/i915/i915_pm_rpm.c
+++ b/tests/i915/i915_pm_rpm.c
@@ -122,8 +122,6 @@ struct modeset_params lpsp_mode_params;
 struct modeset_params non_lpsp_mode_params;
 struct modeset_params *default_mode_params;
 
-static int8_t *pm_data = NULL;
-
 static int modprobe(const char *driver)
 {
 	return igt_kmod_load(driver, NULL);
@@ -710,21 +708,6 @@ static void setup_pc8(void)
 	has_pc8 = true;
 }
 
-static bool dmc_loaded(void)
-{
-	char buf[15];
-	int len;
-
-	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
-	if (len < 0)
-	    return true; /* no CSR support, no DMC requirement */
-
-	buf[len] = '\0';
-
-	igt_info("DMC: %s\n", buf);
-	return strstr(buf, "fw loaded: yes");
-}
-
 static void dump_file(int dir, const char *filename)
 {
 	char *contents;
@@ -751,7 +734,7 @@ static bool setup_environment(void)
 
 	init_mode_set_data(&ms_data);
 
-	pm_data = igt_pm_enable_sata_link_power_management();
+	igt_pm_enable_sata_link_power_management();
 
 	has_runtime_pm = igt_setup_runtime_pm();
 	setup_pc8();
@@ -759,7 +742,7 @@ static bool setup_environment(void)
 	igt_info("Runtime PM support: %d\n", has_runtime_pm);
 	igt_info("PC8 residency support: %d\n", has_pc8);
 	igt_require(has_runtime_pm);
-	igt_require(dmc_loaded());
+	igt_require(igt_pm_dmc_loaded(debugfs));
 
 out:
 	disable_all_screens(&ms_data);
@@ -776,8 +759,7 @@ static void teardown_environment(void)
 
 	igt_restore_runtime_pm();
 
-	igt_pm_restore_sata_link_power_management(pm_data);
-	free(pm_data);
+	igt_pm_restore_sata_link_power_management();
 
 	fini_mode_set_data(&ms_data);
 
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v12 2/6] tests/i915/i915_pm_dc: Added new test to verify Display C States
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 1/6] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta
@ 2019-06-21 15:42 ` Anshuman Gupta
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 3/6] tests/i915/i915_pm_dc: Added test for DC6 during PSR Anshuman Gupta
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Anshuman Gupta @ 2019-06-21 15:42 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

Currently this test validates DC5 upon PSR entry for supported platforms.
Added new file for compilation inside Makefile and Meson.

v2: Used the debugfs entry for DC counters instead of Registers.
    Used shorter names for variables.
    Introduced timeout to read DC counters.
v3: one second timeout is introduced to read DC counters.
    Skip the subtest if counters are not available for that platform.
v4: Rebased, to fix compilation error in psr_enable(), psr_wait_entry()
    and replaced igt_display_init() by igt_display_require() in pm_rpm.c.
    Addressed the review comment by removing unused function display_init,
    removing redundant igt commit suggested by Imre.
    Fixed typo in read_dc_counter().
v5: Addressed the review comment by removing redundant read_dc_counter(),
    clubbed cleanup() function in test_dc_state_psr() suggested by Imre.
    Rearranged  preprocessor directives at one place.
    Fixed compilation warning by adding function prototype for
    dc_state_wait_entry() and check_dc_counter().
    Listing actual change in patch set changelog to make review easier.
v6: Fixed "i915_edp_psr_status" string to "Sink support: yes".
v7: Rebased since test name changed from "pm_dc" to "i915_pm_dc",
    this will align with other PM tests.
    also changed the DC5/6 counter check timeout to 3 second.
v8: On few platform SATA i/p is blocking deeper package C states.
    used igt_pm_enable_sata_link_power_management() function in order
    to use min_power policy.
v9: Removed redundant igt_pm_remove_sata_link_power_management()
    as sata link policy vlaues will be restored by exit handler.

Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 tests/Makefile.sources  |   3 +
 tests/i915/i915_pm_dc.c | 211 ++++++++++++++++++++++++++++++++++++++++
 tests/meson.build       |   1 +
 3 files changed, 215 insertions(+)
 create mode 100644 tests/i915/i915_pm_dc.c

diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index 214698da..21feb732 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -489,6 +489,9 @@ i915_pm_rc6_residency_SOURCES = i915/i915_pm_rc6_residency.c
 TESTS_progs += i915_pm_rpm
 i915_pm_rpm_SOURCES = i915/i915_pm_rpm.c
 
+TESTS_progs += i915_pm_dc
+i915_pm_dc_SOURCES = i915/i915_pm_dc.c
+
 TESTS_progs += i915_pm_rps
 i915_pm_rps_SOURCES = i915/i915_pm_rps.c
 
diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
new file mode 100644
index 00000000..94890e2a
--- /dev/null
+++ b/tests/i915/i915_pm_dc.c
@@ -0,0 +1,211 @@
+/*
+ * Copyright © 2018 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ *
+ */
+
+#include "igt.h"
+#include "igt_sysfs.h"
+#include "igt_psr.h"
+#include <errno.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+#include "intel_bufmgr.h"
+#include "intel_io.h"
+#include "limits.h"
+
+/* DC State Flags */
+#define CHECK_DC5	1
+#define CHECK_DC6	2
+
+typedef struct {
+	int drm_fd;
+	int debugfs_fd;
+	uint32_t devid;
+	igt_display_t display;
+	struct igt_fb fb_white;
+	enum psr_mode op_psr_mode;
+	drmModeModeInfo *mode;
+	igt_output_t *output;
+} data_t;
+
+bool dc_state_wait_entry(int drm_fd, int dc_flag, int prev_dc_count);
+void check_dc_counter(int drm_fd, int dc_flag, uint32_t prev_dc_count);
+
+static void setup_output(data_t *data)
+{
+	igt_display_t *display = &data->display;
+	igt_output_t *output;
+	enum pipe pipe;
+
+	for_each_pipe_with_valid_output(display, pipe, output) {
+		drmModeConnectorPtr c = output->config.connector;
+
+		if (c->connector_type != DRM_MODE_CONNECTOR_eDP)
+			continue;
+
+		igt_output_set_pipe(output, pipe);
+		data->output = output;
+		data->mode = igt_output_get_mode(output);
+
+		return;
+	}
+}
+
+static void display_fini(data_t *data)
+{
+	igt_display_fini(&data->display);
+}
+
+static bool edp_psr_sink_support(data_t *data)
+{
+	char buf[512];
+
+	igt_debugfs_simple_read(data->debugfs_fd, "i915_edp_psr_status",
+				buf, sizeof(buf));
+
+	return strstr(buf, "Sink support: yes");
+}
+
+static void cleanup(data_t *data)
+{
+	igt_plane_t *primary;
+
+	primary = igt_output_get_plane_type(data->output,
+					    DRM_PLANE_TYPE_PRIMARY);
+	igt_plane_set_fb(primary, NULL);
+	igt_display_commit(&data->display);
+	igt_remove_fb(data->drm_fd, &data->fb_white);
+}
+
+static void setup_primary(data_t *data)
+{
+	igt_plane_t *primary;
+
+	primary = igt_output_get_plane_type(data->output,
+					    DRM_PLANE_TYPE_PRIMARY);
+	igt_plane_set_fb(primary, NULL);
+	igt_create_color_fb(data->drm_fd,
+			    data->mode->hdisplay, data->mode->vdisplay,
+			    DRM_FORMAT_XRGB8888,
+			    LOCAL_I915_FORMAT_MOD_X_TILED,
+			    1.0, 1.0, 1.0,
+			    &data->fb_white);
+	igt_plane_set_fb(primary, &data->fb_white);
+	igt_display_commit(&data->display);
+}
+
+static uint32_t get_dc_counter(char *dc_data)
+{
+	char *e;
+	long ret;
+	char *s = strchr(dc_data, ':');
+
+	assert(s);
+	s++;
+	ret = strtol(s, &e, 10);
+	assert(((ret != LONG_MIN && ret != LONG_MAX) || errno != ERANGE) &&
+	       e > s && *e == '\n' && ret >= 0);
+	return ret;
+}
+
+static uint32_t read_dc_counter(uint32_t drm_fd, int dc_flag)
+{
+	char buf[4096];
+	char *str;
+
+	igt_debugfs_read(drm_fd, "i915_dmc_info", buf);
+
+	if (dc_flag & CHECK_DC5)
+		str = strstr(buf, "DC3 -> DC5 count");
+	else if (dc_flag & CHECK_DC6)
+		str = strstr(buf, "DC5 -> DC6 count");
+
+	/* Check DC5/DC6 counter is available for the platform.
+	 * Skip the test if counter is not available.
+	 */
+	igt_skip_on_f(!str, "DC%d counter is not available\n",
+		      dc_flag & CHECK_DC5 ? 5 : 6);
+	return get_dc_counter(str);
+}
+
+bool dc_state_wait_entry(int drm_fd, int dc_flag, int prev_dc_count)
+{
+	return igt_wait(read_dc_counter(drm_fd, dc_flag) >
+			prev_dc_count, 3000, 100);
+}
+
+void check_dc_counter(int drm_fd, int dc_flag, uint32_t prev_dc_count)
+{
+	igt_assert_f(dc_state_wait_entry(drm_fd, dc_flag, prev_dc_count),
+		     "DC%d state is not achieved\n",
+		     dc_flag & CHECK_DC5 ? 5 : 6);
+}
+
+static void test_dc_state_psr(data_t *data, int dc_flag)
+{
+	uint32_t dc_counter_before_psr;
+
+	dc_counter_before_psr = read_dc_counter(data->drm_fd, dc_flag);
+	setup_output(data);
+	setup_primary(data);
+	igt_assert(psr_wait_entry(data->debugfs_fd, data->op_psr_mode));
+	check_dc_counter(data->drm_fd, dc_flag, dc_counter_before_psr);
+	cleanup(data);
+}
+
+int main(int argc, char *argv[])
+{
+	bool has_runtime_pm;
+	data_t data = {};
+
+	igt_skip_on_simulation();
+	igt_subtest_init(argc, argv);
+	igt_fixture {
+		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
+		data.debugfs_fd = igt_debugfs_dir(data.drm_fd);
+		igt_require(data.debugfs_fd != -1);
+		kmstest_set_vt_graphics_mode();
+		data.devid = intel_get_drm_devid(data.drm_fd);
+		igt_pm_enable_sata_link_power_management();
+		has_runtime_pm = igt_setup_runtime_pm();
+		igt_info("Runtime PM support: %d\n", has_runtime_pm);
+		igt_require(has_runtime_pm);
+		igt_require(igt_pm_dmc_loaded(data.debugfs_fd));
+		igt_display_require(&data.display, data.drm_fd);
+	}
+
+	igt_subtest("dc5-psr") {
+		data.op_psr_mode = PSR_MODE_1;
+		psr_enable(data.debugfs_fd, data.op_psr_mode);
+		igt_require_f(edp_psr_sink_support(&data),
+			      "Sink does not support PSR\n");
+		test_dc_state_psr(&data, CHECK_DC5);
+	}
+
+	igt_fixture {
+		close(data.debugfs_fd);
+		display_fini(&data);
+	}
+
+	igt_exit();
+}
diff --git a/tests/meson.build b/tests/meson.build
index 5167a6cc..f307cfb2 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -220,6 +220,7 @@ i915_progs = [
 	'i915_pm_lpsp',
 	'i915_pm_rc6_residency',
 	'i915_pm_rpm',
+	'i915_pm_dc',
 	'i915_pm_rps',
 	'i915_pm_sseu',
 	'i915_query',
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v12 3/6] tests/i915/i915_pm_dc: Added test for DC6 during PSR
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 1/6] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 2/6] tests/i915/i915_pm_dc: Added new test to verify Display C States Anshuman Gupta
@ 2019-06-21 15:42 ` Anshuman Gupta
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 4/6] tests/i915/i915_pm_dc: Added test for DC5 during DPMS Anshuman Gupta
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Anshuman Gupta @ 2019-06-21 15:42 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

This patch add subtest to check DC6 entry on PSR for the supported
platforms.

v2: Rename the subtest with more meaningful name.
v3: Rebased.
v4: Rebased, to fix compilation error in psr_enable().
    Addressed review comment by fixing typo in comment description
    of DC6 PSR subtest.
v5: Addressed the review comment by removing redundant read_dc_counter(),
    clubbed cleanup() function in test_dc_state_psr() suggested by Imre.
    Listing actual change in patch set changelog to make review easier.
v6: Rebased due to test name pm_dc changed to i915_pm_dc, aligning to
    other PM tests.

Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 tests/i915/i915_pm_dc.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index 94890e2a..f261ecbf 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -202,6 +202,14 @@ int main(int argc, char *argv[])
 		test_dc_state_psr(&data, CHECK_DC5);
 	}
 
+	igt_subtest("dc6-psr") {
+		data.op_psr_mode = PSR_MODE_1;
+		psr_enable(data.debugfs_fd, data.op_psr_mode);
+		igt_require_f(edp_psr_sink_support(&data),
+			      "Sink does not support PSR\n");
+		test_dc_state_psr(&data, CHECK_DC6);
+	}
+
 	igt_fixture {
 		close(data.debugfs_fd);
 		display_fini(&data);
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v12 4/6] tests/i915/i915_pm_dc: Added test for DC5 during DPMS
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (2 preceding siblings ...)
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 3/6] tests/i915/i915_pm_dc: Added test for DC6 during PSR Anshuman Gupta
@ 2019-06-21 15:42 ` Anshuman Gupta
  2019-08-14 17:46   ` Anshuman Gupta
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 5/6] tests/i915/i915_pm_dc: Added test for DC6 " Anshuman Gupta
                   ` (12 subsequent siblings)
  16 siblings, 1 reply; 27+ messages in thread
From: Anshuman Gupta @ 2019-06-21 15:42 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

Added new subtest for DC5 entry during DPMS on/off cycle.
During DPMS on/off cycle DC5 counter is incremented.

v2: Rename the subtest with meaningful name.
v3: Rebased.
v4: Addressed review comments by removing leftover code
    cleanup().
v5: Addressed the review comment by removing redundant
    read_dc_counter() suggested by Imre.
    Listing actual change in patch set changelog to make review easier.
v6: Three way patch applied, no functional change.
v7: Disabling runtime suspend for the platform which support, DC9.
    rebased due to test name pm_dc changed to i915_pm_dc, aligning to
    other PM tests.
v8: Introduced setup_dc_dpms() in order to disable runtime pm, restoring
    POWER_DIR values to its original and enabling runtime pm  for other
    followed sub-tests.
v9: Check DC5 counter value after DPMS off, broke the dpms_on_off
    function to dpms_on and dpms_off. [Imre]

Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 tests/i915/i915_pm_dc.c | 62 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index f261ecbf..0f78b6b4 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -46,6 +46,7 @@ typedef struct {
 	enum psr_mode op_psr_mode;
 	drmModeModeInfo *mode;
 	igt_output_t *output;
+	bool runtime_suspend_disabled;
 } data_t;
 
 bool dc_state_wait_entry(int drm_fd, int dc_flag, int prev_dc_count);
@@ -173,6 +174,62 @@ static void test_dc_state_psr(data_t *data, int dc_flag)
 	cleanup(data);
 }
 
+static void setup_dc_dpms(data_t *data)
+{
+	if (IS_BROXTON(data->devid) || IS_GEMINILAKE(data->devid) ||
+		IS_ICELAKE(data->devid)) {
+		data->runtime_suspend_disabled = igt_disable_runtime_pm();
+		igt_require_f(data->runtime_suspend_disabled,
+			      "unable to disable runtime pm for i915\n");
+	} else {
+		data->runtime_suspend_disabled = false;
+	}
+}
+
+static void dpms_off(data_t *data)
+{
+	for (int i = 0; i < data->display.n_outputs; i++) {
+		kmstest_set_connector_dpms(data->drm_fd,
+					   data->display.outputs[i].config.connector,
+					   DRM_MODE_DPMS_OFF);
+	}
+
+	if (!data->runtime_suspend_disabled)
+		igt_assert(igt_wait_for_pm_status
+			   (IGT_RUNTIME_PM_STATUS_SUSPENDED));
+}
+
+static void dpms_on(data_t *data)
+{
+	for (int i = 0; i < data->display.n_outputs; i++) {
+		kmstest_set_connector_dpms(data->drm_fd,
+					   data->display.outputs[i].config.connector,
+					   DRM_MODE_DPMS_ON);
+	}
+
+	if (!data->runtime_suspend_disabled)
+		igt_assert(igt_wait_for_pm_status
+			   (IGT_RUNTIME_PM_STATUS_ACTIVE));
+}
+
+static void test_dc_state_dpms(data_t *data, int dc_flag)
+{
+	uint32_t dc_counter;
+
+	dc_counter = read_dc_counter(data->drm_fd, dc_flag);
+	dpms_off(data);
+	check_dc_counter(data->drm_fd, dc_flag, dc_counter);
+	dpms_on(data);
+
+	/* if runtime PM is disabled for i915 restore it,
+	 * so any other sub-test can use runtime-PM.
+	 */
+	if (data->runtime_suspend_disabled) {
+		igt_restore_runtime_pm();
+		igt_setup_runtime_pm();
+	}
+}
+
 int main(int argc, char *argv[])
 {
 	bool has_runtime_pm;
@@ -210,6 +267,11 @@ int main(int argc, char *argv[])
 		test_dc_state_psr(&data, CHECK_DC6);
 	}
 
+	igt_subtest("dc5-dpms") {
+		setup_dc_dpms(&data);
+		test_dc_state_dpms(&data, CHECK_DC5);
+	}
+
 	igt_fixture {
 		close(data.debugfs_fd);
 		display_fini(&data);
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v12 5/6] tests/i915/i915_pm_dc: Added test for DC6 during DPMS
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (3 preceding siblings ...)
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 4/6] tests/i915/i915_pm_dc: Added test for DC5 during DPMS Anshuman Gupta
@ 2019-06-21 15:42 ` Anshuman Gupta
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 6/6] tests/i915/i915_pm_dc:Skip the DC6 test if it doesn't support PC8+ Anshuman Gupta
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Anshuman Gupta @ 2019-06-21 15:42 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

Added new subtest for DC6 entry during DPMS on/off cycle.
During DPMS on/off cycle DC6 counter is incremented.

v2: Renamed the subtest name.
v3: Rebased.
v4: Addressed review comment by replacing igt_display_init() to
    igt_display_require(), changes got done in patch set 2.
v5: Addressed the review comment by removing redundant read_dc_counter()
    suggested by Imre.
    Listing actual change in patch set changelog to make review easier.
v6: Rebased due to test name pm_dc changed to i915_pm_dc, aligning to
    other PM tests.
v7: Introduced setup_dc_dpms() inorder to disable i915 runtime PM for
    the platform supports DC9.

Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 tests/i915/i915_pm_dc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index 0f78b6b4..ba891d85 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -272,6 +272,11 @@ int main(int argc, char *argv[])
 		test_dc_state_dpms(&data, CHECK_DC5);
 	}
 
+	igt_subtest("dc6-dpms") {
+		setup_dc_dpms(&data);
+		test_dc_state_dpms(&data, CHECK_DC6);
+	}
+
 	igt_fixture {
 		close(data.debugfs_fd);
 		display_fini(&data);
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v12 6/6] tests/i915/i915_pm_dc:Skip the DC6 test if it doesn't support PC8+
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (4 preceding siblings ...)
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 5/6] tests/i915/i915_pm_dc: Added test for DC6 " Anshuman Gupta
@ 2019-06-21 15:42 ` Anshuman Gupta
  2019-06-21 18:36 ` [igt-dev] ✗ Fi.CI.BAT: failure for DC states igt tests patch series (rev12) Patchwork
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Anshuman Gupta @ 2019-06-21 15:42 UTC (permalink / raw)
  To: igt-dev; +Cc: jyoti.r.yadav

This patch validates if platform has limited Package C state
residencies from BIOS, if that true skip the DC6 IGT test.
As DC6 required platform to enter PC8 state.

Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 tests/i915/i915_pm_dc.c | 55 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index ba891d85..e6e396f6 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -26,19 +26,35 @@
 #include "igt_sysfs.h"
 #include "igt_psr.h"
 #include <errno.h>
+#include <fcntl.h>
 #include <stdbool.h>
 #include <stdio.h>
 #include <string.h>
 #include "intel_bufmgr.h"
 #include "intel_io.h"
 #include "limits.h"
+#include "igt_kmod.h"
 
 /* DC State Flags */
 #define CHECK_DC5	1
 #define CHECK_DC6	2
 
+#define MSR_PKG_CST_CONFIG_CONTROL	0xE2
+/*
+ * Below PKG CST limit mask and PC8 bits are meant for
+ * HSW,BDW SKL,ICL and Goldmont Microarch and future platforms.
+ * Refer IA S/W developers manual vol3c part3 chapter:35
+ */
+#define  PKG_CST_LIMIT_MASK		0xF
+#define  PKG_CST_LIMIT_C8		0x6
+
+#define MSR_PC8_RES	0x630
+#define MSR_PC9_RES	0x631
+#define MSR_PC10_RES	0x632
+
 typedef struct {
 	int drm_fd;
+	int msr_fd;
 	int debugfs_fd;
 	uint32_t devid;
 	igt_display_t display;
@@ -52,6 +68,34 @@ typedef struct {
 bool dc_state_wait_entry(int drm_fd, int dc_flag, int prev_dc_count);
 void check_dc_counter(int drm_fd, int dc_flag, uint32_t prev_dc_count);
 
+/* If the read fails, then the machine doesn't support PC8+ residencies. */
+static bool supports_pc8_plus_residencies(data_t *data)
+{
+	int rc;
+	uint64_t val;
+	int msr_fd = data->msr_fd;
+
+	rc = pread(msr_fd, &val, sizeof(uint64_t), MSR_PC8_RES);
+	if (rc != sizeof(val))
+		return false;
+	rc = pread(msr_fd, &val, sizeof(uint64_t), MSR_PC9_RES);
+	if (rc != sizeof(val))
+		return false;
+	rc = pread(msr_fd, &val, sizeof(uint64_t), MSR_PC10_RES);
+	if (rc != sizeof(val))
+		return false;
+
+	rc = pread(msr_fd, &val, sizeof(uint64_t), MSR_PKG_CST_CONFIG_CONTROL);
+	if (rc != sizeof(val))
+		return false;
+	if ((val & PKG_CST_LIMIT_MASK) < PKG_CST_LIMIT_C8) {
+		igt_info("PKG C-states limited below PC8 by the BIOS\n");
+		return false;
+	}
+
+	return true;
+}
+
 static void setup_output(data_t *data)
 {
 	igt_display_t *display = &data->display;
@@ -249,6 +293,12 @@ int main(int argc, char *argv[])
 		igt_require(has_runtime_pm);
 		igt_require(igt_pm_dmc_loaded(data.debugfs_fd));
 		igt_display_require(&data.display, data.drm_fd);
+		/* Make sure our Kernel supports MSR and the module is loaded */
+		igt_require(igt_kmod_load("msr", NULL) == 0);
+
+		data.msr_fd = open("/dev/cpu/0/msr", O_RDONLY);
+		igt_assert_f(data.msr_fd >= 0,
+			     "Can't open /dev/cpu/0/msr.\n");
 	}
 
 	igt_subtest("dc5-psr") {
@@ -264,6 +314,8 @@ int main(int argc, char *argv[])
 		psr_enable(data.debugfs_fd, data.op_psr_mode);
 		igt_require_f(edp_psr_sink_support(&data),
 			      "Sink does not support PSR\n");
+		igt_require_f(supports_pc8_plus_residencies(&data),
+			      "PC8+ residencies not supported\n");
 		test_dc_state_psr(&data, CHECK_DC6);
 	}
 
@@ -273,12 +325,15 @@ int main(int argc, char *argv[])
 	}
 
 	igt_subtest("dc6-dpms") {
+		igt_require_f(supports_pc8_plus_residencies(&data),
+			      "PC8+ residencies not supported\n");
 		setup_dc_dpms(&data);
 		test_dc_state_dpms(&data, CHECK_DC6);
 	}
 
 	igt_fixture {
 		close(data.debugfs_fd);
+		close(data.msr_fd);
 		display_fini(&data);
 	}
 
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.BAT: failure for DC states igt tests patch series (rev12)
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (5 preceding siblings ...)
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 6/6] tests/i915/i915_pm_dc:Skip the DC6 test if it doesn't support PC8+ Anshuman Gupta
@ 2019-06-21 18:36 ` Patchwork
  2019-06-22  7:42 ` [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev13) Patchwork
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-06-21 18:36 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series (rev12)
URL   : https://patchwork.freedesktop.org/series/56713/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6325 -> IGTPW_3187
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_3187 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_3187, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56713/revisions/12/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@i915_pm_rpm@module-reload:
    - fi-skl-6600u:       [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6325/fi-skl-6600u/igt@i915_pm_rpm@module-reload.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3187/fi-skl-6600u/igt@i915_pm_rpm@module-reload.html

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

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

### IGT changes ###

#### Possible fixes ####

  * igt@gem_ctx_create@basic-files:
    - fi-icl-dsi:         [INCOMPLETE][3] ([fdo#107713] / [fdo#109100]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6325/fi-icl-dsi/igt@gem_ctx_create@basic-files.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3187/fi-icl-dsi/igt@gem_ctx_create@basic-files.html

  * igt@gem_ctx_switch@basic-default:
    - fi-icl-guc:         [INCOMPLETE][5] ([fdo#107713] / [fdo#108569]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6325/fi-icl-guc/igt@gem_ctx_switch@basic-default.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3187/fi-icl-guc/igt@gem_ctx_switch@basic-default.html

  * igt@gem_mmap_gtt@basic-write:
    - fi-icl-u3:          [DMESG-WARN][7] ([fdo#107724]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6325/fi-icl-u3/igt@gem_mmap_gtt@basic-write.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3187/fi-icl-u3/igt@gem_mmap_gtt@basic-write.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u2:          [FAIL][9] ([fdo#103167]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6325/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3187/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html

  
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109100]: https://bugs.freedesktop.org/show_bug.cgi?id=109100


Participating hosts (52 -> 43)
------------------------------

  Additional (1): fi-hsw-peppy 
  Missing    (10): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-apl-guc fi-pnv-d510 fi-icl-y fi-byt-clapper fi-bdw-samus 


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

  * IGT: IGT_5064 -> IGTPW_3187

  CI_DRM_6325: 1f09d2f5907d4b62b462042a35d8f10121c7df45 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3187: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3187/
  IGT_5064: 22850c1906550fb97b405c019275dcfb34be8cf7 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@i915_pm_dc@dc5-dpms
+igt@i915_pm_dc@dc5-psr
+igt@i915_pm_dc@dc6-dpms
+igt@i915_pm_dc@dc6-psr

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3187/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev13)
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (6 preceding siblings ...)
  2019-06-21 18:36 ` [igt-dev] ✗ Fi.CI.BAT: failure for DC states igt tests patch series (rev12) Patchwork
@ 2019-06-22  7:42 ` Patchwork
  2019-06-22 10:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-06-22  7:42 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series (rev13)
URL   : https://patchwork.freedesktop.org/series/56713/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6329 -> IGTPW_3189
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56713/revisions/13/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_ctx_switch@basic-default:
    - fi-icl-u2:          [PASS][1] -> [INCOMPLETE][2] ([fdo#107713] / [fdo#108569])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/fi-icl-u2/igt@gem_ctx_switch@basic-default.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/fi-icl-u2/igt@gem_ctx_switch@basic-default.html

  * igt@i915_selftest@live_blt:
    - fi-skl-iommu:       [PASS][3] -> [INCOMPLETE][4] ([fdo#108602])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/fi-skl-iommu/igt@i915_selftest@live_blt.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/fi-skl-iommu/igt@i915_selftest@live_blt.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [PASS][5] -> [FAIL][6] ([fdo#109485])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@basic-small-bo-tiledy:
    - fi-ilk-650:         [FAIL][7] ([fdo#108803]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/fi-ilk-650/igt@gem_mmap_gtt@basic-small-bo-tiledy.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/fi-ilk-650/igt@gem_mmap_gtt@basic-small-bo-tiledy.html

  * igt@gem_pread@basic:
    - fi-icl-dsi:         [DMESG-WARN][9] ([fdo#106107]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/fi-icl-dsi/igt@gem_pread@basic.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/fi-icl-dsi/igt@gem_pread@basic.html

  * igt@i915_selftest@live_sanitycheck:
    - fi-icl-u3:          [DMESG-WARN][11] ([fdo#107724]) -> [PASS][12]
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/fi-icl-u3/igt@i915_selftest@live_sanitycheck.html
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/fi-icl-u3/igt@i915_selftest@live_sanitycheck.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-dsi:         [FAIL][13] ([fdo#103167]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/fi-icl-dsi/igt@kms_frontbuffer_tracking@basic.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/fi-icl-dsi/igt@kms_frontbuffer_tracking@basic.html

  
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#108602]: https://bugs.freedesktop.org/show_bug.cgi?id=108602
  [fdo#108803]: https://bugs.freedesktop.org/show_bug.cgi?id=108803
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485


Participating hosts (51 -> 43)
------------------------------

  Missing    (8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus 


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

  * IGT: IGT_5064 -> IGTPW_3189

  CI_DRM_6329: 7ff7b7a9d09acaa647921780fa5ed3525ab8f278 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3189: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/
  IGT_5064: 22850c1906550fb97b405c019275dcfb34be8cf7 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@i915_pm_dc@dc5-dpms
+igt@i915_pm_dc@dc5-psr
+igt@i915_pm_dc@dc6-dpms
+igt@i915_pm_dc@dc6-psr

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.IGT: failure for DC states igt tests patch series (rev13)
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (7 preceding siblings ...)
  2019-06-22  7:42 ` [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev13) Patchwork
@ 2019-06-22 10:52 ` Patchwork
  2019-06-22 15:19 ` [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev14) Patchwork
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-06-22 10:52 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series (rev13)
URL   : https://patchwork.freedesktop.org/series/56713/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_6329_full -> IGTPW_3189_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_3189_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_3189_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56713/revisions/13/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * igt@gem_eio@reset-stress:
    - shard-apl:          [PASS][1] -> [FAIL][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-apl3/igt@gem_eio@reset-stress.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-apl4/igt@gem_eio@reset-stress.html

  * {igt@i915_pm_dc@dc6-dpms} (NEW):
    - shard-kbl:          NOTRUN -> [FAIL][3]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-kbl1/igt@i915_pm_dc@dc6-dpms.html

  
New tests
---------

  New tests have been introduced between CI_DRM_6329_full and IGTPW_3189_full:

### New IGT tests (4) ###

  * igt@i915_pm_dc@dc5-dpms:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 2.21] s

  * igt@i915_pm_dc@dc5-psr:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 3.38] s

  * igt@i915_pm_dc@dc6-dpms:
    - Statuses : 1 fail(s) 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 3.48] s

  * igt@i915_pm_dc@dc6-psr:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 3.38] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@throttle:
    - shard-kbl:          [PASS][4] -> [DMESG-WARN][5] ([fdo#110913 ]) +5 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-kbl7/igt@gem_eio@throttle.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-kbl3/igt@gem_eio@throttle.html

  * igt@gem_exec_reloc@basic-gtt-read-active:
    - shard-apl:          [PASS][6] -> [DMESG-WARN][7] ([fdo#110913 ]) +6 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-apl2/igt@gem_exec_reloc@basic-gtt-read-active.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-apl2/igt@gem_exec_reloc@basic-gtt-read-active.html

  * igt@gem_persistent_relocs@forked-interruptible-thrashing:
    - shard-snb:          [PASS][8] -> [DMESG-WARN][9] ([fdo#110789] / [fdo#110913 ]) +3 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-snb2/igt@gem_persistent_relocs@forked-interruptible-thrashing.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-snb1/igt@gem_persistent_relocs@forked-interruptible-thrashing.html

  * igt@i915_pm_rpm@modeset-lpsp:
    - shard-iclb:         [PASS][10] -> [INCOMPLETE][11] ([fdo#107713] / [fdo#108840])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb7/igt@i915_pm_rpm@modeset-lpsp.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-iclb2/igt@i915_pm_rpm@modeset-lpsp.html

  * igt@kms_cursor_crc@pipe-c-cursor-256x256-random:
    - shard-kbl:          [PASS][12] -> [FAIL][13] ([fdo#103232])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-kbl4/igt@kms_cursor_crc@pipe-c-cursor-256x256-random.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-kbl4/igt@kms_cursor_crc@pipe-c-cursor-256x256-random.html
    - shard-apl:          [PASS][14] -> [FAIL][15] ([fdo#103232])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-apl7/igt@kms_cursor_crc@pipe-c-cursor-256x256-random.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-apl2/igt@kms_cursor_crc@pipe-c-cursor-256x256-random.html

  * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset:
    - shard-hsw:          [PASS][16] -> [SKIP][17] ([fdo#109271]) +30 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-hsw6/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-hsw1/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-apl:          [PASS][18] -> [DMESG-WARN][19] ([fdo#108566]) +2 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-apl5/igt@kms_flip@flip-vs-suspend-interruptible.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-apl7/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt:
    - shard-iclb:         [PASS][20] -> [FAIL][21] ([fdo#103167]) +7 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-indfb-draw-mmap-gtt.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [PASS][22] -> [SKIP][23] ([fdo#109441])
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-iclb6/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_setmode@basic:
    - shard-hsw:          [PASS][24] -> [FAIL][25] ([fdo#99912])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-hsw1/igt@kms_setmode@basic.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-hsw8/igt@kms_setmode@basic.html

  
#### Possible fixes ####

  * igt@gem_eio@wait-10ms:
    - shard-apl:          [DMESG-WARN][26] ([fdo#110913 ]) -> [PASS][27] +5 similar issues
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-apl5/igt@gem_eio@wait-10ms.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-apl4/igt@gem_eio@wait-10ms.html

  * igt@gem_exec_reuse@baggage:
    - shard-hsw:          [INCOMPLETE][28] ([fdo#103540]) -> [PASS][29]
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-hsw7/igt@gem_exec_reuse@baggage.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-hsw5/igt@gem_exec_reuse@baggage.html

  * igt@gem_partial_pwrite_pread@reads-snoop:
    - shard-kbl:          [DMESG-WARN][30] ([fdo#110913 ]) -> [PASS][31] +5 similar issues
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-kbl7/igt@gem_partial_pwrite_pread@reads-snoop.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-kbl7/igt@gem_partial_pwrite_pread@reads-snoop.html

  * igt@gem_partial_pwrite_pread@write-uncached:
    - shard-snb:          [DMESG-WARN][32] ([fdo#110789] / [fdo#110913 ]) -> [PASS][33] +3 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-snb7/igt@gem_partial_pwrite_pread@write-uncached.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-snb7/igt@gem_partial_pwrite_pread@write-uncached.html

  * igt@i915_pm_rpm@i2c:
    - shard-hsw:          [FAIL][34] ([fdo#104097]) -> [PASS][35]
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-hsw1/igt@i915_pm_rpm@i2c.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-hsw8/igt@i915_pm_rpm@i2c.html

  * igt@i915_suspend@debugfs-reader:
    - shard-apl:          [DMESG-WARN][36] ([fdo#108566]) -> [PASS][37] +2 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-apl7/igt@i915_suspend@debugfs-reader.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-apl5/igt@i915_suspend@debugfs-reader.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-hsw:          [SKIP][38] ([fdo#109271]) -> [PASS][39] +16 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-hsw1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-hsw2/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [SKIP][40] ([fdo#109349]) -> [PASS][41]
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb7/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-glk:          [FAIL][42] ([fdo#105363]) -> [PASS][43]
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-glk9/igt@kms_flip@flip-vs-expired-vblank.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-glk3/igt@kms_flip@flip-vs-expired-vblank.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-onoff:
    - shard-glk:          [FAIL][44] ([fdo#103167]) -> [PASS][45]
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-glk6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-onoff.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-glk3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbc-badstride:
    - shard-iclb:         [FAIL][46] ([fdo#103167]) -> [PASS][47] +2 similar issues
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-badstride.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-badstride.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
    - shard-iclb:         [FAIL][48] ([fdo#103167] / [fdo#110378]) -> [PASS][49]
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
    - shard-iclb:         [SKIP][50] ([fdo#109441]) -> [PASS][51] +3 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb1/igt@kms_psr@psr2_cursor_plane_onoff.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html

  * igt@kms_setmode@basic:
    - shard-kbl:          [FAIL][52] ([fdo#99912]) -> [PASS][53]
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-kbl7/igt@kms_setmode@basic.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-kbl3/igt@kms_setmode@basic.html

  * igt@prime_busy@hang-bsd:
    - shard-glk:          [INCOMPLETE][54] ([fdo#103359] / [k.org#198133]) -> [PASS][55]
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-glk2/igt@prime_busy@hang-bsd.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-glk4/igt@prime_busy@hang-bsd.html

  
#### Warnings ####

  * igt@gem_tiled_swapping@non-threaded:
    - shard-hsw:          [DMESG-WARN][56] ([fdo#108686]) -> [FAIL][57] ([fdo#108686])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-hsw1/igt@gem_tiled_swapping@non-threaded.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/shard-hsw8/igt@gem_tiled_swapping@non-threaded.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#104097]: https://bugs.freedesktop.org/show_bug.cgi?id=104097
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686
  [fdo#108840]: https://bugs.freedesktop.org/show_bug.cgi?id=108840
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110378]: https://bugs.freedesktop.org/show_bug.cgi?id=110378
  [fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
  [fdo#110913 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110913 
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (10 -> 6)
------------------------------

  Missing    (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 


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

  * IGT: IGT_5064 -> IGTPW_3189
  * Piglit: piglit_4509 -> None

  CI_DRM_6329: 7ff7b7a9d09acaa647921780fa5ed3525ab8f278 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3189: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/
  IGT_5064: 22850c1906550fb97b405c019275dcfb34be8cf7 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3189/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev14)
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (8 preceding siblings ...)
  2019-06-22 10:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
@ 2019-06-22 15:19 ` Patchwork
  2019-06-22 16:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-06-22 15:19 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series (rev14)
URL   : https://patchwork.freedesktop.org/series/56713/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6329 -> IGTPW_3190
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56713/revisions/14/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7500u:       [PASS][1] -> [FAIL][2] ([fdo#109485])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/fi-kbl-7500u/igt@kms_chamelium@hdmi-hpd-fast.html

  
#### Possible fixes ####

  * igt@gem_mmap_gtt@basic-small-bo-tiledy:
    - fi-ilk-650:         [FAIL][3] ([fdo#108803]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/fi-ilk-650/igt@gem_mmap_gtt@basic-small-bo-tiledy.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/fi-ilk-650/igt@gem_mmap_gtt@basic-small-bo-tiledy.html

  * igt@gem_pread@basic:
    - fi-icl-dsi:         [DMESG-WARN][5] ([fdo#106107]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/fi-icl-dsi/igt@gem_pread@basic.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/fi-icl-dsi/igt@gem_pread@basic.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-dsi:         [FAIL][7] ([fdo#103167]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/fi-icl-dsi/igt@kms_frontbuffer_tracking@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/fi-icl-dsi/igt@kms_frontbuffer_tracking@basic.html

  
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#106107]: https://bugs.freedesktop.org/show_bug.cgi?id=106107
  [fdo#108803]: https://bugs.freedesktop.org/show_bug.cgi?id=108803
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485


Participating hosts (51 -> 43)
------------------------------

  Missing    (8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus 


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

  * IGT: IGT_5064 -> IGTPW_3190

  CI_DRM_6329: 7ff7b7a9d09acaa647921780fa5ed3525ab8f278 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3190: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/
  IGT_5064: 22850c1906550fb97b405c019275dcfb34be8cf7 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@i915_pm_dc@dc5-dpms
+igt@i915_pm_dc@dc5-psr
+igt@i915_pm_dc@dc6-dpms
+igt@i915_pm_dc@dc6-psr

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.IGT: success for DC states igt tests patch series (rev14)
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (9 preceding siblings ...)
  2019-06-22 15:19 ` [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev14) Patchwork
@ 2019-06-22 16:45 ` Patchwork
  2019-08-14 18:04 ` [igt-dev] ✗ GitLab.Pipeline: warning for DC states igt tests patch series (rev16) Patchwork
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-06-22 16:45 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series (rev14)
URL   : https://patchwork.freedesktop.org/series/56713/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6329_full -> IGTPW_3190_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56713/revisions/14/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@i915_pm_dc@dc6-dpms} (NEW):
    - shard-kbl:          NOTRUN -> [FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-kbl3/igt@i915_pm_dc@dc6-dpms.html

  
New tests
---------

  New tests have been introduced between CI_DRM_6329_full and IGTPW_3190_full:

### New IGT tests (4) ###

  * igt@i915_pm_dc@dc5-dpms:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 2.20] s

  * igt@i915_pm_dc@dc5-psr:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 3.39] s

  * igt@i915_pm_dc@dc6-dpms:
    - Statuses : 1 fail(s) 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 3.58] s

  * igt@i915_pm_dc@dc6-psr:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 3.38] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_eio@in-flight-internal-1us:
    - shard-snb:          [PASS][2] -> [DMESG-WARN][3] ([fdo#110913 ])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-snb5/igt@gem_eio@in-flight-internal-1us.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-snb5/igt@gem_eio@in-flight-internal-1us.html

  * igt@gem_eio@in-flight-suspend:
    - shard-kbl:          [PASS][4] -> [DMESG-WARN][5] ([fdo#110913 ]) +5 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-kbl2/igt@gem_eio@in-flight-suspend.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-kbl3/igt@gem_eio@in-flight-suspend.html

  * igt@gem_mmap_gtt@hang:
    - shard-iclb:         [PASS][6] -> [FAIL][7] ([fdo#109677])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb8/igt@gem_mmap_gtt@hang.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-iclb1/igt@gem_mmap_gtt@hang.html

  * igt@gem_partial_pwrite_pread@reads-display:
    - shard-apl:          [PASS][8] -> [DMESG-WARN][9] ([fdo#110913 ]) +6 similar issues
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-apl8/igt@gem_partial_pwrite_pread@reads-display.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-apl7/igt@gem_partial_pwrite_pread@reads-display.html

  * igt@gem_userptr_blits@sync-unmap-cycles:
    - shard-snb:          [PASS][10] -> [DMESG-WARN][11] ([fdo#110789] / [fdo#110913 ]) +3 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-snb1/igt@gem_userptr_blits@sync-unmap-cycles.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-snb6/igt@gem_userptr_blits@sync-unmap-cycles.html

  * igt@kms_color@pipe-b-degamma:
    - shard-kbl:          [PASS][12] -> [FAIL][13] ([fdo#104782])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-kbl7/igt@kms_color@pipe-b-degamma.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-kbl7/igt@kms_color@pipe-b-degamma.html
    - shard-apl:          [PASS][14] -> [FAIL][15] ([fdo#104782])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-apl2/igt@kms_color@pipe-b-degamma.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-apl5/igt@kms_color@pipe-b-degamma.html

  * igt@kms_flip@2x-flip-vs-expired-vblank:
    - shard-glk:          [PASS][16] -> [FAIL][17] ([fdo#105363])
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-glk9/igt@kms_flip@2x-flip-vs-expired-vblank.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-glk5/igt@kms_flip@2x-flip-vs-expired-vblank.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-gtt:
    - shard-hsw:          [PASS][18] -> [SKIP][19] ([fdo#109271]) +15 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-hsw2/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-gtt.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-hsw1/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite:
    - shard-iclb:         [PASS][20] -> [FAIL][21] ([fdo#103167]) +8 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb6/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-pri-shrfb-draw-pwrite.html

  * igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
    - shard-apl:          [PASS][22] -> [DMESG-WARN][23] ([fdo#108566]) +1 similar issue
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-apl8/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-apl5/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [PASS][24] -> [SKIP][25] ([fdo#109441])
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-iclb5/igt@kms_psr@psr2_sprite_plane_move.html

  
#### Possible fixes ####

  * igt@gem_exec_reuse@baggage:
    - shard-hsw:          [INCOMPLETE][26] ([fdo#103540]) -> [PASS][27]
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-hsw7/igt@gem_exec_reuse@baggage.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-hsw2/igt@gem_exec_reuse@baggage.html

  * igt@gem_partial_pwrite_pread@reads-snoop:
    - shard-kbl:          [DMESG-WARN][28] ([fdo#110913 ]) -> [PASS][29] +5 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-kbl7/igt@gem_partial_pwrite_pread@reads-snoop.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-kbl2/igt@gem_partial_pwrite_pread@reads-snoop.html

  * igt@gem_persistent_relocs@forked-thrashing:
    - shard-snb:          [DMESG-WARN][30] ([fdo#110789] / [fdo#110913 ]) -> [PASS][31] +4 similar issues
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-snb4/igt@gem_persistent_relocs@forked-thrashing.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-snb7/igt@gem_persistent_relocs@forked-thrashing.html
    - shard-apl:          [DMESG-WARN][32] ([fdo#110913 ]) -> [PASS][33] +3 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-apl8/igt@gem_persistent_relocs@forked-thrashing.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-apl3/igt@gem_persistent_relocs@forked-thrashing.html

  * igt@gem_tiled_swapping@non-threaded:
    - shard-hsw:          [DMESG-WARN][34] ([fdo#108686]) -> [PASS][35]
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-hsw1/igt@gem_tiled_swapping@non-threaded.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-hsw5/igt@gem_tiled_swapping@non-threaded.html

  * igt@i915_suspend@debugfs-reader:
    - shard-apl:          [DMESG-WARN][36] ([fdo#108566]) -> [PASS][37] +2 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-apl7/igt@i915_suspend@debugfs-reader.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-apl5/igt@i915_suspend@debugfs-reader.html

  * igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
    - shard-hsw:          [SKIP][38] ([fdo#109271]) -> [PASS][39] +16 similar issues
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-hsw1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-hsw6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html

  * igt@kms_flip@flip-vs-expired-vblank:
    - shard-glk:          [FAIL][40] ([fdo#105363]) -> [PASS][41]
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-glk9/igt@kms_flip@flip-vs-expired-vblank.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-glk4/igt@kms_flip@flip-vs-expired-vblank.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-onoff:
    - shard-glk:          [FAIL][42] ([fdo#103167]) -> [PASS][43]
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-glk6/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-onoff.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-glk4/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-cur-indfb-onoff.html

  * igt@kms_frontbuffer_tracking@fbc-badstride:
    - shard-iclb:         [FAIL][44] ([fdo#103167]) -> [PASS][45] +3 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-badstride.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-iclb3/igt@kms_frontbuffer_tracking@fbc-badstride.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-rte:
    - shard-iclb:         [FAIL][46] ([fdo#103167] / [fdo#110378]) -> [PASS][47]
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb4/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-rte.html

  * igt@kms_plane_lowres@pipe-a-tiling-x:
    - shard-iclb:         [FAIL][48] ([fdo#103166]) -> [PASS][49]
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb8/igt@kms_plane_lowres@pipe-a-tiling-x.html
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-iclb6/igt@kms_plane_lowres@pipe-a-tiling-x.html

  * igt@kms_psr@psr2_suspend:
    - shard-iclb:         [SKIP][50] ([fdo#109441]) -> [PASS][51] +1 similar issue
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-iclb5/igt@kms_psr@psr2_suspend.html
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-iclb2/igt@kms_psr@psr2_suspend.html

  * igt@kms_setmode@basic:
    - shard-kbl:          [FAIL][52] ([fdo#99912]) -> [PASS][53]
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-kbl7/igt@kms_setmode@basic.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-kbl3/igt@kms_setmode@basic.html

  * igt@prime_busy@hang-bsd:
    - shard-glk:          [INCOMPLETE][54] ([fdo#103359] / [k.org#198133]) -> [PASS][55]
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-glk2/igt@prime_busy@hang-bsd.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-glk2/igt@prime_busy@hang-bsd.html

  
#### Warnings ####

  * igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy:
    - shard-snb:          [DMESG-WARN][56] ([fdo#110789] / [fdo#110913 ]) -> [DMESG-WARN][57] ([fdo#110913 ])
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6329/shard-snb6/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/shard-snb2/igt@gem_userptr_blits@map-fixed-invalidate-overlap-busy.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103166]: https://bugs.freedesktop.org/show_bug.cgi?id=103166
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103359]: https://bugs.freedesktop.org/show_bug.cgi?id=103359
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#104782]: https://bugs.freedesktop.org/show_bug.cgi?id=104782
  [fdo#105363]: https://bugs.freedesktop.org/show_bug.cgi?id=105363
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#108686]: https://bugs.freedesktop.org/show_bug.cgi?id=108686
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109677]: https://bugs.freedesktop.org/show_bug.cgi?id=109677
  [fdo#110378]: https://bugs.freedesktop.org/show_bug.cgi?id=110378
  [fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
  [fdo#110913 ]: https://bugs.freedesktop.org/show_bug.cgi?id=110913 
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912
  [k.org#198133]: https://bugzilla.kernel.org/show_bug.cgi?id=198133


Participating hosts (10 -> 6)
------------------------------

  Missing    (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 


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

  * IGT: IGT_5064 -> IGTPW_3190
  * Piglit: piglit_4509 -> None

  CI_DRM_6329: 7ff7b7a9d09acaa647921780fa5ed3525ab8f278 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3190: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/
  IGT_5064: 22850c1906550fb97b405c019275dcfb34be8cf7 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3190/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v12 1/6] lib/igt_pm: igt lib helper routines to support DC5/6 tests
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 1/6] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta
@ 2019-08-14 17:39   ` Anshuman Gupta
  2019-08-15 11:52     ` Imre Deak
  2019-08-16 10:27     ` Anshuman Gupta
  0 siblings, 2 replies; 27+ messages in thread
From: Anshuman Gupta @ 2019-08-14 17:39 UTC (permalink / raw)
  To: igt-dev; +Cc: Jyoti Yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

This patch does the following chnegs to lib/igt_pm.c

-dmc_loaded() will be used by new test i915_pm_dc.c which will validate
 Display C States. So moving the same to igt_pm library.

-Introduced igt_disable_runtime_pm() in order to disable runtime suspend
 for the function which support dc9.

-Changed the igt_pm_enable_sata_link_power_management() and
 igt_pm_restore_sata_link_power_management() in order to save
 and restore the sata link power policy by an exit handler.

v2: Simplify the comment section.
v3: Remove . from the subject line.
v4: Rebased, resolve conflicts in pm_rpm.c
    Included patch set version change log.
v5: Listing actual change in patch set changelog to make review easier.
v6: igt's lib added support for disabling runtime suspend,
    change in commit log. rebased due to test name pm_rpm changed
    to i915_pm_rpm.
v7: Addressed review comment by saving POWER_DIR values in
    igt_disable_runtime_pm(). [Imre]
v8: Addressed the review comment, igt_pm_enable_sata_link_power_management
    function to restore the original SATA link power policy if things fail
    by using an exit handler. [Imre]
v9: IGT failure fixture in i915_pm_backlight and i915_pm_rpm.
v10:Review comment fixup in sata_link_power_management
    lib functions. [Imre]

Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 lib/igt_pm.c                   | 238 +++++++++++++++++++++++++--------
 lib/igt_pm.h                   |   6 +-
 tests/i915/i915_pm_backlight.c |   6 +-
 tests/i915/i915_pm_rpm.c       |  24 +---
 4 files changed, 189 insertions(+), 85 deletions(-)

diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index fd22273a..2a439700 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -38,6 +38,7 @@
 #include "drmtest.h"
 #include "igt_pm.h"
 #include "igt_aux.h"
+#include "igt_sysfs.h"
 
 /**
  * SECTION:igt_pm
@@ -63,11 +64,15 @@ enum {
 #define MIN_POWER_STR		"min_power\n"
 /* Remember to fix this if adding longer strings */
 #define MAX_POLICY_STRLEN	strlen(MAX_PERFORMANCE_STR)
+int8_t *__sata_pm_policies;
 
 static char __igt_pm_audio_runtime_power_save[64];
 static char * __igt_pm_audio_runtime_control_path;
 static char __igt_pm_audio_runtime_control[64];
 
+static void __igt_pm_sata_link_pm_exit_handler(int sig);
+static void __igt_pm_restore_sata_link_power_management(void);
+
 static int __igt_pm_audio_restore_runtime_pm(void)
 {
 	int fd;
@@ -280,64 +285,72 @@ void igt_pm_enable_audio_runtime_pm(void)
 		igt_debug("Failed to enable audio runtime PM! (%d)\n", -err);
 }
 
-/**
- * igt_pm_enable_sata_link_power_management:
- *
- * Enable the min_power policy for SATA link power management.
- * Without this we cannot reach deep runtime power states.
- *
- * We don't have any assertions on open since the system might not have
- * a SATA host.
- *
- * Returns:
- * An opaque pointer to the data needed to restore the default values
- * after the test has terminated, or NULL if SATA link power management
- * is not supported. This pointer should be freed when no longer used
- * (typically after having called restore_sata_link_power_management()).
- */
-int8_t *igt_pm_enable_sata_link_power_management(void)
+static int8_t get_sata_policy_for_host(int fd, char *buf, int i)
 {
-	int fd, i;
+	int8_t policy;
 	ssize_t len;
+
+	len = read(fd, buf, MAX_POLICY_STRLEN);
+	buf[len] = '\0';
+
+	if (!strncmp(MAX_PERFORMANCE_STR, buf,
+		     strlen(MAX_PERFORMANCE_STR)))
+		policy = POLICY_MAX_PERFORMANCE;
+	else if (!strncmp(MEDIUM_POWER_STR, buf,
+			  strlen(MEDIUM_POWER_STR)))
+		policy = POLICY_MEDIUM_POWER;
+	else if (!strncmp(MIN_POWER_STR, buf,
+			  strlen(MIN_POWER_STR)))
+		policy = POLICY_MIN_POWER;
+	else
+		policy = POLICY_UNKNOWN;
+
+	return policy;
+}
+
+static void __igt_pm_enable_sata_link_power_management(void)
+{
+	int fd, i;
 	char *buf;
 	char *file_name;
-	int8_t *link_pm_policies = NULL;
+	int8_t policy;
 
 	file_name = malloc(PATH_MAX);
 	buf = malloc(MAX_POLICY_STRLEN + 1);
 
 	for (i = 0; ; i++) {
-		int8_t policy;
-
 		snprintf(file_name, PATH_MAX,
 			 "/sys/class/scsi_host/host%d/link_power_management_policy",
 			 i);
 
+		/*
+		 * We don't have any assertions on open since the system
+		 * might not have a SATA host.
+		 */
 		fd = open(file_name, O_RDWR);
 		if (fd < 0)
 			break;
 
-		len = read(fd, buf, MAX_POLICY_STRLEN);
-		buf[len] = '\0';
-
-		if (!strncmp(MAX_PERFORMANCE_STR, buf,
-			     strlen(MAX_PERFORMANCE_STR)))
-			policy = POLICY_MAX_PERFORMANCE;
-		else if (!strncmp(MEDIUM_POWER_STR, buf,
-				  strlen(MEDIUM_POWER_STR)))
-			policy = POLICY_MEDIUM_POWER;
-		else if (!strncmp(MIN_POWER_STR, buf,
-				  strlen(MIN_POWER_STR)))
-			policy = POLICY_MIN_POWER;
-		else
-			policy = POLICY_UNKNOWN;
+		policy = get_sata_policy_for_host(fd, buf, i);
 
 		if (!(i % 256))
-			link_pm_policies = realloc(link_pm_policies,
-						   (i / 256 + 1) * 256 + 1);
+			__sata_pm_policies = realloc(__sata_pm_policies,
+						     (i / 256 + 1) * 256 + 1);
 
-		link_pm_policies[i] = policy;
-		link_pm_policies[i + 1] = 0;
+		__sata_pm_policies[i] = policy;
+		close(fd);
+	}
+		igt_install_exit_handler(__igt_pm_sata_link_pm_exit_handler);
+
+	for (i = 0; ; i++) {
+		snprintf(file_name, PATH_MAX,
+			 "/sys/class/scsi_host/host%d/link_power_management_policy",
+			 i);
+		fd = open(file_name, O_RDWR);
+		if (fd < 0)
+			break;
+
+		policy = get_sata_policy_for_host(fd, buf, i);
 
 		/* If the policy is something we don't know about,
 		 * don't touch it, since we might potentially break things.
@@ -355,39 +368,25 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
 	}
 	free(buf);
 	free(file_name);
-
-	return link_pm_policies;
 }
 
-/**
- * igt_pm_restore_sata_link_power_management:
- * @pm_data: An opaque pointer with saved link PM policies;
- *           If NULL is passed we force enable the "max_performance" policy.
- *
- * Restore the link power management policies to the values
- * prior to enabling min_power.
- *
- * Caveat: If the system supports hotplugging and hotplugging takes
- *         place during our testing so that the hosts change numbers
- *         we might restore the settings to the wrong hosts.
- */
-void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
-
+static void __igt_pm_restore_sata_link_power_management(void)
 {
 	int fd, i;
 	char *file_name;
 
+	if (!__sata_pm_policies)
+		return;
+
 	/* Disk runtime PM policies. */
 	file_name = malloc(PATH_MAX);
 	for (i = 0; ; i++) {
 		int8_t policy;
 
-		if (!pm_data)
-			policy = POLICY_MAX_PERFORMANCE;
-		else if (pm_data[i] == POLICY_UNKNOWN)
+		if (__sata_pm_policies[i] == POLICY_UNKNOWN)
 			continue;
 		else
-			policy = pm_data[i];
+			policy = __sata_pm_policies[i];
 
 		snprintf(file_name, PATH_MAX,
 			 "/sys/class/scsi_host/host%d/link_power_management_policy",
@@ -421,7 +420,49 @@ void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
 		close(fd);
 	}
 	free(file_name);
+	free(__sata_pm_policies);
+	__sata_pm_policies = NULL;
+}
+
+/**
+ * igt_pm_enable_sata_link_power_management:
+ *
+ * Enable the min_power policy for SATA link power management.
+ * Without this we cannot reach deep runtime power states.
+ * Returns: Void
+ */
+void igt_pm_enable_sata_link_power_management(void)
+{
+	/* Check if has been already saved. */
+	if (__sata_pm_policies)
+		return;
+
+	 __igt_pm_enable_sata_link_power_management();
+}
+
+/**
+ * igt_pm_restore_sata_link_power_management:
+ *
+ * Restore the link power management policies to the values
+ * prior to enabling min_power.
+ *
+ * Caveat: If the system supports hotplugging and hotplugging takes
+ *         place during our testing so that the hosts change numbers
+ *         we might restore the settings to the wrong hosts.
+ */
+void igt_pm_restore_sata_link_power_management(void)
+{
+	if (!__sata_pm_policies)
+		return;
+
+	 __igt_pm_restore_sata_link_power_management();
 }
+
+static void __igt_pm_sata_link_pm_exit_handler(int sig)
+{
+	__igt_pm_restore_sata_link_power_management();
+}
+
 #define POWER_DIR "/sys/devices/pci0000:00/0000:00:02.0/power"
 /* We just leak this on exit ... */
 int pm_status_fd = -1;
@@ -585,6 +626,61 @@ bool igt_setup_runtime_pm(void)
 	return true;
 }
 
+bool igt_disable_runtime_pm(void)
+{
+	int fd;
+	ssize_t size;
+	char buf[6];
+
+	if (pm_status_fd < 0) {
+		fd = open(POWER_DIR "/autosuspend_delay_ms", O_RDWR);
+		if (fd < 0)
+			return false;
+
+		size = read(fd, __igt_pm_runtime_autosuspend,
+			    sizeof(__igt_pm_runtime_autosuspend));
+
+		if (size <= 0) {
+			close(fd);
+			return false;
+		}
+
+		strchomp(__igt_pm_runtime_autosuspend);
+		igt_install_exit_handler(__igt_pm_runtime_exit_handler);
+		close(fd);
+	}
+
+	/* We know we support runtime PM, let's try to disable it now. */
+	fd = open(POWER_DIR "/control", O_RDWR);
+	igt_assert_f(fd >= 0, "Can't open " POWER_DIR "/control\n");
+
+	if (pm_status_fd < 0) {
+		igt_assert(read(fd, __igt_pm_runtime_control,
+				sizeof(__igt_pm_runtime_control)) > 0);
+		strchomp(__igt_pm_runtime_control);
+
+		igt_debug("Saved runtime power management as '%s' and '%s'\n",
+			  __igt_pm_runtime_autosuspend,
+			  __igt_pm_runtime_control);
+	}
+
+	size = write(fd, "on\n", 3);
+	igt_assert(size == 3);
+	lseek(fd, 0, SEEK_SET);
+	size = read(fd, buf, ARRAY_SIZE(buf));
+	igt_assert(size == 3);
+	igt_assert(strncmp(buf, "on\n", 3) == 0);
+	close(fd);
+
+	if (pm_status_fd < 0) {
+		pm_status_fd = open(POWER_DIR "/runtime_status", O_RDONLY);
+		igt_assert_f(pm_status_fd >= 0,
+			     "Can't open " POWER_DIR "/runtime_status\n");
+	}
+
+	return true;
+}
+
 /**
  * igt_get_runtime_pm_status:
  *
@@ -628,3 +724,29 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
 {
 	return igt_wait(igt_get_runtime_pm_status() == status, 10000, 100);
 }
+
+/**
+ * dmc_loaded:
+ * @debugfs: fd to the debugfs dir.
+
+ * Check whether DMC FW is loaded or not. DMC FW is require for few Display C
+ * states like DC5 and DC6. FW does the Context Save and Restore during Display
+ * C States entry and exit.
+ *
+ * Returns:
+ * True if DMC FW is loaded otherwise false.
+ */
+bool igt_pm_dmc_loaded(int debugfs)
+{
+	char buf[15];
+	int len;
+
+	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
+	if (len < 0)
+		return true; /* no CSR support, no DMC requirement */
+
+	buf[len] = '\0';
+
+	igt_info("DMC: %s\n", buf);
+	return strstr(buf, "fw loaded: yes");
+}
diff --git a/lib/igt_pm.h b/lib/igt_pm.h
index 10cc6794..979b3463 100644
--- a/lib/igt_pm.h
+++ b/lib/igt_pm.h
@@ -25,8 +25,8 @@
 #define IGT_PM_H
 
 void igt_pm_enable_audio_runtime_pm(void);
-int8_t *igt_pm_enable_sata_link_power_management(void);
-void igt_pm_restore_sata_link_power_management(int8_t *pm_data);
+void igt_pm_enable_sata_link_power_management(void);
+void igt_pm_restore_sata_link_power_management(void);
 
 /**
  * igt_runtime_pm_status:
@@ -47,8 +47,10 @@ enum igt_runtime_pm_status {
 };
 
 bool igt_setup_runtime_pm(void);
+bool igt_disable_runtime_pm(void);
 void igt_restore_runtime_pm(void);
 enum igt_runtime_pm_status igt_get_runtime_pm_status(void);
 bool igt_wait_for_pm_status(enum igt_runtime_pm_status status);
+bool igt_pm_dmc_loaded(int debugfs);
 
 #endif /* IGT_PM_H */
diff --git a/tests/i915/i915_pm_backlight.c b/tests/i915/i915_pm_backlight.c
index 4c1bff5b..9a5f4c37 100644
--- a/tests/i915/i915_pm_backlight.c
+++ b/tests/i915/i915_pm_backlight.c
@@ -47,7 +47,6 @@ struct context {
 #define FADESPEED 100 /* milliseconds between steps */
 
 IGT_TEST_DESCRIPTION("Basic backlight sysfs test");
-static int8_t *pm_data = NULL;
 
 static int backlight_read(int *result, const char *fname)
 {
@@ -235,7 +234,7 @@ igt_main
 		igt_plane_set_fb(primary, &fb);
 
 		igt_display_commit2(&display, display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
-		pm_data = igt_pm_enable_sata_link_power_management();
+		igt_pm_enable_sata_link_power_management();
 	}
 
 	igt_subtest("basic-brightness")
@@ -255,8 +254,7 @@ igt_main
 
 		igt_display_fini(&display);
 		igt_remove_fb(display.drm_fd, &fb);
-		igt_pm_restore_sata_link_power_management(pm_data);
-		free(pm_data);
+		igt_pm_restore_sata_link_power_management();
 		close(display.drm_fd);
 	}
 }
diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
index a2c9d0ed..2d2f77be 100644
--- a/tests/i915/i915_pm_rpm.c
+++ b/tests/i915/i915_pm_rpm.c
@@ -122,8 +122,6 @@ struct modeset_params lpsp_mode_params;
 struct modeset_params non_lpsp_mode_params;
 struct modeset_params *default_mode_params;
 
-static int8_t *pm_data = NULL;
-
 static int modprobe(const char *driver)
 {
 	return igt_kmod_load(driver, NULL);
@@ -710,21 +708,6 @@ static void setup_pc8(void)
 	has_pc8 = true;
 }
 
-static bool dmc_loaded(void)
-{
-	char buf[15];
-	int len;
-
-	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
-	if (len < 0)
-	    return true; /* no CSR support, no DMC requirement */
-
-	buf[len] = '\0';
-
-	igt_info("DMC: %s\n", buf);
-	return strstr(buf, "fw loaded: yes");
-}
-
 static void dump_file(int dir, const char *filename)
 {
 	char *contents;
@@ -751,7 +734,7 @@ static bool setup_environment(void)
 
 	init_mode_set_data(&ms_data);
 
-	pm_data = igt_pm_enable_sata_link_power_management();
+	igt_pm_enable_sata_link_power_management();
 
 	has_runtime_pm = igt_setup_runtime_pm();
 	setup_pc8();
@@ -759,7 +742,7 @@ static bool setup_environment(void)
 	igt_info("Runtime PM support: %d\n", has_runtime_pm);
 	igt_info("PC8 residency support: %d\n", has_pc8);
 	igt_require(has_runtime_pm);
-	igt_require(dmc_loaded());
+	igt_require(igt_pm_dmc_loaded(debugfs));
 
 out:
 	disable_all_screens(&ms_data);
@@ -776,8 +759,7 @@ static void teardown_environment(void)
 
 	igt_restore_runtime_pm();
 
-	igt_pm_restore_sata_link_power_management(pm_data);
-	free(pm_data);
+	igt_pm_restore_sata_link_power_management();
 
 	fini_mode_set_data(&ms_data);
 
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v12 4/6] tests/i915/i915_pm_dc: Added test for DC5 during DPMS
  2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 4/6] tests/i915/i915_pm_dc: Added test for DC5 during DPMS Anshuman Gupta
@ 2019-08-14 17:46   ` Anshuman Gupta
  2019-08-23 14:30     ` Imre Deak
  0 siblings, 1 reply; 27+ messages in thread
From: Anshuman Gupta @ 2019-08-14 17:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Jyoti Yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

Added new subtest for DC5 entry during DPMS on/off cycle.
During DPMS on/off cycle DC5 counter is incremented.

v2: Rename the subtest with meaningful name.
v3: Rebased.
v4: Addressed review comments by removing leftover code
    cleanup().
v5: Addressed the review comment by removing redundant
    read_dc_counter() suggested by Imre.
    Listing actual change in patch set changelog to make review easier.
v6: Three way patch applied, no functional change.
v7: Disabling runtime suspend for the platform which support, DC9.
    rebased due to test name pm_dc changed to i915_pm_dc, aligning to
    other PM tests.
v8: Introduced setup_dc_dpms() in order to disable runtime pm, restoring
    POWER_DIR values to its original and enabling runtime pm  for other
    followed sub-tests.
v9: Check DC5 counter value after DPMS off, broke the dpms_on_off
    function to dpms_on and dpms_off. [Imre]
v10:Added AT_LEAST_Gen11 condition instead of IS_ICELAKE in order to
    disable runtime suspend. [Imre]

Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 tests/i915/i915_pm_dc.c | 62 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 62 insertions(+)

diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index f261ecbf..f03d30a8 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -46,6 +46,7 @@ typedef struct {
 	enum psr_mode op_psr_mode;
 	drmModeModeInfo *mode;
 	igt_output_t *output;
+	bool runtime_suspend_disabled;
 } data_t;
 
 bool dc_state_wait_entry(int drm_fd, int dc_flag, int prev_dc_count);
@@ -173,6 +174,62 @@ static void test_dc_state_psr(data_t *data, int dc_flag)
 	cleanup(data);
 }
 
+static void setup_dc_dpms(data_t *data)
+{
+	if (IS_BROXTON(data->devid) || IS_GEMINILAKE(data->devid) ||
+	    AT_LEAST_GEN(data->devid, 11)) {
+		data->runtime_suspend_disabled = igt_disable_runtime_pm();
+		igt_require_f(data->runtime_suspend_disabled,
+			      "unable to disable runtime pm for i915\n");
+	} else {
+		data->runtime_suspend_disabled = false;
+	}
+}
+
+static void dpms_off(data_t *data)
+{
+	for (int i = 0; i < data->display.n_outputs; i++) {
+		kmstest_set_connector_dpms(data->drm_fd,
+					   data->display.outputs[i].config.connector,
+					   DRM_MODE_DPMS_OFF);
+	}
+
+	if (!data->runtime_suspend_disabled)
+		igt_assert(igt_wait_for_pm_status
+			   (IGT_RUNTIME_PM_STATUS_SUSPENDED));
+}
+
+static void dpms_on(data_t *data)
+{
+	for (int i = 0; i < data->display.n_outputs; i++) {
+		kmstest_set_connector_dpms(data->drm_fd,
+					   data->display.outputs[i].config.connector,
+					   DRM_MODE_DPMS_ON);
+	}
+
+	if (!data->runtime_suspend_disabled)
+		igt_assert(igt_wait_for_pm_status
+			   (IGT_RUNTIME_PM_STATUS_ACTIVE));
+}
+
+static void test_dc_state_dpms(data_t *data, int dc_flag)
+{
+	uint32_t dc_counter;
+
+	dc_counter = read_dc_counter(data->drm_fd, dc_flag);
+	dpms_off(data);
+	check_dc_counter(data->drm_fd, dc_flag, dc_counter);
+	dpms_on(data);
+
+	/* if runtime PM is disabled for i915 restore it,
+	 * so any other sub-test can use runtime-PM.
+	 */
+	if (data->runtime_suspend_disabled) {
+		igt_restore_runtime_pm();
+		igt_setup_runtime_pm();
+	}
+}
+
 int main(int argc, char *argv[])
 {
 	bool has_runtime_pm;
@@ -210,6 +267,11 @@ int main(int argc, char *argv[])
 		test_dc_state_psr(&data, CHECK_DC6);
 	}
 
+	igt_subtest("dc5-dpms") {
+		setup_dc_dpms(&data);
+		test_dc_state_dpms(&data, CHECK_DC5);
+	}
+
 	igt_fixture {
 		close(data.debugfs_fd);
 		display_fini(&data);
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ GitLab.Pipeline: warning for DC states igt tests patch series (rev16)
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (10 preceding siblings ...)
  2019-06-22 16:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2019-08-14 18:04 ` Patchwork
  2019-08-14 18:23 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-08-14 18:04 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series (rev16)
URL   : https://patchwork.freedesktop.org/series/56713/
State : warning

== Summary ==

Pipeline status: FAILED.

See https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/56393 for more details.

== Logs ==

For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/56393
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev16)
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (11 preceding siblings ...)
  2019-08-14 18:04 ` [igt-dev] ✗ GitLab.Pipeline: warning for DC states igt tests patch series (rev16) Patchwork
@ 2019-08-14 18:23 ` Patchwork
  2019-08-15  9:22 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-08-14 18:23 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series (rev16)
URL   : https://patchwork.freedesktop.org/series/56713/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6709 -> IGTPW_3350
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56713/revisions/16/mbox/

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_suspend@basic-s3:
    - fi-blb-e6850:       [PASS][1] -> [INCOMPLETE][2] ([fdo#107718])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/fi-blb-e6850/igt@gem_exec_suspend@basic-s3.html

  
#### Possible fixes ####

  * igt@i915_selftest@live_sanitycheck:
    - fi-icl-u3:          [DMESG-WARN][3] ([fdo#107724]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/fi-icl-u3/igt@i915_selftest@live_sanitycheck.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/fi-icl-u3/igt@i915_selftest@live_sanitycheck.html

  * igt@kms_chamelium@hdmi-hpd-fast:
    - fi-kbl-7567u:       [FAIL][5] ([fdo#109485]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/fi-kbl-7567u/igt@kms_chamelium@hdmi-hpd-fast.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/fi-kbl-7567u/igt@kms_chamelium@hdmi-hpd-fast.html

  * igt@kms_frontbuffer_tracking@basic:
    - {fi-icl-guc}:       [FAIL][7] ([fdo#103167]) -> [PASS][8]
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/fi-icl-guc/igt@kms_frontbuffer_tracking@basic.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/fi-icl-guc/igt@kms_frontbuffer_tracking@basic.html
    - fi-icl-u2:          [FAIL][9] ([fdo#103167]) -> [PASS][10]
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/fi-icl-u2/igt@kms_frontbuffer_tracking@basic.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108569]: https://bugs.freedesktop.org/show_bug.cgi?id=108569
  [fdo#109485]: https://bugs.freedesktop.org/show_bug.cgi?id=109485


Participating hosts (53 -> 46)
------------------------------

  Additional (1): fi-kbl-guc 
  Missing    (8): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-icl-y fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5134 -> IGTPW_3350

  CI-20190529: 20190529
  CI_DRM_6709: 4c9976607118e10dfc9f9feb3b9be2b3579631c9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3350: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/
  IGT_5134: 81df2f22385bc275975cf199d962eed9bc10f916 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@i915_pm_dc@dc5-dpms
+igt@i915_pm_dc@dc5-psr
+igt@i915_pm_dc@dc6-dpms
+igt@i915_pm_dc@dc6-psr

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.IGT: success for DC states igt tests patch series (rev16)
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (12 preceding siblings ...)
  2019-08-14 18:23 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2019-08-15  9:22 ` Patchwork
  2019-08-16 10:54 ` [igt-dev] ✗ GitLab.Pipeline: warning for DC states igt tests patch series (rev17) Patchwork
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-08-15  9:22 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series (rev16)
URL   : https://patchwork.freedesktop.org/series/56713/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6709_full -> IGTPW_3350_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56713/revisions/16/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@i915_pm_dc@dc6-dpms} (NEW):
    - shard-kbl:          NOTRUN -> [FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-kbl7/igt@i915_pm_dc@dc6-dpms.html

  
New tests
---------

  New tests have been introduced between CI_DRM_6709_full and IGTPW_3350_full:

### New IGT tests (4) ###

  * igt@i915_pm_dc@dc5-dpms:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0, 2.23] s

  * igt@i915_pm_dc@dc5-psr:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 3.41] s

  * igt@i915_pm_dc@dc6-dpms:
    - Statuses : 1 fail(s) 4 skip(s)
    - Exec time: [0.0, 3.39] s

  * igt@i915_pm_dc@dc6-psr:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 3.42] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_schedule@independent-bsd1:
    - shard-iclb:         [PASS][2] -> [SKIP][3] ([fdo#109276]) +14 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-iclb2/igt@gem_exec_schedule@independent-bsd1.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-iclb6/igt@gem_exec_schedule@independent-bsd1.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-iclb:         [PASS][4] -> [SKIP][5] ([fdo#111325]) +5 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-iclb8/igt@gem_exec_schedule@preemptive-hang-bsd.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-iclb4/igt@gem_exec_schedule@preemptive-hang-bsd.html

  * igt@i915_suspend@debugfs-reader:
    - shard-apl:          [PASS][6] -> [DMESG-WARN][7] ([fdo#108566]) +6 similar issues
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-apl2/igt@i915_suspend@debugfs-reader.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-apl5/igt@i915_suspend@debugfs-reader.html

  * igt@kms_cursor_crc@pipe-c-cursor-256x256-random:
    - shard-apl:          [PASS][8] -> [FAIL][9] ([fdo#103232])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-apl4/igt@kms_cursor_crc@pipe-c-cursor-256x256-random.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-apl8/igt@kms_cursor_crc@pipe-c-cursor-256x256-random.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-hsw:          [PASS][10] -> [FAIL][11] ([fdo#105767])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-hsw7/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-hsw6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_flip@blocking-absolute-wf_vblank-interruptible:
    - shard-hsw:          [PASS][12] -> [INCOMPLETE][13] ([fdo#103540]) +1 similar issue
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-hsw6/igt@kms_flip@blocking-absolute-wf_vblank-interruptible.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-hsw6/igt@kms_flip@blocking-absolute-wf_vblank-interruptible.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render:
    - shard-iclb:         [PASS][14] -> [FAIL][15] ([fdo#103167]) +4 similar issues
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-iclb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-render.html

  * igt@kms_psr@psr2_sprite_plane_move:
    - shard-iclb:         [PASS][16] -> [SKIP][17] ([fdo#109441]) +2 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-iclb6/igt@kms_psr@psr2_sprite_plane_move.html

  * igt@kms_setmode@basic:
    - shard-apl:          [PASS][18] -> [FAIL][19] ([fdo#99912])
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-apl4/igt@kms_setmode@basic.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-apl1/igt@kms_setmode@basic.html

  
#### Possible fixes ####

  * igt@gem_ctx_isolation@rcs0-s3:
    - shard-apl:          [DMESG-WARN][20] ([fdo#108566]) -> [PASS][21] +5 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-apl7/igt@gem_ctx_isolation@rcs0-s3.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-apl7/igt@gem_ctx_isolation@rcs0-s3.html

  * igt@gem_exec_balancer@smoke:
    - shard-iclb:         [SKIP][22] ([fdo#110854]) -> [PASS][23]
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-iclb6/igt@gem_exec_balancer@smoke.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-iclb1/igt@gem_exec_balancer@smoke.html

  * igt@gem_exec_schedule@independent-bsd:
    - shard-iclb:         [SKIP][24] ([fdo#111325]) -> [PASS][25] +3 similar issues
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-iclb1/igt@gem_exec_schedule@independent-bsd.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-iclb8/igt@gem_exec_schedule@independent-bsd.html

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-snb:          [SKIP][26] ([fdo#109271]) -> [PASS][27]
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-snb4/igt@i915_pm_rc6_residency@rc6-accuracy.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-snb2/igt@i915_pm_rc6_residency@rc6-accuracy.html

  * igt@kms_cursor_legacy@cursor-vs-flip-varying-size:
    - shard-apl:          [INCOMPLETE][28] ([fdo#103927]) -> [PASS][29] +2 similar issues
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-apl4/igt@kms_cursor_legacy@cursor-vs-flip-varying-size.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-apl4/igt@kms_cursor_legacy@cursor-vs-flip-varying-size.html

  * igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt:
    - shard-iclb:         [FAIL][30] ([fdo#103167]) -> [PASS][31] +2 similar issues
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-iclb8/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-iclb2/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-blt.html

  * igt@kms_psr@psr2_sprite_mmap_gtt:
    - shard-iclb:         [SKIP][32] ([fdo#109441]) -> [PASS][33]
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-iclb4/igt@kms_psr@psr2_sprite_mmap_gtt.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_gtt.html

  * igt@kms_setmode@basic:
    - shard-glk:          [FAIL][34] ([fdo#99912]) -> [PASS][35]
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-glk4/igt@kms_setmode@basic.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-glk2/igt@kms_setmode@basic.html

  * igt@prime_busy@hang-bsd2:
    - shard-iclb:         [SKIP][36] ([fdo#109276]) -> [PASS][37] +18 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-iclb7/igt@prime_busy@hang-bsd2.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-iclb4/igt@prime_busy@hang-bsd2.html

  
#### Warnings ####

  * igt@gem_mocs_settings@mocs-reset-bsd2:
    - shard-iclb:         [SKIP][38] ([fdo#109276]) -> [FAIL][39] ([fdo#111330]) +1 similar issue
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-iclb3/igt@gem_mocs_settings@mocs-reset-bsd2.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-iclb1/igt@gem_mocs_settings@mocs-reset-bsd2.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [DMESG-WARN][40] ([fdo#107724]) -> [SKIP][41] ([fdo#109349])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-iclb7/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen:
    - shard-apl:          [INCOMPLETE][42] ([fdo#103927]) -> [SKIP][43] ([fdo#109271])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6709/shard-apl2/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/shard-apl6/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-fullscreen.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103232]: https://bugs.freedesktop.org/show_bug.cgi?id=103232
  [fdo#103540]: https://bugs.freedesktop.org/show_bug.cgi?id=103540
  [fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
  [fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
  [fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325
  [fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330
  [fdo#99912]: https://bugs.freedesktop.org/show_bug.cgi?id=99912


Participating hosts (10 -> 6)
------------------------------

  Missing    (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5134 -> IGTPW_3350
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_6709: 4c9976607118e10dfc9f9feb3b9be2b3579631c9 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3350: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/
  IGT_5134: 81df2f22385bc275975cf199d962eed9bc10f916 @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3350/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v12 1/6] lib/igt_pm: igt lib helper routines to support DC5/6 tests
  2019-08-14 17:39   ` Anshuman Gupta
@ 2019-08-15 11:52     ` Imre Deak
  2019-08-16 10:27     ` Anshuman Gupta
  1 sibling, 0 replies; 27+ messages in thread
From: Imre Deak @ 2019-08-15 11:52 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev, Jyoti Yadav

On Wed, Aug 14, 2019 at 11:09:04PM +0530, Anshuman Gupta wrote:
> From: Jyoti Yadav <jyoti.r.yadav@intel.com>
> 
> This patch does the following chnegs to lib/igt_pm.c
> 
> -dmc_loaded() will be used by new test i915_pm_dc.c which will validate
>  Display C States. So moving the same to igt_pm library.
> 
> -Introduced igt_disable_runtime_pm() in order to disable runtime suspend
>  for the function which support dc9.
> 
> -Changed the igt_pm_enable_sata_link_power_management() and
>  igt_pm_restore_sata_link_power_management() in order to save
>  and restore the sata link power policy by an exit handler.
> 
> v2: Simplify the comment section.
> v3: Remove . from the subject line.
> v4: Rebased, resolve conflicts in pm_rpm.c
>     Included patch set version change log.
> v5: Listing actual change in patch set changelog to make review easier.
> v6: igt's lib added support for disabling runtime suspend,
>     change in commit log. rebased due to test name pm_rpm changed
>     to i915_pm_rpm.
> v7: Addressed review comment by saving POWER_DIR values in
>     igt_disable_runtime_pm(). [Imre]
> v8: Addressed the review comment, igt_pm_enable_sata_link_power_management
>     function to restore the original SATA link power policy if things fail
>     by using an exit handler. [Imre]
> v9: IGT failure fixture in i915_pm_backlight and i915_pm_rpm.
> v10:Review comment fixup in sata_link_power_management
>     lib functions. [Imre]
> 
> Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
>  lib/igt_pm.c                   | 238 +++++++++++++++++++++++++--------
>  lib/igt_pm.h                   |   6 +-
>  tests/i915/i915_pm_backlight.c |   6 +-
>  tests/i915/i915_pm_rpm.c       |  24 +---
>  4 files changed, 189 insertions(+), 85 deletions(-)
> 
> diff --git a/lib/igt_pm.c b/lib/igt_pm.c
> index fd22273a..2a439700 100644
> --- a/lib/igt_pm.c
> +++ b/lib/igt_pm.c
> @@ -38,6 +38,7 @@
>  #include "drmtest.h"
>  #include "igt_pm.h"
>  #include "igt_aux.h"
> +#include "igt_sysfs.h"
>  
>  /**
>   * SECTION:igt_pm
> @@ -63,11 +64,15 @@ enum {
>  #define MIN_POWER_STR		"min_power\n"
>  /* Remember to fix this if adding longer strings */
>  #define MAX_POLICY_STRLEN	strlen(MAX_PERFORMANCE_STR)
> +int8_t *__sata_pm_policies;
>  
>  static char __igt_pm_audio_runtime_power_save[64];
>  static char * __igt_pm_audio_runtime_control_path;
>  static char __igt_pm_audio_runtime_control[64];
>  
> +static void __igt_pm_sata_link_pm_exit_handler(int sig);
> +static void __igt_pm_restore_sata_link_power_management(void);
> +
>  static int __igt_pm_audio_restore_runtime_pm(void)
>  {
>  	int fd;
> @@ -280,64 +285,72 @@ void igt_pm_enable_audio_runtime_pm(void)
>  		igt_debug("Failed to enable audio runtime PM! (%d)\n", -err);
>  }
>  
> -/**
> - * igt_pm_enable_sata_link_power_management:
> - *
> - * Enable the min_power policy for SATA link power management.
> - * Without this we cannot reach deep runtime power states.
> - *
> - * We don't have any assertions on open since the system might not have
> - * a SATA host.
> - *
> - * Returns:
> - * An opaque pointer to the data needed to restore the default values
> - * after the test has terminated, or NULL if SATA link power management
> - * is not supported. This pointer should be freed when no longer used
> - * (typically after having called restore_sata_link_power_management()).
> - */
> -int8_t *igt_pm_enable_sata_link_power_management(void)
> +static int8_t get_sata_policy_for_host(int fd, char *buf, int i)
>  {
> -	int fd, i;
> +	int8_t policy;
>  	ssize_t len;
> +
> +	len = read(fd, buf, MAX_POLICY_STRLEN);
> +	buf[len] = '\0';
> +
> +	if (!strncmp(MAX_PERFORMANCE_STR, buf,
> +		     strlen(MAX_PERFORMANCE_STR)))
> +		policy = POLICY_MAX_PERFORMANCE;
> +	else if (!strncmp(MEDIUM_POWER_STR, buf,
> +			  strlen(MEDIUM_POWER_STR)))
> +		policy = POLICY_MEDIUM_POWER;
> +	else if (!strncmp(MIN_POWER_STR, buf,
> +			  strlen(MIN_POWER_STR)))
> +		policy = POLICY_MIN_POWER;
> +	else
> +		policy = POLICY_UNKNOWN;
> +
> +	return policy;
> +}
> +
> +static void __igt_pm_enable_sata_link_power_management(void)
> +{
> +	int fd, i;
>  	char *buf;
>  	char *file_name;
> -	int8_t *link_pm_policies = NULL;
> +	int8_t policy;
>  
>  	file_name = malloc(PATH_MAX);
>  	buf = malloc(MAX_POLICY_STRLEN + 1);
>  
>  	for (i = 0; ; i++) {

for (scsi_host_count = 0; ; scsi_host_count++)

> -		int8_t policy;
> -
>  		snprintf(file_name, PATH_MAX,
>  			 "/sys/class/scsi_host/host%d/link_power_management_policy",
>  			 i);
>  
> +		/*
> +		 * We don't have any assertions on open since the system
> +		 * might not have a SATA host.
> +		 */
>  		fd = open(file_name, O_RDWR);
>  		if (fd < 0)
>  			break;
>  
> -		len = read(fd, buf, MAX_POLICY_STRLEN);
> -		buf[len] = '\0';
> -
> -		if (!strncmp(MAX_PERFORMANCE_STR, buf,
> -			     strlen(MAX_PERFORMANCE_STR)))
> -			policy = POLICY_MAX_PERFORMANCE;
> -		else if (!strncmp(MEDIUM_POWER_STR, buf,
> -				  strlen(MEDIUM_POWER_STR)))
> -			policy = POLICY_MEDIUM_POWER;
> -		else if (!strncmp(MIN_POWER_STR, buf,
> -				  strlen(MIN_POWER_STR)))
> -			policy = POLICY_MIN_POWER;
> -		else
> -			policy = POLICY_UNKNOWN;
> +		policy = get_sata_policy_for_host(fd, buf, i);
>  
>  		if (!(i % 256))
> -			link_pm_policies = realloc(link_pm_policies,
> -						   (i / 256 + 1) * 256 + 1);
> +			__sata_pm_policies = realloc(__sata_pm_policies,
> +						     (i / 256 + 1) * 256 + 1);
>  
> -		link_pm_policies[i] = policy;
> -		link_pm_policies[i + 1] = 0;
> +		__sata_pm_policies[i] = policy;
> +		close(fd);
> +	}
> +		igt_install_exit_handler(__igt_pm_sata_link_pm_exit_handler);

Extra indent.

> +
> +	for (i = 0; ; i++) {

for (i = 0; ; i < scsi_host_count)

> +		snprintf(file_name, PATH_MAX,
> +			 "/sys/class/scsi_host/host%d/link_power_management_policy",
> +			 i);
> +		fd = open(file_name, O_RDWR);
> +		if (fd < 0)
> +			break;
> +
> +		policy = get_sata_policy_for_host(fd, buf, i);

policy = __sata_pm_policies[i];

>  
>  		/* If the policy is something we don't know about,
>  		 * don't touch it, since we might potentially break things.
> @@ -355,39 +368,25 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
>  	}
>  	free(buf);
>  	free(file_name);
> -
> -	return link_pm_policies;
>  }
>  
> -/**
> - * igt_pm_restore_sata_link_power_management:
> - * @pm_data: An opaque pointer with saved link PM policies;
> - *           If NULL is passed we force enable the "max_performance" policy.
> - *
> - * Restore the link power management policies to the values
> - * prior to enabling min_power.
> - *
> - * Caveat: If the system supports hotplugging and hotplugging takes
> - *         place during our testing so that the hosts change numbers
> - *         we might restore the settings to the wrong hosts.
> - */
> -void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
> -
> +static void __igt_pm_restore_sata_link_power_management(void)
>  {
>  	int fd, i;
>  	char *file_name;
>  
> +	if (!__sata_pm_policies)
> +		return;
> +
>  	/* Disk runtime PM policies. */
>  	file_name = malloc(PATH_MAX);
>  	for (i = 0; ; i++) {

for (i = 0; ; i < scsi_host_count) {

>  		int8_t policy;
>  
> -		if (!pm_data)
> -			policy = POLICY_MAX_PERFORMANCE;
> -		else if (pm_data[i] == POLICY_UNKNOWN)
> +		if (__sata_pm_policies[i] == POLICY_UNKNOWN)
>  			continue;
>  		else
> -			policy = pm_data[i];
> +			policy = __sata_pm_policies[i];
>  
>  		snprintf(file_name, PATH_MAX,
>  			 "/sys/class/scsi_host/host%d/link_power_management_policy",
> @@ -421,7 +420,49 @@ void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
>  		close(fd);
>  	}
>  	free(file_name);
> +	free(__sata_pm_policies);
> +	__sata_pm_policies = NULL;
> +}
> +
> +/**
> + * igt_pm_enable_sata_link_power_management:
> + *
> + * Enable the min_power policy for SATA link power management.
> + * Without this we cannot reach deep runtime power states.
> + * Returns: Void
> + */
> +void igt_pm_enable_sata_link_power_management(void)
> +{
> +	/* Check if has been already saved. */
> +	if (__sata_pm_policies)
> +		return;
> +
> +	 __igt_pm_enable_sata_link_power_management();
> +}
> +
> +/**
> + * igt_pm_restore_sata_link_power_management:
> + *
> + * Restore the link power management policies to the values
> + * prior to enabling min_power.
> + *
> + * Caveat: If the system supports hotplugging and hotplugging takes
> + *         place during our testing so that the hosts change numbers
> + *         we might restore the settings to the wrong hosts.
> + */
> +void igt_pm_restore_sata_link_power_management(void)
> +{
> +	if (!__sata_pm_policies)
> +		return;
> +
> +	 __igt_pm_restore_sata_link_power_management();
>  }
> +
> +static void __igt_pm_sata_link_pm_exit_handler(int sig)
> +{
> +	__igt_pm_restore_sata_link_power_management();
> +}
> +
>  #define POWER_DIR "/sys/devices/pci0000:00/0000:00:02.0/power"
>  /* We just leak this on exit ... */
>  int pm_status_fd = -1;
> @@ -585,6 +626,61 @@ bool igt_setup_runtime_pm(void)
>  	return true;
>  }
>  
> +bool igt_disable_runtime_pm(void)
> +{
> +	int fd;
> +	ssize_t size;
> +	char buf[6];
> +
> +	if (pm_status_fd < 0) {
> +		fd = open(POWER_DIR "/autosuspend_delay_ms", O_RDWR);
> +		if (fd < 0)
> +			return false;
> +
> +		size = read(fd, __igt_pm_runtime_autosuspend,
> +			    sizeof(__igt_pm_runtime_autosuspend));
> +
> +		if (size <= 0) {
> +			close(fd);
> +			return false;
> +		}
> +
> +		strchomp(__igt_pm_runtime_autosuspend);
> +		igt_install_exit_handler(__igt_pm_runtime_exit_handler);
> +		close(fd);
> +	}
> +
> +	/* We know we support runtime PM, let's try to disable it now. */
> +	fd = open(POWER_DIR "/control", O_RDWR);
> +	igt_assert_f(fd >= 0, "Can't open " POWER_DIR "/control\n");
> +
> +	if (pm_status_fd < 0) {
> +		igt_assert(read(fd, __igt_pm_runtime_control,
> +				sizeof(__igt_pm_runtime_control)) > 0);
> +		strchomp(__igt_pm_runtime_control);
> +
> +		igt_debug("Saved runtime power management as '%s' and '%s'\n",
> +			  __igt_pm_runtime_autosuspend,
> +			  __igt_pm_runtime_control);
> +	}
> +
> +	size = write(fd, "on\n", 3);
> +	igt_assert(size == 3);
> +	lseek(fd, 0, SEEK_SET);
> +	size = read(fd, buf, ARRAY_SIZE(buf));
> +	igt_assert(size == 3);
> +	igt_assert(strncmp(buf, "on\n", 3) == 0);
> +	close(fd);
> +
> +	if (pm_status_fd < 0) {
> +		pm_status_fd = open(POWER_DIR "/runtime_status", O_RDONLY);
> +		igt_assert_f(pm_status_fd >= 0,
> +			     "Can't open " POWER_DIR "/runtime_status\n");
> +	}
> +
> +	return true;
> +}
> +
>  /**
>   * igt_get_runtime_pm_status:
>   *
> @@ -628,3 +724,29 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
>  {
>  	return igt_wait(igt_get_runtime_pm_status() == status, 10000, 100);
>  }
> +
> +/**
> + * dmc_loaded:
> + * @debugfs: fd to the debugfs dir.
> +
> + * Check whether DMC FW is loaded or not. DMC FW is require for few Display C
> + * states like DC5 and DC6. FW does the Context Save and Restore during Display
> + * C States entry and exit.
> + *
> + * Returns:
> + * True if DMC FW is loaded otherwise false.
> + */
> +bool igt_pm_dmc_loaded(int debugfs)
> +{
> +	char buf[15];
> +	int len;
> +
> +	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
> +	if (len < 0)
> +		return true; /* no CSR support, no DMC requirement */
> +
> +	buf[len] = '\0';
> +
> +	igt_info("DMC: %s\n", buf);
> +	return strstr(buf, "fw loaded: yes");
> +}
> diff --git a/lib/igt_pm.h b/lib/igt_pm.h
> index 10cc6794..979b3463 100644
> --- a/lib/igt_pm.h
> +++ b/lib/igt_pm.h
> @@ -25,8 +25,8 @@
>  #define IGT_PM_H
>  
>  void igt_pm_enable_audio_runtime_pm(void);
> -int8_t *igt_pm_enable_sata_link_power_management(void);
> -void igt_pm_restore_sata_link_power_management(int8_t *pm_data);
> +void igt_pm_enable_sata_link_power_management(void);
> +void igt_pm_restore_sata_link_power_management(void);
>  
>  /**
>   * igt_runtime_pm_status:
> @@ -47,8 +47,10 @@ enum igt_runtime_pm_status {
>  };
>  
>  bool igt_setup_runtime_pm(void);
> +bool igt_disable_runtime_pm(void);
>  void igt_restore_runtime_pm(void);
>  enum igt_runtime_pm_status igt_get_runtime_pm_status(void);
>  bool igt_wait_for_pm_status(enum igt_runtime_pm_status status);
> +bool igt_pm_dmc_loaded(int debugfs);
>  
>  #endif /* IGT_PM_H */
> diff --git a/tests/i915/i915_pm_backlight.c b/tests/i915/i915_pm_backlight.c
> index 4c1bff5b..9a5f4c37 100644
> --- a/tests/i915/i915_pm_backlight.c
> +++ b/tests/i915/i915_pm_backlight.c
> @@ -47,7 +47,6 @@ struct context {
>  #define FADESPEED 100 /* milliseconds between steps */
>  
>  IGT_TEST_DESCRIPTION("Basic backlight sysfs test");
> -static int8_t *pm_data = NULL;
>  
>  static int backlight_read(int *result, const char *fname)
>  {
> @@ -235,7 +234,7 @@ igt_main
>  		igt_plane_set_fb(primary, &fb);
>  
>  		igt_display_commit2(&display, display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> -		pm_data = igt_pm_enable_sata_link_power_management();
> +		igt_pm_enable_sata_link_power_management();
>  	}
>  
>  	igt_subtest("basic-brightness")
> @@ -255,8 +254,7 @@ igt_main
>  
>  		igt_display_fini(&display);
>  		igt_remove_fb(display.drm_fd, &fb);
> -		igt_pm_restore_sata_link_power_management(pm_data);
> -		free(pm_data);
> +		igt_pm_restore_sata_link_power_management();
>  		close(display.drm_fd);
>  	}
>  }
> diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
> index a2c9d0ed..2d2f77be 100644
> --- a/tests/i915/i915_pm_rpm.c
> +++ b/tests/i915/i915_pm_rpm.c
> @@ -122,8 +122,6 @@ struct modeset_params lpsp_mode_params;
>  struct modeset_params non_lpsp_mode_params;
>  struct modeset_params *default_mode_params;
>  
> -static int8_t *pm_data = NULL;
> -
>  static int modprobe(const char *driver)
>  {
>  	return igt_kmod_load(driver, NULL);
> @@ -710,21 +708,6 @@ static void setup_pc8(void)
>  	has_pc8 = true;
>  }
>  
> -static bool dmc_loaded(void)
> -{
> -	char buf[15];
> -	int len;
> -
> -	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
> -	if (len < 0)
> -	    return true; /* no CSR support, no DMC requirement */
> -
> -	buf[len] = '\0';
> -
> -	igt_info("DMC: %s\n", buf);
> -	return strstr(buf, "fw loaded: yes");
> -}
> -
>  static void dump_file(int dir, const char *filename)
>  {
>  	char *contents;
> @@ -751,7 +734,7 @@ static bool setup_environment(void)
>  
>  	init_mode_set_data(&ms_data);
>  
> -	pm_data = igt_pm_enable_sata_link_power_management();
> +	igt_pm_enable_sata_link_power_management();
>  
>  	has_runtime_pm = igt_setup_runtime_pm();
>  	setup_pc8();
> @@ -759,7 +742,7 @@ static bool setup_environment(void)
>  	igt_info("Runtime PM support: %d\n", has_runtime_pm);
>  	igt_info("PC8 residency support: %d\n", has_pc8);
>  	igt_require(has_runtime_pm);
> -	igt_require(dmc_loaded());
> +	igt_require(igt_pm_dmc_loaded(debugfs));
>  
>  out:
>  	disable_all_screens(&ms_data);
> @@ -776,8 +759,7 @@ static void teardown_environment(void)
>  
>  	igt_restore_runtime_pm();
>  
> -	igt_pm_restore_sata_link_power_management(pm_data);
> -	free(pm_data);
> +	igt_pm_restore_sata_link_power_management();
>  
>  	fini_mode_set_data(&ms_data);
>  
> -- 
> 2.21.0
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] [PATCH i-g-t v12 1/6] lib/igt_pm: igt lib helper routines to support DC5/6 tests
  2019-08-14 17:39   ` Anshuman Gupta
  2019-08-15 11:52     ` Imre Deak
@ 2019-08-16 10:27     ` Anshuman Gupta
  2019-08-23 14:25       ` Imre Deak
  1 sibling, 1 reply; 27+ messages in thread
From: Anshuman Gupta @ 2019-08-16 10:27 UTC (permalink / raw)
  To: igt-dev; +Cc: Jyoti Yadav

From: Jyoti Yadav <jyoti.r.yadav@intel.com>

This patch does the following chnegs to lib/igt_pm.c

-dmc_loaded() will be used by new test i915_pm_dc.c which will validate
 Display C States. So moving the same to igt_pm library.

-Introduced igt_disable_runtime_pm() in order to disable runtime suspend
 for the function which support dc9.

-Changed the igt_pm_enable_sata_link_power_management() and
 igt_pm_restore_sata_link_power_management() in order to save
 and restore the sata link power policy by an exit handler.

v2: Simplify the comment section.
v3: Remove . from the subject line.
v4: Rebased, resolve conflicts in pm_rpm.c
    Included patch set version change log.
v5: Listing actual change in patch set changelog to make review easier.
v6: igt's lib added support for disabling runtime suspend,
    change in commit log. rebased due to test name pm_rpm changed
    to i915_pm_rpm.
v7: Addressed review comment by saving POWER_DIR values in
    igt_disable_runtime_pm(). [Imre]
v8: Addressed the review comment, igt_pm_enable_sata_link_power_management
    function to restore the original SATA link power policy if things fail
    by using an exit handler. [Imre]
v9: IGT failure fixture in i915_pm_backlight and i915_pm_rpm.
v10:Review comment fixup in sata_link_power_management
    lib functions. [Imre]

Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
 lib/igt_pm.c                   | 210 +++++++++++++++++++++++++--------
 lib/igt_pm.h                   |   6 +-
 tests/i915/i915_pm_backlight.c |   6 +-
 tests/i915/i915_pm_rpm.c       |  24 +---
 4 files changed, 172 insertions(+), 74 deletions(-)

diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index fd22273a..b91a0f96 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -38,6 +38,7 @@
 #include "drmtest.h"
 #include "igt_pm.h"
 #include "igt_aux.h"
+#include "igt_sysfs.h"
 
 /**
  * SECTION:igt_pm
@@ -63,11 +64,16 @@ enum {
 #define MIN_POWER_STR		"min_power\n"
 /* Remember to fix this if adding longer strings */
 #define MAX_POLICY_STRLEN	strlen(MAX_PERFORMANCE_STR)
+int8_t *__sata_pm_policies;
+int __scsi_host_cnt;
 
 static char __igt_pm_audio_runtime_power_save[64];
 static char * __igt_pm_audio_runtime_control_path;
 static char __igt_pm_audio_runtime_control[64];
 
+static void __igt_pm_sata_link_pm_exit_handler(int sig);
+static void __igt_pm_restore_sata_link_power_management(void);
+
 static int __igt_pm_audio_restore_runtime_pm(void)
 {
 	int fd;
@@ -280,39 +286,26 @@ void igt_pm_enable_audio_runtime_pm(void)
 		igt_debug("Failed to enable audio runtime PM! (%d)\n", -err);
 }
 
-/**
- * igt_pm_enable_sata_link_power_management:
- *
- * Enable the min_power policy for SATA link power management.
- * Without this we cannot reach deep runtime power states.
- *
- * We don't have any assertions on open since the system might not have
- * a SATA host.
- *
- * Returns:
- * An opaque pointer to the data needed to restore the default values
- * after the test has terminated, or NULL if SATA link power management
- * is not supported. This pointer should be freed when no longer used
- * (typically after having called restore_sata_link_power_management()).
- */
-int8_t *igt_pm_enable_sata_link_power_management(void)
+static void __igt_pm_enable_sata_link_power_management(void)
 {
 	int fd, i;
 	ssize_t len;
 	char *buf;
 	char *file_name;
-	int8_t *link_pm_policies = NULL;
+	int8_t policy;
 
 	file_name = malloc(PATH_MAX);
 	buf = malloc(MAX_POLICY_STRLEN + 1);
 
-	for (i = 0; ; i++) {
-		int8_t policy;
-
+	for (__scsi_host_cnt = 0; ; __scsi_host_cnt++) {
 		snprintf(file_name, PATH_MAX,
 			 "/sys/class/scsi_host/host%d/link_power_management_policy",
-			 i);
+			 __scsi_host_cnt);
 
+		/*
+		 * We don't have any assertions on open since the system
+		 * might not have a SATA host.
+		 */
 		fd = open(file_name, O_RDWR);
 		if (fd < 0)
 			break;
@@ -332,12 +325,26 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
 		else
 			policy = POLICY_UNKNOWN;
 
-		if (!(i % 256))
-			link_pm_policies = realloc(link_pm_policies,
-						   (i / 256 + 1) * 256 + 1);
+		if (!(__scsi_host_cnt % 256))
+			__sata_pm_policies = realloc(__sata_pm_policies,
+						     (__scsi_host_cnt / 256 + 1)
+						     * 256 + 1);
 
-		link_pm_policies[i] = policy;
-		link_pm_policies[i + 1] = 0;
+		__sata_pm_policies[__scsi_host_cnt] = policy;
+		close(fd);
+	}
+
+	igt_install_exit_handler(__igt_pm_sata_link_pm_exit_handler);
+
+	for (i = 0; i < __scsi_host_cnt; i++) {
+		snprintf(file_name, PATH_MAX,
+			 "/sys/class/scsi_host/host%d/link_power_management_policy",
+			 i);
+		fd = open(file_name, O_RDWR);
+		if (fd < 0)
+			break;
+
+		policy = __sata_pm_policies[i];
 
 		/* If the policy is something we don't know about,
 		 * don't touch it, since we might potentially break things.
@@ -355,39 +362,25 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
 	}
 	free(buf);
 	free(file_name);
-
-	return link_pm_policies;
 }
 
-/**
- * igt_pm_restore_sata_link_power_management:
- * @pm_data: An opaque pointer with saved link PM policies;
- *           If NULL is passed we force enable the "max_performance" policy.
- *
- * Restore the link power management policies to the values
- * prior to enabling min_power.
- *
- * Caveat: If the system supports hotplugging and hotplugging takes
- *         place during our testing so that the hosts change numbers
- *         we might restore the settings to the wrong hosts.
- */
-void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
-
+static void __igt_pm_restore_sata_link_power_management(void)
 {
 	int fd, i;
 	char *file_name;
 
+	if (!__sata_pm_policies)
+		return;
+
 	/* Disk runtime PM policies. */
 	file_name = malloc(PATH_MAX);
-	for (i = 0; ; i++) {
+	for (i = 0; i < __scsi_host_cnt; i++) {
 		int8_t policy;
 
-		if (!pm_data)
-			policy = POLICY_MAX_PERFORMANCE;
-		else if (pm_data[i] == POLICY_UNKNOWN)
+		if (__sata_pm_policies[i] == POLICY_UNKNOWN)
 			continue;
 		else
-			policy = pm_data[i];
+			policy = __sata_pm_policies[i];
 
 		snprintf(file_name, PATH_MAX,
 			 "/sys/class/scsi_host/host%d/link_power_management_policy",
@@ -421,7 +414,49 @@ void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
 		close(fd);
 	}
 	free(file_name);
+	free(__sata_pm_policies);
+	__sata_pm_policies = NULL;
 }
+
+/**
+ * igt_pm_enable_sata_link_power_management:
+ *
+ * Enable the min_power policy for SATA link power management.
+ * Without this we cannot reach deep runtime power states.
+ * Returns: Void
+ */
+void igt_pm_enable_sata_link_power_management(void)
+{
+	/* Check if has been already saved. */
+	if (__sata_pm_policies)
+		return;
+
+	 __igt_pm_enable_sata_link_power_management();
+}
+
+/**
+ * igt_pm_restore_sata_link_power_management:
+ *
+ * Restore the link power management policies to the values
+ * prior to enabling min_power.
+ *
+ * Caveat: If the system supports hotplugging and hotplugging takes
+ *         place during our testing so that the hosts change numbers
+ *         we might restore the settings to the wrong hosts.
+ */
+void igt_pm_restore_sata_link_power_management(void)
+{
+	if (!__sata_pm_policies)
+		return;
+
+	 __igt_pm_restore_sata_link_power_management();
+}
+
+static void __igt_pm_sata_link_pm_exit_handler(int sig)
+{
+	__igt_pm_restore_sata_link_power_management();
+}
+
 #define POWER_DIR "/sys/devices/pci0000:00/0000:00:02.0/power"
 /* We just leak this on exit ... */
 int pm_status_fd = -1;
@@ -585,6 +620,61 @@ bool igt_setup_runtime_pm(void)
 	return true;
 }
 
+bool igt_disable_runtime_pm(void)
+{
+	int fd;
+	ssize_t size;
+	char buf[6];
+
+	if (pm_status_fd < 0) {
+		fd = open(POWER_DIR "/autosuspend_delay_ms", O_RDWR);
+		if (fd < 0)
+			return false;
+
+		size = read(fd, __igt_pm_runtime_autosuspend,
+			    sizeof(__igt_pm_runtime_autosuspend));
+
+		if (size <= 0) {
+			close(fd);
+			return false;
+		}
+
+		strchomp(__igt_pm_runtime_autosuspend);
+		igt_install_exit_handler(__igt_pm_runtime_exit_handler);
+		close(fd);
+	}
+
+	/* We know we support runtime PM, let's try to disable it now. */
+	fd = open(POWER_DIR "/control", O_RDWR);
+	igt_assert_f(fd >= 0, "Can't open " POWER_DIR "/control\n");
+
+	if (pm_status_fd < 0) {
+		igt_assert(read(fd, __igt_pm_runtime_control,
+				sizeof(__igt_pm_runtime_control)) > 0);
+		strchomp(__igt_pm_runtime_control);
+
+		igt_debug("Saved runtime power management as '%s' and '%s'\n",
+			  __igt_pm_runtime_autosuspend,
+			  __igt_pm_runtime_control);
+	}
+
+	size = write(fd, "on\n", 3);
+	igt_assert(size == 3);
+	lseek(fd, 0, SEEK_SET);
+	size = read(fd, buf, ARRAY_SIZE(buf));
+	igt_assert(size == 3);
+	igt_assert(strncmp(buf, "on\n", 3) == 0);
+	close(fd);
+
+	if (pm_status_fd < 0) {
+		pm_status_fd = open(POWER_DIR "/runtime_status", O_RDONLY);
+		igt_assert_f(pm_status_fd >= 0,
+			     "Can't open " POWER_DIR "/runtime_status\n");
+	}
+
+	return true;
+}
+
 /**
  * igt_get_runtime_pm_status:
  *
@@ -628,3 +718,29 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
 {
 	return igt_wait(igt_get_runtime_pm_status() == status, 10000, 100);
 }
+
+/**
+ * dmc_loaded:
+ * @debugfs: fd to the debugfs dir.
+
+ * Check whether DMC FW is loaded or not. DMC FW is require for few Display C
+ * states like DC5 and DC6. FW does the Context Save and Restore during Display
+ * C States entry and exit.
+ *
+ * Returns:
+ * True if DMC FW is loaded otherwise false.
+ */
+bool igt_pm_dmc_loaded(int debugfs)
+{
+	char buf[15];
+	int len;
+
+	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
+	if (len < 0)
+		return true; /* no CSR support, no DMC requirement */
+
+	buf[len] = '\0';
+
+	igt_info("DMC: %s\n", buf);
+	return strstr(buf, "fw loaded: yes");
+}
diff --git a/lib/igt_pm.h b/lib/igt_pm.h
index 10cc6794..979b3463 100644
--- a/lib/igt_pm.h
+++ b/lib/igt_pm.h
@@ -25,8 +25,8 @@
 #define IGT_PM_H
 
 void igt_pm_enable_audio_runtime_pm(void);
-int8_t *igt_pm_enable_sata_link_power_management(void);
-void igt_pm_restore_sata_link_power_management(int8_t *pm_data);
+void igt_pm_enable_sata_link_power_management(void);
+void igt_pm_restore_sata_link_power_management(void);
 
 /**
  * igt_runtime_pm_status:
@@ -47,8 +47,10 @@ enum igt_runtime_pm_status {
 };
 
 bool igt_setup_runtime_pm(void);
+bool igt_disable_runtime_pm(void);
 void igt_restore_runtime_pm(void);
 enum igt_runtime_pm_status igt_get_runtime_pm_status(void);
 bool igt_wait_for_pm_status(enum igt_runtime_pm_status status);
+bool igt_pm_dmc_loaded(int debugfs);
 
 #endif /* IGT_PM_H */
diff --git a/tests/i915/i915_pm_backlight.c b/tests/i915/i915_pm_backlight.c
index 4c1bff5b..9a5f4c37 100644
--- a/tests/i915/i915_pm_backlight.c
+++ b/tests/i915/i915_pm_backlight.c
@@ -47,7 +47,6 @@ struct context {
 #define FADESPEED 100 /* milliseconds between steps */
 
 IGT_TEST_DESCRIPTION("Basic backlight sysfs test");
-static int8_t *pm_data = NULL;
 
 static int backlight_read(int *result, const char *fname)
 {
@@ -235,7 +234,7 @@ igt_main
 		igt_plane_set_fb(primary, &fb);
 
 		igt_display_commit2(&display, display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
-		pm_data = igt_pm_enable_sata_link_power_management();
+		igt_pm_enable_sata_link_power_management();
 	}
 
 	igt_subtest("basic-brightness")
@@ -255,8 +254,7 @@ igt_main
 
 		igt_display_fini(&display);
 		igt_remove_fb(display.drm_fd, &fb);
-		igt_pm_restore_sata_link_power_management(pm_data);
-		free(pm_data);
+		igt_pm_restore_sata_link_power_management();
 		close(display.drm_fd);
 	}
 }
diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
index 2168ff72..6879c513 100644
--- a/tests/i915/i915_pm_rpm.c
+++ b/tests/i915/i915_pm_rpm.c
@@ -123,8 +123,6 @@ struct modeset_params lpsp_mode_params;
 struct modeset_params non_lpsp_mode_params;
 struct modeset_params *default_mode_params;
 
-static int8_t *pm_data = NULL;
-
 static int modprobe(const char *driver)
 {
 	return igt_kmod_load(driver, NULL);
@@ -755,21 +753,6 @@ static void setup_pc8(void)
 	has_pc8 = true;
 }
 
-static bool dmc_loaded(void)
-{
-	char buf[15];
-	int len;
-
-	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
-	if (len < 0)
-	    return true; /* no CSR support, no DMC requirement */
-
-	buf[len] = '\0';
-
-	igt_info("DMC: %s\n", buf);
-	return strstr(buf, "fw loaded: yes");
-}
-
 static void dump_file(int dir, const char *filename)
 {
 	char *contents;
@@ -796,7 +779,7 @@ static bool setup_environment(void)
 
 	init_mode_set_data(&ms_data);
 
-	pm_data = igt_pm_enable_sata_link_power_management();
+	igt_pm_enable_sata_link_power_management();
 
 	has_runtime_pm = igt_setup_runtime_pm();
 	setup_pc8();
@@ -804,7 +787,7 @@ static bool setup_environment(void)
 	igt_info("Runtime PM support: %d\n", has_runtime_pm);
 	igt_info("PC8 residency support: %d\n", has_pc8);
 	igt_require(has_runtime_pm);
-	igt_require(dmc_loaded());
+	igt_require(igt_pm_dmc_loaded(debugfs));
 
 out:
 	disable_all_screens(&ms_data);
@@ -821,8 +804,7 @@ static void teardown_environment(void)
 
 	igt_restore_runtime_pm();
 
-	igt_pm_restore_sata_link_power_management(pm_data);
-	free(pm_data);
+	igt_pm_restore_sata_link_power_management();
 
 	fini_mode_set_data(&ms_data);
 
-- 
2.21.0

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ GitLab.Pipeline: warning for DC states igt tests patch series (rev17)
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (13 preceding siblings ...)
  2019-08-15  9:22 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
@ 2019-08-16 10:54 ` Patchwork
  2019-08-16 11:02 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
  2019-08-16 23:49 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  16 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-08-16 10:54 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series (rev17)
URL   : https://patchwork.freedesktop.org/series/56713/
State : warning

== Summary ==

Pipeline status: FAILED.

See https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/56821 for more details.

== Logs ==

For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/56821
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev17)
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (14 preceding siblings ...)
  2019-08-16 10:54 ` [igt-dev] ✗ GitLab.Pipeline: warning for DC states igt tests patch series (rev17) Patchwork
@ 2019-08-16 11:02 ` Patchwork
  2019-08-16 23:49 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
  16 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-08-16 11:02 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series (rev17)
URL   : https://patchwork.freedesktop.org/series/56713/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6716 -> IGTPW_3356
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56713/revisions/17/mbox/

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

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

### IGT changes ###

#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * igt@i915_selftest@live_execlists:
    - {fi-icl-guc}:       NOTRUN -> [DMESG-FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/fi-icl-guc/igt@i915_selftest@live_execlists.html

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

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

### IGT changes ###

#### Issues hit ####

  * igt@i915_module_load@reload:
    - fi-blb-e6850:       [PASS][2] -> [INCOMPLETE][3] ([fdo#107718])
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/fi-blb-e6850/igt@i915_module_load@reload.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/fi-blb-e6850/igt@i915_module_load@reload.html

  * igt@kms_busy@basic-flip-a:
    - fi-kbl-7567u:       [PASS][4] -> [SKIP][5] ([fdo#109271] / [fdo#109278]) +2 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/fi-kbl-7567u/igt@kms_busy@basic-flip-a.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/fi-kbl-7567u/igt@kms_busy@basic-flip-a.html

  * igt@prime_vgem@basic-fence-mmap:
    - fi-icl-u3:          [PASS][6] -> [DMESG-WARN][7] ([fdo#107724])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/fi-icl-u3/igt@prime_vgem@basic-fence-mmap.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/fi-icl-u3/igt@prime_vgem@basic-fence-mmap.html

  
#### Possible fixes ####

  * igt@gem_exec_reloc@basic-write-gtt:
    - fi-icl-u3:          [DMESG-WARN][8] ([fdo#107724]) -> [PASS][9]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/fi-icl-u3/igt@gem_exec_reloc@basic-write-gtt.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/fi-icl-u3/igt@gem_exec_reloc@basic-write-gtt.html

  * igt@i915_selftest@live_execlists:
    - fi-skl-gvtdvm:      [DMESG-FAIL][10] ([fdo#111108]) -> [PASS][11]
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/fi-skl-gvtdvm/igt@i915_selftest@live_execlists.html
    - fi-bwr-2160:        [DMESG-WARN][12] ([fdo#111115]) -> [PASS][13]
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/fi-bwr-2160/igt@i915_selftest@live_execlists.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/fi-bwr-2160/igt@i915_selftest@live_execlists.html

  * igt@i915_selftest@live_hangcheck:
    - fi-bwr-2160:        [DMESG-FAIL][14] ([fdo#111115]) -> [PASS][15]
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/fi-bwr-2160/igt@i915_selftest@live_hangcheck.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/fi-bwr-2160/igt@i915_selftest@live_hangcheck.html

  * igt@i915_selftest@live_requests:
    - fi-byt-j1900:       [INCOMPLETE][16] ([fdo#102657]) -> [PASS][17]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/fi-byt-j1900/igt@i915_selftest@live_requests.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/fi-byt-j1900/igt@i915_selftest@live_requests.html

  * igt@kms_frontbuffer_tracking@basic:
    - fi-icl-u3:          [FAIL][18] ([fdo#103167]) -> [PASS][19]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/fi-icl-u3/igt@kms_frontbuffer_tracking@basic.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#102657]: https://bugs.freedesktop.org/show_bug.cgi?id=102657
  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#107718]: https://bugs.freedesktop.org/show_bug.cgi?id=107718
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
  [fdo#111108]: https://bugs.freedesktop.org/show_bug.cgi?id=111108
  [fdo#111115]: https://bugs.freedesktop.org/show_bug.cgi?id=111115


Participating hosts (54 -> 46)
------------------------------

  Additional (1): fi-cfl-8700k 
  Missing    (9): fi-kbl-soraka fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-ctg-p8600 fi-icl-y fi-byt-clapper fi-bdw-samus 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5138 -> IGTPW_3356

  CI-20190529: 20190529
  CI_DRM_6716: 64ecd8f88d7b55de82ff414784ae4daca93d0577 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3356: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/
  IGT_5138: b9abe0bf6c478c4f6cac56bff286d6926ad8c0ab @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools



== Testlist changes ==

+igt@i915_pm_dc@dc5-dpms
+igt@i915_pm_dc@dc5-psr
+igt@i915_pm_dc@dc6-dpms
+igt@i915_pm_dc@dc6-psr

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✓ Fi.CI.IGT: success for DC states igt tests patch series (rev17)
  2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
                   ` (15 preceding siblings ...)
  2019-08-16 11:02 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
@ 2019-08-16 23:49 ` Patchwork
  16 siblings, 0 replies; 27+ messages in thread
From: Patchwork @ 2019-08-16 23:49 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev

== Series Details ==

Series: DC states igt tests patch series (rev17)
URL   : https://patchwork.freedesktop.org/series/56713/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_6716_full -> IGTPW_3356_full
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://patchwork.freedesktop.org/api/1.0/series/56713/revisions/17/mbox/

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

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

### IGT changes ###

#### Possible regressions ####

  * {igt@i915_pm_dc@dc6-dpms} (NEW):
    - shard-kbl:          NOTRUN -> [FAIL][1]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-kbl7/igt@i915_pm_dc@dc6-dpms.html

  
New tests
---------

  New tests have been introduced between CI_DRM_6716_full and IGTPW_3356_full:

### New IGT tests (4) ###

  * igt@i915_pm_dc@dc5-dpms:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0, 2.20] s

  * igt@i915_pm_dc@dc5-psr:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 3.31] s

  * igt@i915_pm_dc@dc6-dpms:
    - Statuses : 1 fail(s) 1 pass(s) 4 skip(s)
    - Exec time: [0.0, 3.37] s

  * igt@i915_pm_dc@dc6-psr:
    - Statuses : 1 pass(s) 5 skip(s)
    - Exec time: [0.0, 3.37] s

  

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

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

### IGT changes ###

#### Issues hit ####

  * igt@gem_exec_schedule@preempt-other-bsd1:
    - shard-iclb:         [PASS][2] -> [SKIP][3] ([fdo#109276]) +12 similar issues
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb1/igt@gem_exec_schedule@preempt-other-bsd1.html
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb3/igt@gem_exec_schedule@preempt-other-bsd1.html

  * igt@gem_exec_schedule@preemptive-hang-bsd:
    - shard-iclb:         [PASS][4] -> [SKIP][5] ([fdo#111325]) +2 similar issues
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb8/igt@gem_exec_schedule@preemptive-hang-bsd.html
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb2/igt@gem_exec_schedule@preemptive-hang-bsd.html

  * igt@i915_pm_rc6_residency@rc6-accuracy:
    - shard-snb:          [PASS][6] -> [SKIP][7] ([fdo#109271])
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-snb6/igt@i915_pm_rc6_residency@rc6-accuracy.html
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-snb4/igt@i915_pm_rc6_residency@rc6-accuracy.html

  * igt@i915_selftest@live_gtt:
    - shard-glk:          [PASS][8] -> [DMESG-WARN][9] ([fdo#110788])
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-glk1/igt@i915_selftest@live_gtt.html
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-glk5/igt@i915_selftest@live_gtt.html

  * igt@kms_frontbuffer_tracking@fbc-stridechange:
    - shard-iclb:         [PASS][10] -> [FAIL][11] ([fdo#103167]) +7 similar issues
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-stridechange.html
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb1/igt@kms_frontbuffer_tracking@fbc-stridechange.html

  * igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min:
    - shard-apl:          [PASS][12] -> [FAIL][13] ([fdo#108145])
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-apl3/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-apl6/igt@kms_plane_alpha_blend@pipe-a-constant-alpha-min.html

  * igt@kms_psr@psr2_no_drrs:
    - shard-iclb:         [PASS][14] -> [SKIP][15] ([fdo#109441])
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb2/igt@kms_psr@psr2_no_drrs.html
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb5/igt@kms_psr@psr2_no_drrs.html

  * igt@kms_vblank@pipe-c-ts-continuation-suspend:
    - shard-apl:          [PASS][16] -> [DMESG-WARN][17] ([fdo#108566]) +4 similar issues
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-apl7/igt@kms_vblank@pipe-c-ts-continuation-suspend.html
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-apl3/igt@kms_vblank@pipe-c-ts-continuation-suspend.html

  
#### Possible fixes ####

  * igt@gem_exec_schedule@deep-bsd:
    - shard-iclb:         [SKIP][18] ([fdo#111325]) -> [PASS][19] +6 similar issues
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb1/igt@gem_exec_schedule@deep-bsd.html
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb5/igt@gem_exec_schedule@deep-bsd.html

  * igt@gem_exec_schedule@preempt-bsd1:
    - shard-iclb:         [SKIP][20] ([fdo#109276]) -> [PASS][21] +17 similar issues
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb5/igt@gem_exec_schedule@preempt-bsd1.html
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb1/igt@gem_exec_schedule@preempt-bsd1.html

  * igt@gem_linear_blits@normal:
    - shard-iclb:         [INCOMPLETE][22] ([fdo#107713]) -> [PASS][23] +1 similar issue
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb7/igt@gem_linear_blits@normal.html
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb4/igt@gem_linear_blits@normal.html

  * igt@i915_suspend@debugfs-reader:
    - shard-apl:          [DMESG-WARN][24] ([fdo#108566]) -> [PASS][25] +9 similar issues
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-apl2/igt@i915_suspend@debugfs-reader.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-apl4/igt@i915_suspend@debugfs-reader.html

  * igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy:
    - shard-hsw:          [FAIL][26] ([fdo#105767]) -> [PASS][27]
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-hsw6/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-hsw1/igt@kms_cursor_legacy@2x-long-cursor-vs-flip-legacy.html

  * igt@kms_flip@flip-vs-suspend-interruptible:
    - shard-kbl:          [DMESG-WARN][28] ([fdo#103313]) -> [PASS][29]
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-kbl1/igt@kms_flip@flip-vs-suspend-interruptible.html
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-kbl6/igt@kms_flip@flip-vs-suspend-interruptible.html

  * igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-render:
    - shard-glk:          [FAIL][30] ([fdo#103167]) -> [PASS][31]
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-glk9/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-render.html
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-glk3/igt@kms_frontbuffer_tracking@fbc-2p-scndscrn-pri-indfb-draw-render.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt:
    - shard-iclb:         [FAIL][32] ([fdo#103167]) -> [PASS][33] +4 similar issues
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt.html
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb2/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-draw-mmap-gtt.html

  * igt@kms_psr2_su@page_flip:
    - shard-iclb:         [SKIP][34] ([fdo#109642] / [fdo#111068]) -> [PASS][35]
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb8/igt@kms_psr2_su@page_flip.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb2/igt@kms_psr2_su@page_flip.html

  * igt@kms_psr@psr2_cursor_plane_onoff:
    - shard-iclb:         [SKIP][36] ([fdo#109441]) -> [PASS][37] +2 similar issues
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb6/igt@kms_psr@psr2_cursor_plane_onoff.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb2/igt@kms_psr@psr2_cursor_plane_onoff.html

  * igt@kms_vblank@pipe-b-ts-continuation-suspend:
    - shard-kbl:          [INCOMPLETE][38] ([fdo#103665]) -> [PASS][39]
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-kbl6/igt@kms_vblank@pipe-b-ts-continuation-suspend.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-kbl6/igt@kms_vblank@pipe-b-ts-continuation-suspend.html

  
#### Warnings ####

  * igt@gem_mocs_settings@mocs-isolation-bsd2:
    - shard-iclb:         [SKIP][40] ([fdo#109276]) -> [FAIL][41] ([fdo#111330])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb7/igt@gem_mocs_settings@mocs-isolation-bsd2.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb4/igt@gem_mocs_settings@mocs-isolation-bsd2.html

  * igt@gem_mocs_settings@mocs-settings-bsd2:
    - shard-iclb:         [FAIL][42] ([fdo#111330]) -> [SKIP][43] ([fdo#109276])
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb4/igt@gem_mocs_settings@mocs-settings-bsd2.html
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb6/igt@gem_mocs_settings@mocs-settings-bsd2.html

  * igt@kms_dp_dsc@basic-dsc-enable-edp:
    - shard-iclb:         [SKIP][44] ([fdo#109349]) -> [DMESG-WARN][45] ([fdo#107724])
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_6716/shard-iclb1/igt@kms_dp_dsc@basic-dsc-enable-edp.html
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/shard-iclb2/igt@kms_dp_dsc@basic-dsc-enable-edp.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103167]: https://bugs.freedesktop.org/show_bug.cgi?id=103167
  [fdo#103313]: https://bugs.freedesktop.org/show_bug.cgi?id=103313
  [fdo#103665]: https://bugs.freedesktop.org/show_bug.cgi?id=103665
  [fdo#105767]: https://bugs.freedesktop.org/show_bug.cgi?id=105767
  [fdo#107713]: https://bugs.freedesktop.org/show_bug.cgi?id=107713
  [fdo#107724]: https://bugs.freedesktop.org/show_bug.cgi?id=107724
  [fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
  [fdo#108566]: https://bugs.freedesktop.org/show_bug.cgi?id=108566
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
  [fdo#109349]: https://bugs.freedesktop.org/show_bug.cgi?id=109349
  [fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110788]: https://bugs.freedesktop.org/show_bug.cgi?id=110788
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111325]: https://bugs.freedesktop.org/show_bug.cgi?id=111325
  [fdo#111330]: https://bugs.freedesktop.org/show_bug.cgi?id=111330


Participating hosts (10 -> 6)
------------------------------

  Missing    (4): pig-skl-6260u shard-skl pig-hsw-4770r pig-glk-j5005 


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

  * CI: CI-20190529 -> None
  * IGT: IGT_5138 -> IGTPW_3356
  * Piglit: piglit_4509 -> None

  CI-20190529: 20190529
  CI_DRM_6716: 64ecd8f88d7b55de82ff414784ae4daca93d0577 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_3356: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/
  IGT_5138: b9abe0bf6c478c4f6cac56bff286d6926ad8c0ab @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_3356/
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v12 1/6] lib/igt_pm: igt lib helper routines to support DC5/6 tests
  2019-08-16 10:27     ` Anshuman Gupta
@ 2019-08-23 14:25       ` Imre Deak
  2019-08-26  9:52         ` Petri Latvala
  0 siblings, 1 reply; 27+ messages in thread
From: Imre Deak @ 2019-08-23 14:25 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev, Jyoti Yadav

On Fri, Aug 16, 2019 at 03:57:34PM +0530, Anshuman Gupta wrote:
> From: Jyoti Yadav <jyoti.r.yadav@intel.com>
> 
> This patch does the following chnegs to lib/igt_pm.c
> 
> -dmc_loaded() will be used by new test i915_pm_dc.c which will validate
>  Display C States. So moving the same to igt_pm library.
> 
> -Introduced igt_disable_runtime_pm() in order to disable runtime suspend
>  for the function which support dc9.
> 
> -Changed the igt_pm_enable_sata_link_power_management() and
>  igt_pm_restore_sata_link_power_management() in order to save
>  and restore the sata link power policy by an exit handler.
> 
> v2: Simplify the comment section.
> v3: Remove . from the subject line.
> v4: Rebased, resolve conflicts in pm_rpm.c
>     Included patch set version change log.
> v5: Listing actual change in patch set changelog to make review easier.
> v6: igt's lib added support for disabling runtime suspend,
>     change in commit log. rebased due to test name pm_rpm changed
>     to i915_pm_rpm.
> v7: Addressed review comment by saving POWER_DIR values in
>     igt_disable_runtime_pm(). [Imre]
> v8: Addressed the review comment, igt_pm_enable_sata_link_power_management
>     function to restore the original SATA link power policy if things fail
>     by using an exit handler. [Imre]
> v9: IGT failure fixture in i915_pm_backlight and i915_pm_rpm.
> v10:Review comment fixup in sata_link_power_management
>     lib functions. [Imre]
> 
> Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
>  lib/igt_pm.c                   | 210 +++++++++++++++++++++++++--------
>  lib/igt_pm.h                   |   6 +-
>  tests/i915/i915_pm_backlight.c |   6 +-
>  tests/i915/i915_pm_rpm.c       |  24 +---
>  4 files changed, 172 insertions(+), 74 deletions(-)
> 
> diff --git a/lib/igt_pm.c b/lib/igt_pm.c
> index fd22273a..b91a0f96 100644
> --- a/lib/igt_pm.c
> +++ b/lib/igt_pm.c
> @@ -38,6 +38,7 @@
>  #include "drmtest.h"
>  #include "igt_pm.h"
>  #include "igt_aux.h"
> +#include "igt_sysfs.h"
>  
>  /**
>   * SECTION:igt_pm
> @@ -63,11 +64,16 @@ enum {
>  #define MIN_POWER_STR		"min_power\n"
>  /* Remember to fix this if adding longer strings */
>  #define MAX_POLICY_STRLEN	strlen(MAX_PERFORMANCE_STR)
> +int8_t *__sata_pm_policies;
> +int __scsi_host_cnt;
>  
>  static char __igt_pm_audio_runtime_power_save[64];
>  static char * __igt_pm_audio_runtime_control_path;
>  static char __igt_pm_audio_runtime_control[64];
>  
> +static void __igt_pm_sata_link_pm_exit_handler(int sig);
> +static void __igt_pm_restore_sata_link_power_management(void);
> +
>  static int __igt_pm_audio_restore_runtime_pm(void)
>  {
>  	int fd;
> @@ -280,39 +286,26 @@ void igt_pm_enable_audio_runtime_pm(void)
>  		igt_debug("Failed to enable audio runtime PM! (%d)\n", -err);
>  }
>  
> -/**
> - * igt_pm_enable_sata_link_power_management:
> - *
> - * Enable the min_power policy for SATA link power management.
> - * Without this we cannot reach deep runtime power states.
> - *
> - * We don't have any assertions on open since the system might not have
> - * a SATA host.
> - *
> - * Returns:
> - * An opaque pointer to the data needed to restore the default values
> - * after the test has terminated, or NULL if SATA link power management
> - * is not supported. This pointer should be freed when no longer used
> - * (typically after having called restore_sata_link_power_management()).
> - */
> -int8_t *igt_pm_enable_sata_link_power_management(void)
> +static void __igt_pm_enable_sata_link_power_management(void)
>  {
>  	int fd, i;
>  	ssize_t len;
>  	char *buf;
>  	char *file_name;
> -	int8_t *link_pm_policies = NULL;
> +	int8_t policy;
>  
>  	file_name = malloc(PATH_MAX);
>  	buf = malloc(MAX_POLICY_STRLEN + 1);
>  
> -	for (i = 0; ; i++) {
> -		int8_t policy;
> -
> +	for (__scsi_host_cnt = 0; ; __scsi_host_cnt++) {
>  		snprintf(file_name, PATH_MAX,
>  			 "/sys/class/scsi_host/host%d/link_power_management_policy",
> -			 i);
> +			 __scsi_host_cnt);
>  
> +		/*
> +		 * We don't have any assertions on open since the system
> +		 * might not have a SATA host.
> +		 */
>  		fd = open(file_name, O_RDWR);
>  		if (fd < 0)
>  			break;
> @@ -332,12 +325,26 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
>  		else
>  			policy = POLICY_UNKNOWN;
>  
> -		if (!(i % 256))
> -			link_pm_policies = realloc(link_pm_policies,
> -						   (i / 256 + 1) * 256 + 1);
> +		if (!(__scsi_host_cnt % 256))
> +			__sata_pm_policies = realloc(__sata_pm_policies,
> +						     (__scsi_host_cnt / 256 + 1)
> +						     * 256 + 1);
>  
> -		link_pm_policies[i] = policy;
> -		link_pm_policies[i + 1] = 0;
> +		__sata_pm_policies[__scsi_host_cnt] = policy;
> +		close(fd);
> +	}
> +
> +	igt_install_exit_handler(__igt_pm_sata_link_pm_exit_handler);
> +
> +	for (i = 0; i < __scsi_host_cnt; i++) {
> +		snprintf(file_name, PATH_MAX,
> +			 "/sys/class/scsi_host/host%d/link_power_management_policy",
> +			 i);
> +		fd = open(file_name, O_RDWR);
> +		if (fd < 0)
> +			break;
> +
> +		policy = __sata_pm_policies[i];
>  
>  		/* If the policy is something we don't know about,
>  		 * don't touch it, since we might potentially break things.
> @@ -355,39 +362,25 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
>  	}
>  	free(buf);
>  	free(file_name);
> -
> -	return link_pm_policies;
>  }
>  
> -/**
> - * igt_pm_restore_sata_link_power_management:
> - * @pm_data: An opaque pointer with saved link PM policies;
> - *           If NULL is passed we force enable the "max_performance" policy.
> - *
> - * Restore the link power management policies to the values
> - * prior to enabling min_power.
> - *
> - * Caveat: If the system supports hotplugging and hotplugging takes
> - *         place during our testing so that the hosts change numbers
> - *         we might restore the settings to the wrong hosts.
> - */
> -void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
> -
> +static void __igt_pm_restore_sata_link_power_management(void)
>  {
>  	int fd, i;
>  	char *file_name;
>  
> +	if (!__sata_pm_policies)
> +		return;
> +
>  	/* Disk runtime PM policies. */
>  	file_name = malloc(PATH_MAX);
> -	for (i = 0; ; i++) {
> +	for (i = 0; i < __scsi_host_cnt; i++) {
>  		int8_t policy;
>  
> -		if (!pm_data)
> -			policy = POLICY_MAX_PERFORMANCE;
> -		else if (pm_data[i] == POLICY_UNKNOWN)
> +		if (__sata_pm_policies[i] == POLICY_UNKNOWN)
>  			continue;
>  		else
> -			policy = pm_data[i];
> +			policy = __sata_pm_policies[i];
>  
>  		snprintf(file_name, PATH_MAX,
>  			 "/sys/class/scsi_host/host%d/link_power_management_policy",
> @@ -421,7 +414,49 @@ void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
>  		close(fd);
>  	}
>  	free(file_name);
> +	free(__sata_pm_policies);
> +	__sata_pm_policies = NULL;
>  }
> +
> +/**
> + * igt_pm_enable_sata_link_power_management:
> + *
> + * Enable the min_power policy for SATA link power management.
> + * Without this we cannot reach deep runtime power states.
> + * Returns: Void

No need for a comment on void returns.

> + */
> +void igt_pm_enable_sata_link_power_management(void)
> +{
> +	/* Check if has been already saved. */
> +	if (__sata_pm_policies)
> +		return;
> +
> +	 __igt_pm_enable_sata_link_power_management();
> +}
> +
> +/**
> + * igt_pm_restore_sata_link_power_management:
> + *
> + * Restore the link power management policies to the values
> + * prior to enabling min_power.
> + *
> + * Caveat: If the system supports hotplugging and hotplugging takes
> + *         place during our testing so that the hosts change numbers
> + *         we might restore the settings to the wrong hosts.
> + */
> +void igt_pm_restore_sata_link_power_management(void)
> +{
> +	if (!__sata_pm_policies)
> +		return;
> +
> +	 __igt_pm_restore_sata_link_power_management();
> +}
> +
> +static void __igt_pm_sata_link_pm_exit_handler(int sig)
> +{
> +	__igt_pm_restore_sata_link_power_management();
> +}
> +
>  #define POWER_DIR "/sys/devices/pci0000:00/0000:00:02.0/power"
>  /* We just leak this on exit ... */
>  int pm_status_fd = -1;
> @@ -585,6 +620,61 @@ bool igt_setup_runtime_pm(void)
>  	return true;
>  }
>  
> +bool igt_disable_runtime_pm(void)
> +{
> +	int fd;
> +	ssize_t size;
> +	char buf[6];
> +
> +	if (pm_status_fd < 0) {
> +		fd = open(POWER_DIR "/autosuspend_delay_ms", O_RDWR);
> +		if (fd < 0)
> +			return false;
> +
> +		size = read(fd, __igt_pm_runtime_autosuspend,
> +			    sizeof(__igt_pm_runtime_autosuspend));
> +
> +		if (size <= 0) {
> +			close(fd);
> +			return false;
> +		}
> +
> +		strchomp(__igt_pm_runtime_autosuspend);
> +		igt_install_exit_handler(__igt_pm_runtime_exit_handler);
> +		close(fd);
> +	}
> +
> +	/* We know we support runtime PM, let's try to disable it now. */
> +	fd = open(POWER_DIR "/control", O_RDWR);
> +	igt_assert_f(fd >= 0, "Can't open " POWER_DIR "/control\n");
> +
> +	if (pm_status_fd < 0) {
> +		igt_assert(read(fd, __igt_pm_runtime_control,
> +				sizeof(__igt_pm_runtime_control)) > 0);
> +		strchomp(__igt_pm_runtime_control);
> +
> +		igt_debug("Saved runtime power management as '%s' and '%s'\n",
> +			  __igt_pm_runtime_autosuspend,
> +			  __igt_pm_runtime_control);
> +	}

We require to call igt_setup_runtime_pm() before
igt_disable_runtime_pm(), so the original state will be saved away
already, so instead of the above duplication of saving the state we
should just igt_assert(pm_status_fd >= 0);

> +
> +	size = write(fd, "on\n", 3);
> +	igt_assert(size == 3);
> +	lseek(fd, 0, SEEK_SET);
> +	size = read(fd, buf, ARRAY_SIZE(buf));
> +	igt_assert(size == 3);
> +	igt_assert(strncmp(buf, "on\n", 3) == 0);
> +	close(fd);
> +
> +	if (pm_status_fd < 0) {
> +		pm_status_fd = open(POWER_DIR "/runtime_status", O_RDONLY);
> +		igt_assert_f(pm_status_fd >= 0,
> +			     "Can't open " POWER_DIR "/runtime_status\n");
> +	}
> +
> +	return true;
> +}
> +
>  /**
>   * igt_get_runtime_pm_status:
>   *
> @@ -628,3 +718,29 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status)
>  {
>  	return igt_wait(igt_get_runtime_pm_status() == status, 10000, 100);
>  }
> +
> +/**
> + * dmc_loaded:
> + * @debugfs: fd to the debugfs dir.
> +
> + * Check whether DMC FW is loaded or not. DMC FW is require for few Display C
> + * states like DC5 and DC6. FW does the Context Save and Restore during Display
> + * C States entry and exit.
> + *
> + * Returns:
> + * True if DMC FW is loaded otherwise false.
> + */
> +bool igt_pm_dmc_loaded(int debugfs)
> +{
> +	char buf[15];
> +	int len;
> +
> +	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
> +	if (len < 0)
> +		return true; /* no CSR support, no DMC requirement */
> +
> +	buf[len] = '\0';
> +
> +	igt_info("DMC: %s\n", buf);
> +	return strstr(buf, "fw loaded: yes");
> +}
> diff --git a/lib/igt_pm.h b/lib/igt_pm.h
> index 10cc6794..979b3463 100644
> --- a/lib/igt_pm.h
> +++ b/lib/igt_pm.h
> @@ -25,8 +25,8 @@
>  #define IGT_PM_H
>  
>  void igt_pm_enable_audio_runtime_pm(void);
> -int8_t *igt_pm_enable_sata_link_power_management(void);
> -void igt_pm_restore_sata_link_power_management(int8_t *pm_data);
> +void igt_pm_enable_sata_link_power_management(void);
> +void igt_pm_restore_sata_link_power_management(void);
>  
>  /**
>   * igt_runtime_pm_status:
> @@ -47,8 +47,10 @@ enum igt_runtime_pm_status {
>  };
>  
>  bool igt_setup_runtime_pm(void);
> +bool igt_disable_runtime_pm(void);
>  void igt_restore_runtime_pm(void);
>  enum igt_runtime_pm_status igt_get_runtime_pm_status(void);
>  bool igt_wait_for_pm_status(enum igt_runtime_pm_status status);
> +bool igt_pm_dmc_loaded(int debugfs);
>  
>  #endif /* IGT_PM_H */
> diff --git a/tests/i915/i915_pm_backlight.c b/tests/i915/i915_pm_backlight.c
> index 4c1bff5b..9a5f4c37 100644
> --- a/tests/i915/i915_pm_backlight.c
> +++ b/tests/i915/i915_pm_backlight.c
> @@ -47,7 +47,6 @@ struct context {
>  #define FADESPEED 100 /* milliseconds between steps */
>  
>  IGT_TEST_DESCRIPTION("Basic backlight sysfs test");
> -static int8_t *pm_data = NULL;
>  
>  static int backlight_read(int *result, const char *fname)
>  {
> @@ -235,7 +234,7 @@ igt_main
>  		igt_plane_set_fb(primary, &fb);
>  
>  		igt_display_commit2(&display, display.is_atomic ? COMMIT_ATOMIC : COMMIT_LEGACY);
> -		pm_data = igt_pm_enable_sata_link_power_management();
> +		igt_pm_enable_sata_link_power_management();
>  	}
>  
>  	igt_subtest("basic-brightness")
> @@ -255,8 +254,7 @@ igt_main
>  
>  		igt_display_fini(&display);
>  		igt_remove_fb(display.drm_fd, &fb);
> -		igt_pm_restore_sata_link_power_management(pm_data);
> -		free(pm_data);
> +		igt_pm_restore_sata_link_power_management();
>  		close(display.drm_fd);
>  	}
>  }
> diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
> index 2168ff72..6879c513 100644
> --- a/tests/i915/i915_pm_rpm.c
> +++ b/tests/i915/i915_pm_rpm.c
> @@ -123,8 +123,6 @@ struct modeset_params lpsp_mode_params;
>  struct modeset_params non_lpsp_mode_params;
>  struct modeset_params *default_mode_params;
>  
> -static int8_t *pm_data = NULL;
> -
>  static int modprobe(const char *driver)
>  {
>  	return igt_kmod_load(driver, NULL);
> @@ -755,21 +753,6 @@ static void setup_pc8(void)
>  	has_pc8 = true;
>  }
>  
> -static bool dmc_loaded(void)
> -{
> -	char buf[15];
> -	int len;
> -
> -	len = igt_sysfs_read(debugfs, "i915_dmc_info", buf, sizeof(buf) - 1);
> -	if (len < 0)
> -	    return true; /* no CSR support, no DMC requirement */
> -
> -	buf[len] = '\0';
> -
> -	igt_info("DMC: %s\n", buf);
> -	return strstr(buf, "fw loaded: yes");
> -}
> -
>  static void dump_file(int dir, const char *filename)
>  {
>  	char *contents;
> @@ -796,7 +779,7 @@ static bool setup_environment(void)
>  
>  	init_mode_set_data(&ms_data);
>  
> -	pm_data = igt_pm_enable_sata_link_power_management();
> +	igt_pm_enable_sata_link_power_management();
>  
>  	has_runtime_pm = igt_setup_runtime_pm();
>  	setup_pc8();
> @@ -804,7 +787,7 @@ static bool setup_environment(void)
>  	igt_info("Runtime PM support: %d\n", has_runtime_pm);
>  	igt_info("PC8 residency support: %d\n", has_pc8);
>  	igt_require(has_runtime_pm);
> -	igt_require(dmc_loaded());
> +	igt_require(igt_pm_dmc_loaded(debugfs));
>  
>  out:
>  	disable_all_screens(&ms_data);
> @@ -821,8 +804,7 @@ static void teardown_environment(void)
>  
>  	igt_restore_runtime_pm();
>  
> -	igt_pm_restore_sata_link_power_management(pm_data);
> -	free(pm_data);
> +	igt_pm_restore_sata_link_power_management();
>  
>  	fini_mode_set_data(&ms_data);
>  
> -- 
> 2.21.0
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v12 4/6] tests/i915/i915_pm_dc: Added test for DC5 during DPMS
  2019-08-14 17:46   ` Anshuman Gupta
@ 2019-08-23 14:30     ` Imre Deak
  2019-08-27 11:49       ` Gupta, Anshuman
  0 siblings, 1 reply; 27+ messages in thread
From: Imre Deak @ 2019-08-23 14:30 UTC (permalink / raw)
  To: Anshuman Gupta; +Cc: igt-dev, Jyoti Yadav

On Wed, Aug 14, 2019 at 11:16:21PM +0530, Anshuman Gupta wrote:
> From: Jyoti Yadav <jyoti.r.yadav@intel.com>
> 
> Added new subtest for DC5 entry during DPMS on/off cycle.
> During DPMS on/off cycle DC5 counter is incremented.
> 
> v2: Rename the subtest with meaningful name.
> v3: Rebased.
> v4: Addressed review comments by removing leftover code
>     cleanup().
> v5: Addressed the review comment by removing redundant
>     read_dc_counter() suggested by Imre.
>     Listing actual change in patch set changelog to make review easier.
> v6: Three way patch applied, no functional change.
> v7: Disabling runtime suspend for the platform which support, DC9.
>     rebased due to test name pm_dc changed to i915_pm_dc, aligning to
>     other PM tests.
> v8: Introduced setup_dc_dpms() in order to disable runtime pm, restoring
>     POWER_DIR values to its original and enabling runtime pm  for other
>     followed sub-tests.
> v9: Check DC5 counter value after DPMS off, broke the dpms_on_off
>     function to dpms_on and dpms_off. [Imre]
> v10:Added AT_LEAST_Gen11 condition instead of IS_ICELAKE in order to
>     disable runtime suspend. [Imre]
> 
> Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
>  tests/i915/i915_pm_dc.c | 62 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 62 insertions(+)
> 
> diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
> index f261ecbf..f03d30a8 100644
> --- a/tests/i915/i915_pm_dc.c
> +++ b/tests/i915/i915_pm_dc.c
> @@ -46,6 +46,7 @@ typedef struct {
>  	enum psr_mode op_psr_mode;
>  	drmModeModeInfo *mode;
>  	igt_output_t *output;
> +	bool runtime_suspend_disabled;
>  } data_t;
>  
>  bool dc_state_wait_entry(int drm_fd, int dc_flag, int prev_dc_count);
> @@ -173,6 +174,62 @@ static void test_dc_state_psr(data_t *data, int dc_flag)
>  	cleanup(data);
>  }
>  
> +static void setup_dc_dpms(data_t *data)
> +{
> +	if (IS_BROXTON(data->devid) || IS_GEMINILAKE(data->devid) ||
> +	    AT_LEAST_GEN(data->devid, 11)) {
> +		data->runtime_suspend_disabled = igt_disable_runtime_pm();
> +		igt_require_f(data->runtime_suspend_disabled,
> +			      "unable to disable runtime pm for i915\n");
> +	} else {
> +		data->runtime_suspend_disabled = false;
> +	}
> +}
> +
> +static void dpms_off(data_t *data)
> +{
> +	for (int i = 0; i < data->display.n_outputs; i++) {
> +		kmstest_set_connector_dpms(data->drm_fd,
> +					   data->display.outputs[i].config.connector,
> +					   DRM_MODE_DPMS_OFF);
> +	}
> +
> +	if (!data->runtime_suspend_disabled)
> +		igt_assert(igt_wait_for_pm_status
> +			   (IGT_RUNTIME_PM_STATUS_SUSPENDED));
> +}
> +
> +static void dpms_on(data_t *data)
> +{
> +	for (int i = 0; i < data->display.n_outputs; i++) {
> +		kmstest_set_connector_dpms(data->drm_fd,
> +					   data->display.outputs[i].config.connector,
> +					   DRM_MODE_DPMS_ON);
> +	}
> +
> +	if (!data->runtime_suspend_disabled)
> +		igt_assert(igt_wait_for_pm_status
> +			   (IGT_RUNTIME_PM_STATUS_ACTIVE));
> +}
> +
> +static void test_dc_state_dpms(data_t *data, int dc_flag)
> +{
> +	uint32_t dc_counter;
> +
> +	dc_counter = read_dc_counter(data->drm_fd, dc_flag);
> +	dpms_off(data);
> +	check_dc_counter(data->drm_fd, dc_flag, dc_counter);
> +	dpms_on(data);
> +
> +	/* if runtime PM is disabled for i915 restore it,
> +	 * so any other sub-test can use runtime-PM.
> +	 */
> +	if (data->runtime_suspend_disabled) {
> +		igt_restore_runtime_pm();
> +		igt_setup_runtime_pm();
> +	}

The above restores what setup_dc_dpms() did so could you move it a
cleanup_dc_dpms() function for clarity?

> +}
> +
>  int main(int argc, char *argv[])
>  {
>  	bool has_runtime_pm;
> @@ -210,6 +267,11 @@ int main(int argc, char *argv[])
>  		test_dc_state_psr(&data, CHECK_DC6);
>  	}
>  
> +	igt_subtest("dc5-dpms") {
> +		setup_dc_dpms(&data);

Could you move the above call to test_dc_state_dpms() and check for
CHECK_DC5 withing setup_dc_dpms()?

I couldn't spot any other issues so with these changes on the patchset:
Reviewed-by: Imre Deak <imre.deak@intel.com>

Could you please resend the whole patchset?

> +		test_dc_state_dpms(&data, CHECK_DC5);
> +	}
> +
>  	igt_fixture {
>  		close(data.debugfs_fd);
>  		display_fini(&data);
> -- 
> 2.21.0
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v12 1/6] lib/igt_pm: igt lib helper routines to support DC5/6 tests
  2019-08-23 14:25       ` Imre Deak
@ 2019-08-26  9:52         ` Petri Latvala
  0 siblings, 0 replies; 27+ messages in thread
From: Petri Latvala @ 2019-08-26  9:52 UTC (permalink / raw)
  To: Imre Deak; +Cc: igt-dev, Jyoti Yadav

On Fri, Aug 23, 2019 at 05:25:40PM +0300, Imre Deak wrote:
> On Fri, Aug 16, 2019 at 03:57:34PM +0530, Anshuman Gupta wrote:
> > From: Jyoti Yadav <jyoti.r.yadav@intel.com>
> > 
> > This patch does the following chnegs to lib/igt_pm.c
> > 
> > -dmc_loaded() will be used by new test i915_pm_dc.c which will validate
> >  Display C States. So moving the same to igt_pm library.
> > 
> > -Introduced igt_disable_runtime_pm() in order to disable runtime suspend
> >  for the function which support dc9.
> > 
> > -Changed the igt_pm_enable_sata_link_power_management() and
> >  igt_pm_restore_sata_link_power_management() in order to save
> >  and restore the sata link power policy by an exit handler.
> > 
> > v2: Simplify the comment section.
> > v3: Remove . from the subject line.
> > v4: Rebased, resolve conflicts in pm_rpm.c
> >     Included patch set version change log.
> > v5: Listing actual change in patch set changelog to make review easier.
> > v6: igt's lib added support for disabling runtime suspend,
> >     change in commit log. rebased due to test name pm_rpm changed
> >     to i915_pm_rpm.
> > v7: Addressed review comment by saving POWER_DIR values in
> >     igt_disable_runtime_pm(). [Imre]
> > v8: Addressed the review comment, igt_pm_enable_sata_link_power_management
> >     function to restore the original SATA link power policy if things fail
> >     by using an exit handler. [Imre]
> > v9: IGT failure fixture in i915_pm_backlight and i915_pm_rpm.
> > v10:Review comment fixup in sata_link_power_management
> >     lib functions. [Imre]
> > 
> > Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
> > Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> > ---
> >  lib/igt_pm.c                   | 210 +++++++++++++++++++++++++--------
> >  lib/igt_pm.h                   |   6 +-
> >  tests/i915/i915_pm_backlight.c |   6 +-
> >  tests/i915/i915_pm_rpm.c       |  24 +---
> >  4 files changed, 172 insertions(+), 74 deletions(-)
> > 
> > diff --git a/lib/igt_pm.c b/lib/igt_pm.c
> > index fd22273a..b91a0f96 100644
> > --- a/lib/igt_pm.c
> > +++ b/lib/igt_pm.c
> > @@ -38,6 +38,7 @@
> >  #include "drmtest.h"
> >  #include "igt_pm.h"
> >  #include "igt_aux.h"
> > +#include "igt_sysfs.h"
> >  
> >  /**
> >   * SECTION:igt_pm
> > @@ -63,11 +64,16 @@ enum {
> >  #define MIN_POWER_STR		"min_power\n"
> >  /* Remember to fix this if adding longer strings */
> >  #define MAX_POLICY_STRLEN	strlen(MAX_PERFORMANCE_STR)
> > +int8_t *__sata_pm_policies;
> > +int __scsi_host_cnt;
> >  
> >  static char __igt_pm_audio_runtime_power_save[64];
> >  static char * __igt_pm_audio_runtime_control_path;
> >  static char __igt_pm_audio_runtime_control[64];
> >  
> > +static void __igt_pm_sata_link_pm_exit_handler(int sig);
> > +static void __igt_pm_restore_sata_link_power_management(void);
> > +
> >  static int __igt_pm_audio_restore_runtime_pm(void)
> >  {
> >  	int fd;
> > @@ -280,39 +286,26 @@ void igt_pm_enable_audio_runtime_pm(void)
> >  		igt_debug("Failed to enable audio runtime PM! (%d)\n", -err);
> >  }
> >  
> > -/**
> > - * igt_pm_enable_sata_link_power_management:
> > - *
> > - * Enable the min_power policy for SATA link power management.
> > - * Without this we cannot reach deep runtime power states.
> > - *
> > - * We don't have any assertions on open since the system might not have
> > - * a SATA host.
> > - *
> > - * Returns:
> > - * An opaque pointer to the data needed to restore the default values
> > - * after the test has terminated, or NULL if SATA link power management
> > - * is not supported. This pointer should be freed when no longer used
> > - * (typically after having called restore_sata_link_power_management()).
> > - */
> > -int8_t *igt_pm_enable_sata_link_power_management(void)
> > +static void __igt_pm_enable_sata_link_power_management(void)
> >  {
> >  	int fd, i;
> >  	ssize_t len;
> >  	char *buf;
> >  	char *file_name;
> > -	int8_t *link_pm_policies = NULL;
> > +	int8_t policy;
> >  
> >  	file_name = malloc(PATH_MAX);
> >  	buf = malloc(MAX_POLICY_STRLEN + 1);
> >  
> > -	for (i = 0; ; i++) {
> > -		int8_t policy;
> > -
> > +	for (__scsi_host_cnt = 0; ; __scsi_host_cnt++) {
> >  		snprintf(file_name, PATH_MAX,
> >  			 "/sys/class/scsi_host/host%d/link_power_management_policy",
> > -			 i);
> > +			 __scsi_host_cnt);
> >  
> > +		/*
> > +		 * We don't have any assertions on open since the system
> > +		 * might not have a SATA host.
> > +		 */
> >  		fd = open(file_name, O_RDWR);
> >  		if (fd < 0)
> >  			break;
> > @@ -332,12 +325,26 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
> >  		else
> >  			policy = POLICY_UNKNOWN;
> >  
> > -		if (!(i % 256))
> > -			link_pm_policies = realloc(link_pm_policies,
> > -						   (i / 256 + 1) * 256 + 1);
> > +		if (!(__scsi_host_cnt % 256))
> > +			__sata_pm_policies = realloc(__sata_pm_policies,
> > +						     (__scsi_host_cnt / 256 + 1)
> > +						     * 256 + 1);
> >  
> > -		link_pm_policies[i] = policy;
> > -		link_pm_policies[i + 1] = 0;
> > +		__sata_pm_policies[__scsi_host_cnt] = policy;
> > +		close(fd);
> > +	}
> > +
> > +	igt_install_exit_handler(__igt_pm_sata_link_pm_exit_handler);
> > +
> > +	for (i = 0; i < __scsi_host_cnt; i++) {
> > +		snprintf(file_name, PATH_MAX,
> > +			 "/sys/class/scsi_host/host%d/link_power_management_policy",
> > +			 i);
> > +		fd = open(file_name, O_RDWR);
> > +		if (fd < 0)
> > +			break;
> > +
> > +		policy = __sata_pm_policies[i];
> >  
> >  		/* If the policy is something we don't know about,
> >  		 * don't touch it, since we might potentially break things.
> > @@ -355,39 +362,25 @@ int8_t *igt_pm_enable_sata_link_power_management(void)
> >  	}
> >  	free(buf);
> >  	free(file_name);
> > -
> > -	return link_pm_policies;
> >  }
> >  
> > -/**
> > - * igt_pm_restore_sata_link_power_management:
> > - * @pm_data: An opaque pointer with saved link PM policies;
> > - *           If NULL is passed we force enable the "max_performance" policy.
> > - *
> > - * Restore the link power management policies to the values
> > - * prior to enabling min_power.
> > - *
> > - * Caveat: If the system supports hotplugging and hotplugging takes
> > - *         place during our testing so that the hosts change numbers
> > - *         we might restore the settings to the wrong hosts.
> > - */
> > -void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
> > -
> > +static void __igt_pm_restore_sata_link_power_management(void)
> >  {
> >  	int fd, i;
> >  	char *file_name;
> >  
> > +	if (!__sata_pm_policies)
> > +		return;
> > +
> >  	/* Disk runtime PM policies. */
> >  	file_name = malloc(PATH_MAX);
> > -	for (i = 0; ; i++) {
> > +	for (i = 0; i < __scsi_host_cnt; i++) {
> >  		int8_t policy;
> >  
> > -		if (!pm_data)
> > -			policy = POLICY_MAX_PERFORMANCE;
> > -		else if (pm_data[i] == POLICY_UNKNOWN)
> > +		if (__sata_pm_policies[i] == POLICY_UNKNOWN)
> >  			continue;
> >  		else
> > -			policy = pm_data[i];
> > +			policy = __sata_pm_policies[i];
> >  
> >  		snprintf(file_name, PATH_MAX,
> >  			 "/sys/class/scsi_host/host%d/link_power_management_policy",
> > @@ -421,7 +414,49 @@ void igt_pm_restore_sata_link_power_management(int8_t *pm_data)
> >  		close(fd);
> >  	}
> >  	free(file_name);
> > +	free(__sata_pm_policies);
> > +	__sata_pm_policies = NULL;
> >  }
> > +
> > +/**
> > + * igt_pm_enable_sata_link_power_management:
> > + *
> > + * Enable the min_power policy for SATA link power management.
> > + * Without this we cannot reach deep runtime power states.
> > + * Returns: Void
> 
> No need for a comment on void returns.
> 
> > + */
> > +void igt_pm_enable_sata_link_power_management(void)
> > +{
> > +	/* Check if has been already saved. */
> > +	if (__sata_pm_policies)
> > +		return;
> > +
> > +	 __igt_pm_enable_sata_link_power_management();
> > +}
> > +
> > +/**
> > + * igt_pm_restore_sata_link_power_management:
> > + *
> > + * Restore the link power management policies to the values
> > + * prior to enabling min_power.
> > + *
> > + * Caveat: If the system supports hotplugging and hotplugging takes
> > + *         place during our testing so that the hosts change numbers
> > + *         we might restore the settings to the wrong hosts.
> > + */
> > +void igt_pm_restore_sata_link_power_management(void)
> > +{
> > +	if (!__sata_pm_policies)
> > +		return;
> > +
> > +	 __igt_pm_restore_sata_link_power_management();
> > +}
> > +
> > +static void __igt_pm_sata_link_pm_exit_handler(int sig)
> > +{
> > +	__igt_pm_restore_sata_link_power_management();
> > +}
> > +
> >  #define POWER_DIR "/sys/devices/pci0000:00/0000:00:02.0/power"
> >  /* We just leak this on exit ... */
> >  int pm_status_fd = -1;
> > @@ -585,6 +620,61 @@ bool igt_setup_runtime_pm(void)
> >  	return true;
> >  }
> >  
> > +bool igt_disable_runtime_pm(void)
> > +{
> > +	int fd;
> > +	ssize_t size;
> > +	char buf[6];
> > +
> > +	if (pm_status_fd < 0) {
> > +		fd = open(POWER_DIR "/autosuspend_delay_ms", O_RDWR);
> > +		if (fd < 0)
> > +			return false;
> > +
> > +		size = read(fd, __igt_pm_runtime_autosuspend,
> > +			    sizeof(__igt_pm_runtime_autosuspend));
> > +
> > +		if (size <= 0) {
> > +			close(fd);
> > +			return false;
> > +		}
> > +
> > +		strchomp(__igt_pm_runtime_autosuspend);
> > +		igt_install_exit_handler(__igt_pm_runtime_exit_handler);
> > +		close(fd);
> > +	}
> > +
> > +	/* We know we support runtime PM, let's try to disable it now. */
> > +	fd = open(POWER_DIR "/control", O_RDWR);
> > +	igt_assert_f(fd >= 0, "Can't open " POWER_DIR "/control\n");
> > +
> > +	if (pm_status_fd < 0) {
> > +		igt_assert(read(fd, __igt_pm_runtime_control,
> > +				sizeof(__igt_pm_runtime_control)) > 0);
> > +		strchomp(__igt_pm_runtime_control);
> > +
> > +		igt_debug("Saved runtime power management as '%s' and '%s'\n",
> > +			  __igt_pm_runtime_autosuspend,
> > +			  __igt_pm_runtime_control);
> > +	}
> 
> We require to call igt_setup_runtime_pm() before
> igt_disable_runtime_pm(), so the original state will be saved away
> already, so instead of the above duplication of saving the state we
> should just igt_assert(pm_status_fd >= 0);


Just a drive-by comment here, use igt_assert_fd(pm_status_fd) instead
of writing it out.


-- 
Petri Latvala
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v12 4/6] tests/i915/i915_pm_dc: Added test for DC5 during DPMS
  2019-08-23 14:30     ` Imre Deak
@ 2019-08-27 11:49       ` Gupta, Anshuman
  2019-08-27 12:14         ` Imre Deak
  0 siblings, 1 reply; 27+ messages in thread
From: Gupta, Anshuman @ 2019-08-27 11:49 UTC (permalink / raw)
  To: imre.deak; +Cc: igt-dev, Jyoti Yadav



On 8/23/2019 8:00 PM, Imre Deak wrote:
> On Wed, Aug 14, 2019 at 11:16:21PM +0530, Anshuman Gupta wrote:
>> From: Jyoti Yadav <jyoti.r.yadav@intel.com>
>>
>> Added new subtest for DC5 entry during DPMS on/off cycle.
>> During DPMS on/off cycle DC5 counter is incremented.
>>
>> v2: Rename the subtest with meaningful name.
>> v3: Rebased.
>> v4: Addressed review comments by removing leftover code
>>      cleanup().
>> v5: Addressed the review comment by removing redundant
>>      read_dc_counter() suggested by Imre.
>>      Listing actual change in patch set changelog to make review easier.
>> v6: Three way patch applied, no functional change.
>> v7: Disabling runtime suspend for the platform which support, DC9.
>>      rebased due to test name pm_dc changed to i915_pm_dc, aligning to
>>      other PM tests.
>> v8: Introduced setup_dc_dpms() in order to disable runtime pm, restoring
>>      POWER_DIR values to its original and enabling runtime pm  for other
>>      followed sub-tests.
>> v9: Check DC5 counter value after DPMS off, broke the dpms_on_off
>>      function to dpms_on and dpms_off. [Imre]
>> v10:Added AT_LEAST_Gen11 condition instead of IS_ICELAKE in order to
>>      disable runtime suspend. [Imre]
>>
>> Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
>> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
>> ---
>>   tests/i915/i915_pm_dc.c | 62 +++++++++++++++++++++++++++++++++++++++++
>>   1 file changed, 62 insertions(+)
>>
>> diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
>> index f261ecbf..f03d30a8 100644
>> --- a/tests/i915/i915_pm_dc.c
>> +++ b/tests/i915/i915_pm_dc.c
>> @@ -46,6 +46,7 @@ typedef struct {
>>   	enum psr_mode op_psr_mode;
>>   	drmModeModeInfo *mode;
>>   	igt_output_t *output;
>> +	bool runtime_suspend_disabled;
>>   } data_t;
>>   
>>   bool dc_state_wait_entry(int drm_fd, int dc_flag, int prev_dc_count);
>> @@ -173,6 +174,62 @@ static void test_dc_state_psr(data_t *data, int dc_flag)
>>   	cleanup(data);
>>   }
>>   
>> +static void setup_dc_dpms(data_t *data)
>> +{
>> +	if (IS_BROXTON(data->devid) || IS_GEMINILAKE(data->devid) ||
>> +	    AT_LEAST_GEN(data->devid, 11)) {
>> +		data->runtime_suspend_disabled = igt_disable_runtime_pm();
>> +		igt_require_f(data->runtime_suspend_disabled,
>> +			      "unable to disable runtime pm for i915\n");
>> +	} else {
>> +		data->runtime_suspend_disabled = false;
>> +	}
>> +}
>> +
>> +static void dpms_off(data_t *data)
>> +{
>> +	for (int i = 0; i < data->display.n_outputs; i++) {
>> +		kmstest_set_connector_dpms(data->drm_fd,
>> +					   data->display.outputs[i].config.connector,
>> +					   DRM_MODE_DPMS_OFF);
>> +	}
>> +
>> +	if (!data->runtime_suspend_disabled)
>> +		igt_assert(igt_wait_for_pm_status
>> +			   (IGT_RUNTIME_PM_STATUS_SUSPENDED));
>> +}
>> +
>> +static void dpms_on(data_t *data)
>> +{
>> +	for (int i = 0; i < data->display.n_outputs; i++) {
>> +		kmstest_set_connector_dpms(data->drm_fd,
>> +					   data->display.outputs[i].config.connector,
>> +					   DRM_MODE_DPMS_ON);
>> +	}
>> +
>> +	if (!data->runtime_suspend_disabled)
>> +		igt_assert(igt_wait_for_pm_status
>> +			   (IGT_RUNTIME_PM_STATUS_ACTIVE));
>> +}
>> +
>> +static void test_dc_state_dpms(data_t *data, int dc_flag)
>> +{
>> +	uint32_t dc_counter;
>> +
>> +	dc_counter = read_dc_counter(data->drm_fd, dc_flag);
>> +	dpms_off(data);
>> +	check_dc_counter(data->drm_fd, dc_flag, dc_counter);
>> +	dpms_on(data);
>> +
>> +	/* if runtime PM is disabled for i915 restore it,
>> +	 * so any other sub-test can use runtime-PM.
>> +	 */
>> +	if (data->runtime_suspend_disabled) {
>> +		igt_restore_runtime_pm();
>> +		igt_setup_runtime_pm();
>> +	}
> 
> The above restores what setup_dc_dpms() did so could you move it a
> cleanup_dc_dpms() function for clarity?
> 
>> +}
>> +
>>   int main(int argc, char *argv[])
>>   {
>>   	bool has_runtime_pm;
>> @@ -210,6 +267,11 @@ int main(int argc, char *argv[])
>>   		test_dc_state_psr(&data, CHECK_DC6);
>>   	}
>>   
>> +	igt_subtest("dc5-dpms") {
>> +		setup_dc_dpms(&data);
> 
> Could you move the above call to test_dc_state_dpms() and check for
I will do this and cleanup_dc_dpms() changes.
> CHECK_DC5 withing setup_dc_dpms()?
but i did not understand why do we need to check for CHECK_DC5 (dc flag) 
in setup_dc_dpms(), it is agnostic to DC5 and DC6. dc flag will be 
require in read_dc_counter() and check_dc_counter() function.
May be it will be clear when i will send entire patch set.
> 
> I couldn't spot any other issues so with these changes on the patchset:
> Reviewed-by: Imre Deak <imre.deak@intel.com>
> 
> Could you please resend the whole patchset?
> 
>> +		test_dc_state_dpms(&data, CHECK_DC5);
>> +	}
>> +
>>   	igt_fixture {
>>   		close(data.debugfs_fd);
>>   		display_fini(&data);
>> -- 
>> 2.21.0
>>
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH i-g-t v12 4/6] tests/i915/i915_pm_dc: Added test for DC5 during DPMS
  2019-08-27 11:49       ` Gupta, Anshuman
@ 2019-08-27 12:14         ` Imre Deak
  0 siblings, 0 replies; 27+ messages in thread
From: Imre Deak @ 2019-08-27 12:14 UTC (permalink / raw)
  To: Gupta, Anshuman; +Cc: igt-dev, Jyoti Yadav

On Tue, Aug 27, 2019 at 05:19:49PM +0530, Gupta, Anshuman wrote:
> 
> 
> On 8/23/2019 8:00 PM, Imre Deak wrote:
> > On Wed, Aug 14, 2019 at 11:16:21PM +0530, Anshuman Gupta wrote:
> > > From: Jyoti Yadav <jyoti.r.yadav@intel.com>
> > > 
> > > Added new subtest for DC5 entry during DPMS on/off cycle.
> > > During DPMS on/off cycle DC5 counter is incremented.
> > > 
> > > v2: Rename the subtest with meaningful name.
> > > v3: Rebased.
> > > v4: Addressed review comments by removing leftover code
> > >      cleanup().
> > > v5: Addressed the review comment by removing redundant
> > >      read_dc_counter() suggested by Imre.
> > >      Listing actual change in patch set changelog to make review easier.
> > > v6: Three way patch applied, no functional change.
> > > v7: Disabling runtime suspend for the platform which support, DC9.
> > >      rebased due to test name pm_dc changed to i915_pm_dc, aligning to
> > >      other PM tests.
> > > v8: Introduced setup_dc_dpms() in order to disable runtime pm, restoring
> > >      POWER_DIR values to its original and enabling runtime pm  for other
> > >      followed sub-tests.
> > > v9: Check DC5 counter value after DPMS off, broke the dpms_on_off
> > >      function to dpms_on and dpms_off. [Imre]
> > > v10:Added AT_LEAST_Gen11 condition instead of IS_ICELAKE in order to
> > >      disable runtime suspend. [Imre]
> > > 
> > > Signed-off-by: Jyoti Yadav <jyoti.r.yadav@intel.com>
> > > Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> > > ---
> > >   tests/i915/i915_pm_dc.c | 62 +++++++++++++++++++++++++++++++++++++++++
> > >   1 file changed, 62 insertions(+)
> > > 
> > > diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
> > > index f261ecbf..f03d30a8 100644
> > > --- a/tests/i915/i915_pm_dc.c
> > > +++ b/tests/i915/i915_pm_dc.c
> > > @@ -46,6 +46,7 @@ typedef struct {
> > >   	enum psr_mode op_psr_mode;
> > >   	drmModeModeInfo *mode;
> > >   	igt_output_t *output;
> > > +	bool runtime_suspend_disabled;
> > >   } data_t;
> > >   bool dc_state_wait_entry(int drm_fd, int dc_flag, int prev_dc_count);
> > > @@ -173,6 +174,62 @@ static void test_dc_state_psr(data_t *data, int dc_flag)
> > >   	cleanup(data);
> > >   }
> > > +static void setup_dc_dpms(data_t *data)
> > > +{
> > > +	if (IS_BROXTON(data->devid) || IS_GEMINILAKE(data->devid) ||
> > > +	    AT_LEAST_GEN(data->devid, 11)) {
> > > +		data->runtime_suspend_disabled = igt_disable_runtime_pm();
> > > +		igt_require_f(data->runtime_suspend_disabled,
> > > +			      "unable to disable runtime pm for i915\n");
> > > +	} else {
> > > +		data->runtime_suspend_disabled = false;
> > > +	}
> > > +}
> > > +
> > > +static void dpms_off(data_t *data)
> > > +{
> > > +	for (int i = 0; i < data->display.n_outputs; i++) {
> > > +		kmstest_set_connector_dpms(data->drm_fd,
> > > +					   data->display.outputs[i].config.connector,
> > > +					   DRM_MODE_DPMS_OFF);
> > > +	}
> > > +
> > > +	if (!data->runtime_suspend_disabled)
> > > +		igt_assert(igt_wait_for_pm_status
> > > +			   (IGT_RUNTIME_PM_STATUS_SUSPENDED));
> > > +}
> > > +
> > > +static void dpms_on(data_t *data)
> > > +{
> > > +	for (int i = 0; i < data->display.n_outputs; i++) {
> > > +		kmstest_set_connector_dpms(data->drm_fd,
> > > +					   data->display.outputs[i].config.connector,
> > > +					   DRM_MODE_DPMS_ON);
> > > +	}
> > > +
> > > +	if (!data->runtime_suspend_disabled)
> > > +		igt_assert(igt_wait_for_pm_status
> > > +			   (IGT_RUNTIME_PM_STATUS_ACTIVE));
> > > +}
> > > +
> > > +static void test_dc_state_dpms(data_t *data, int dc_flag)
> > > +{
> > > +	uint32_t dc_counter;
> > > +
> > > +	dc_counter = read_dc_counter(data->drm_fd, dc_flag);
> > > +	dpms_off(data);
> > > +	check_dc_counter(data->drm_fd, dc_flag, dc_counter);
> > > +	dpms_on(data);
> > > +
> > > +	/* if runtime PM is disabled for i915 restore it,
> > > +	 * so any other sub-test can use runtime-PM.
> > > +	 */
> > > +	if (data->runtime_suspend_disabled) {
> > > +		igt_restore_runtime_pm();
> > > +		igt_setup_runtime_pm();
> > > +	}
> > 
> > The above restores what setup_dc_dpms() did so could you move it a
> > cleanup_dc_dpms() function for clarity?
> > 
> > > +}
> > > +
> > >   int main(int argc, char *argv[])
> > >   {
> > >   	bool has_runtime_pm;
> > > @@ -210,6 +267,11 @@ int main(int argc, char *argv[])
> > >   		test_dc_state_psr(&data, CHECK_DC6);
> > >   	}
> > > +	igt_subtest("dc5-dpms") {
> > > +		setup_dc_dpms(&data);
> > 
> > Could you move the above call to test_dc_state_dpms() and check for
> I will do this and cleanup_dc_dpms() changes.
> > CHECK_DC5 withing setup_dc_dpms()?
> but i did not understand why do we need to check for CHECK_DC5 (dc flag) in
> setup_dc_dpms(), it is agnostic to DC5 and DC6. dc flag will be require in
> read_dc_counter() and check_dc_counter() function.
> May be it will be clear when i will send entire patch set.

Ah right, missed the dc6 subtest that calls this too. Yes, it's fine to
just do the setup w/o checking for DC5. My point here was just to try to
keep things like the above setup/cleanup functions paired for clarity.

> > 
> > I couldn't spot any other issues so with these changes on the patchset:
> > Reviewed-by: Imre Deak <imre.deak@intel.com>
> > 
> > Could you please resend the whole patchset?
> > 
> > > +		test_dc_state_dpms(&data, CHECK_DC5);
> > > +	}
> > > +
> > >   	igt_fixture {
> > >   		close(data.debugfs_fd);
> > >   		display_fini(&data);
> > > -- 
> > > 2.21.0
> > > 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

end of thread, other threads:[~2019-08-27 12:15 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-21 15:42 [igt-dev] [PATCH i-g-t v12 0/6] DC states igt tests patch series Anshuman Gupta
2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 1/6] lib/igt_pm: igt lib helper routines to support DC5/6 tests Anshuman Gupta
2019-08-14 17:39   ` Anshuman Gupta
2019-08-15 11:52     ` Imre Deak
2019-08-16 10:27     ` Anshuman Gupta
2019-08-23 14:25       ` Imre Deak
2019-08-26  9:52         ` Petri Latvala
2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 2/6] tests/i915/i915_pm_dc: Added new test to verify Display C States Anshuman Gupta
2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 3/6] tests/i915/i915_pm_dc: Added test for DC6 during PSR Anshuman Gupta
2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 4/6] tests/i915/i915_pm_dc: Added test for DC5 during DPMS Anshuman Gupta
2019-08-14 17:46   ` Anshuman Gupta
2019-08-23 14:30     ` Imre Deak
2019-08-27 11:49       ` Gupta, Anshuman
2019-08-27 12:14         ` Imre Deak
2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 5/6] tests/i915/i915_pm_dc: Added test for DC6 " Anshuman Gupta
2019-06-21 15:42 ` [igt-dev] [PATCH i-g-t v12 6/6] tests/i915/i915_pm_dc:Skip the DC6 test if it doesn't support PC8+ Anshuman Gupta
2019-06-21 18:36 ` [igt-dev] ✗ Fi.CI.BAT: failure for DC states igt tests patch series (rev12) Patchwork
2019-06-22  7:42 ` [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev13) Patchwork
2019-06-22 10:52 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2019-06-22 15:19 ` [igt-dev] ✓ Fi.CI.BAT: success for DC states igt tests patch series (rev14) Patchwork
2019-06-22 16:45 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2019-08-14 18:04 ` [igt-dev] ✗ GitLab.Pipeline: warning for DC states igt tests patch series (rev16) Patchwork
2019-08-14 18:23 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2019-08-15  9:22 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2019-08-16 10:54 ` [igt-dev] ✗ GitLab.Pipeline: warning for DC states igt tests patch series (rev17) Patchwork
2019-08-16 11:02 ` [igt-dev] ✓ Fi.CI.BAT: success " Patchwork
2019-08-16 23:49 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.