* [igt-dev] [PATCH i-g-t 0/3] Cold Reset IGT Test
@ 2022-11-07 13:18 Anshuman Gupta
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 1/3] lib/igt_pm: Refactor get firmware_node fd Anshuman Gupta
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Anshuman Gupta @ 2022-11-07 13:18 UTC (permalink / raw)
To: igt-dev; +Cc: badal.nilawar, rodrigo.vivi
Adding support for IGT Cold Reset.
Anshuman Gupta (3):
lib/igt_pm: Refactor get firmware_node fd
test/device_reset: Refactor initiate_device_reset
tests/device_reset: Add cold reset IGT test
lib/igt_pm.c | 69 ++++++++++++++++++---
lib/igt_pm.h | 1 +
tests/device_reset.c | 139 +++++++++++++++++++++++++++++++++++++++----
3 files changed, 187 insertions(+), 22 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] [PATCH i-g-t 1/3] lib/igt_pm: Refactor get firmware_node fd
2022-11-07 13:18 [igt-dev] [PATCH i-g-t 0/3] Cold Reset IGT Test Anshuman Gupta
@ 2022-11-07 13:18 ` Anshuman Gupta
2022-11-07 17:02 ` Kamil Konieczny
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 2/3] test/device_reset: Refactor initiate_device_reset Anshuman Gupta
` (3 subsequent siblings)
4 siblings, 1 reply; 11+ messages in thread
From: Anshuman Gupta @ 2022-11-07 13:18 UTC (permalink / raw)
To: igt-dev; +Cc: badal.nilawar, rodrigo.vivi
Created igt_pm_open_pci_firmware_node() to refactor
the retrieving the firmware_node fd code.
igt_pm_open_pci_firmware_node() will be used by other
firmware_node consumers.
While doing that fixed the leaked fd as well.
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
lib/igt_pm.c | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index 1e6e9ed3f..e289c48e4 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -863,6 +863,20 @@ bool i915_output_is_lpsp_capable(int drm_fd, igt_output_t *output)
return strstr(buf, "LPSP: capable");
}
+static int igt_pm_open_pci_firmware_node(struct pci_device *pci_dev)
+{
+ char name[PATH_MAX];
+ int dir;
+
+ snprintf(name, PATH_MAX,
+ "/sys/bus/pci/devices/%04x:%02x:%02x.%01x/firmware_node",
+ pci_dev->domain, pci_dev->bus, pci_dev->dev, pci_dev->func);
+
+ dir = open(name, O_RDONLY);
+
+ return dir;
+}
+
/**
* igt_pm_acpi_d3cold_supported:
* @pci_dev: root port pci_dev.
@@ -873,23 +887,20 @@ bool i915_output_is_lpsp_capable(int drm_fd, igt_output_t *output)
*/
bool igt_pm_acpi_d3cold_supported(struct pci_device *pci_dev)
{
- char name[PATH_MAX];
- int dir, fd;
+ int firmware_node_fd, fd;
- snprintf(name, PATH_MAX,
- "/sys/bus/pci/devices/%04x:%02x:%02x.%01x/firmware_node",
- pci_dev->domain, pci_dev->bus, pci_dev->dev, pci_dev->func);
-
- dir = open(name, O_RDONLY);
- igt_require(dir > 0);
+ firmware_node_fd = igt_pm_open_pci_firmware_node(pci_dev);
+ igt_require(firmware_node_fd > 0);
/* BIOS need to enable ACPI D3Cold Support.*/
- fd = openat(dir, "real_power_state", O_RDONLY);
+ fd = openat(firmware_node_fd, "real_power_state", O_RDONLY);
if (fd < 0 && errno == ENOENT)
return false;
igt_require(fd > 0);
+ close(firmware_node_fd);
+ close(fd);
return true;
}
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] [PATCH i-g-t 2/3] test/device_reset: Refactor initiate_device_reset
2022-11-07 13:18 [igt-dev] [PATCH i-g-t 0/3] Cold Reset IGT Test Anshuman Gupta
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 1/3] lib/igt_pm: Refactor get firmware_node fd Anshuman Gupta
@ 2022-11-07 13:18 ` Anshuman Gupta
2022-11-07 21:32 ` Rodrigo Vivi
2022-11-14 7:54 ` Nilawar, Badal
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 3/3] tests/device_reset: Add cold reset IGT test Anshuman Gupta
` (2 subsequent siblings)
4 siblings, 2 replies; 11+ messages in thread
From: Anshuman Gupta @ 2022-11-07 13:18 UTC (permalink / raw)
To: igt-dev; +Cc: badal.nilawar, rodrigo.vivi
Added a reset type enum to support multiple types
of reset like WARM, COLD and FLR reset.
No functional change.
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
tests/device_reset.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/tests/device_reset.c b/tests/device_reset.c
index e60d4c7fd..88b786aae 100644
--- a/tests/device_reset.c
+++ b/tests/device_reset.c
@@ -19,6 +19,12 @@ IGT_TEST_DESCRIPTION("Examine behavior of a driver on device sysfs reset");
#define DEV_PATH_LEN 80
#define DEV_BUS_ADDR_LEN 13 /* addr has form 0000:00:00.0 */
+enum reset {
+ WARM_RESET,
+ COLD_RESET,
+ FLR_RESET
+};
+
/**
* Helper structure containing file descriptors
* and bus address related to tested device
@@ -222,10 +228,13 @@ static void driver_bind(struct device_fds *dev)
}
/* Initiate device reset */
-static void initiate_device_reset(struct device_fds *dev)
+static void initiate_device_reset(struct device_fds *dev, enum reset type)
{
igt_debug("reset device\n");
- igt_assert(igt_sysfs_set(dev->fds.dev_dir, "reset", "1"));
+
+ if (type == FLR_RESET)
+ igt_assert(igt_sysfs_set(dev->fds.dev_dir, "reset", "1"));
+
}
static bool is_i915_wedged(int i915)
@@ -274,14 +283,14 @@ static void set_device_filter(const char* dev_path)
igt_assert_eq(igt_device_filter_add(filter), 1);
}
-static void unbind_reset_rebind(struct device_fds *dev)
+static void unbind_reset_rebind(struct device_fds *dev, enum reset type)
{
igt_debug("close the device\n");
close_if_opened(&dev->fds.dev);
driver_unbind(dev);
- initiate_device_reset(dev);
+ initiate_device_reset(dev, type);
driver_bind(dev);
}
@@ -306,13 +315,13 @@ igt_main
igt_describe("Unbinds driver from device, initiates reset"
" then rebinds driver to device");
igt_subtest("unbind-reset-rebind") {
- unbind_reset_rebind(&dev);
+ unbind_reset_rebind(&dev, FLR_RESET);
healthcheck(&dev);
}
igt_describe("Resets device with bound driver");
igt_subtest("reset-bound") {
- initiate_device_reset(&dev);
+ initiate_device_reset(&dev, FLR_RESET);
healthcheck(&dev);
}
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] [PATCH i-g-t 3/3] tests/device_reset: Add cold reset IGT test
2022-11-07 13:18 [igt-dev] [PATCH i-g-t 0/3] Cold Reset IGT Test Anshuman Gupta
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 1/3] lib/igt_pm: Refactor get firmware_node fd Anshuman Gupta
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 2/3] test/device_reset: Refactor initiate_device_reset Anshuman Gupta
@ 2022-11-07 13:18 ` Anshuman Gupta
2022-11-14 11:59 ` Nilawar, Badal
2022-11-07 15:16 ` [igt-dev] ✓ Fi.CI.BAT: success for Cold Reset IGT Test Patchwork
2022-11-07 18:58 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 1 reply; 11+ messages in thread
From: Anshuman Gupta @ 2022-11-07 13:18 UTC (permalink / raw)
To: igt-dev; +Cc: badal.nilawar, rodrigo.vivi
Add cold-reset IGT subtest, IGT subtest will use
/sys/bus/pci/slots/$SUN/power sysfs in order to
initiate a cold reset sequence. $SUN value will be
retrieved from PCIe device ACPI firmware node.
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
lib/igt_pm.c | 40 ++++++++++++++
lib/igt_pm.h | 1 +
tests/device_reset.c | 124 +++++++++++++++++++++++++++++++++++++++----
3 files changed, 155 insertions(+), 10 deletions(-)
diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index e289c48e4..c559b86f6 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -877,6 +877,46 @@ static int igt_pm_open_pci_firmware_node(struct pci_device *pci_dev)
return dir;
}
+/**
+ * igt_pm_get_pcie_acpihp_slot:
+ * @pci_dev: pci bridge device.
+ * Get pci bridge acpi hotplug slot number, if bridge's ACPI firmware_node
+ * handle supports _SUN method.
+ *
+ * Returns:
+ * PCIe bridge Slot number.
+ * Returns -ENOENT number in case firmware_node/sun is not supported by the
+ * bridge.
+ */
+int igt_pm_get_pcie_acpihp_slot(struct pci_device *pci_dev)
+{
+ int firmware_node_fd, fd, n_read;
+ char sun[8];
+
+ firmware_node_fd = igt_pm_open_pci_firmware_node(pci_dev);
+
+ if (firmware_node_fd < 0 && errno == ENOENT)
+ return -ENOENT;
+
+ igt_require(firmware_node_fd > 0);
+
+ fd = openat(firmware_node_fd, "sun", O_RDONLY);
+ if (fd < 0 && errno == ENOENT) {
+ close(firmware_node_fd);
+ return -ENOENT;
+ }
+
+ igt_require(fd > 0);
+
+ n_read = read(fd, sun, sizeof(sun));
+ igt_assert(n_read > 0);
+
+ close(firmware_node_fd);
+ close(fd);
+
+ return strtol(sun, NULL, 10);
+}
+
/**
* igt_pm_acpi_d3cold_supported:
* @pci_dev: root port pci_dev.
diff --git a/lib/igt_pm.h b/lib/igt_pm.h
index e81fceb89..f65b960c3 100644
--- a/lib/igt_pm.h
+++ b/lib/igt_pm.h
@@ -73,6 +73,7 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status);
bool igt_pm_dmc_loaded(int debugfs);
bool igt_pm_pc8_plus_residencies_enabled(int msr_fd);
bool i915_output_is_lpsp_capable(int drm_fd, igt_output_t *output);
+int igt_pm_get_pcie_acpihp_slot(struct pci_device *pci_dev);
bool igt_pm_acpi_d3cold_supported(struct pci_device *pci_dev);
enum igt_acpi_d_state
igt_pm_get_acpi_real_d_state(struct pci_device *pci_dev);
diff --git a/tests/device_reset.c b/tests/device_reset.c
index 88b786aae..4f1b5efd1 100644
--- a/tests/device_reset.c
+++ b/tests/device_reset.c
@@ -9,6 +9,7 @@
#include "i915/gem.h"
#include "igt.h"
+#include "igt_device.h"
#include "igt_device_scan.h"
#include "igt_sysfs.h"
#include "igt_kmod.h"
@@ -34,6 +35,7 @@ struct device_fds {
int dev;
int dev_dir;
int drv_dir;
+ int slot_dir; /* pci hotplug slots fd */
} fds;
char dev_bus_addr[DEV_BUS_ADDR_LEN];
bool snd_unload;
@@ -63,6 +65,45 @@ static int open_driver_sysfs_dir(int fd)
return __open_sysfs_dir(fd, "device/driver");
}
+static int open_slot_sysfs_dir(int fd)
+{
+ struct pci_device *pci_dev = NULL;
+ int slot_fd = -1, slot;
+ char slot_fd_path[PATH_MAX];
+
+ pci_dev = igt_device_get_pci_device(fd);
+ igt_require(pci_dev);
+
+ while ((pci_dev = pci_device_get_parent_bridge(pci_dev))) {
+ slot = igt_pm_get_pcie_acpihp_slot(pci_dev);
+ if (slot == -ENOENT) {
+ igt_debug("Bridge PCI device %04x:%02x:%02x.%01x does not support acpihp slot\n",
+ pci_dev->domain, pci_dev->bus, pci_dev->dev, pci_dev->func);
+ continue;
+ }
+
+ /*
+ * Upon getting the valid acpihp slot number break the loop.
+ * It is the desired acpihp slot for gfx card.
+ */
+ if (slot > 0) {
+ igt_debug("Bridge PCI device %04x:%02x:%02x.%01x associated acpihp slot %d\n",
+ pci_dev->domain, pci_dev->bus, pci_dev->dev, pci_dev->func, slot);
+ break;
+ }
+ }
+
+ if (!pci_dev)
+ return slot_fd;
+
+ snprintf(slot_fd_path, PATH_MAX, "/sys/bus/pci/slots/%d", slot);
+ slot_fd = open(slot_fd_path, O_RDONLY);
+ if (slot_fd < 0)
+ return -errno;
+
+ return slot_fd;
+}
+
/**
* device_sysfs_path:
* @fd: opened device file descriptor
@@ -125,6 +166,8 @@ static void init_device_fds(struct device_fds *dev)
dev->fds.drv_dir = open_driver_sysfs_dir(dev->fds.dev);
igt_assert_fd(dev->fds.drv_dir);
+
+ dev->fds.slot_dir = open_slot_sysfs_dir(dev->fds.dev);
}
static int close_if_opened(int *fd)
@@ -143,6 +186,7 @@ static void cleanup_device_fds(struct device_fds *dev)
igt_ignore_warn(close_if_opened(&dev->fds.dev));
igt_ignore_warn(close_if_opened(&dev->fds.dev_dir));
igt_ignore_warn(close_if_opened(&dev->fds.drv_dir));
+ igt_ignore_warn(close_if_opened(&dev->fds.slot_dir));
}
/**
@@ -180,6 +224,34 @@ static bool is_sysfs_reset_supported(int fd)
return true;
}
+/**
+ * is_sysfs_cold_reset_supported:
+ * @fd: opened device file descriptor
+ *
+ * Check if device supports cold reset based on sysfs file presence.
+ *
+ * Returns:
+ * True if device supports reset, false otherwise.
+ */
+static bool is_sysfs_cold_reset_supported(int slot_fd)
+{
+ struct stat st;
+ int rc;
+ int cold_reset_fd = -1;
+
+ cold_reset_fd = openat(slot_fd, "power", O_WRONLY);
+
+ if (cold_reset_fd < 0)
+ return false;
+
+ rc = fstat(cold_reset_fd, &st);
+ close(cold_reset_fd);
+
+ if (rc || !S_ISREG(st.st_mode))
+ return false;
+
+ return true;
+}
/* Unbind the driver from the device */
static void driver_unbind(struct device_fds *dev)
{
@@ -232,8 +304,12 @@ static void initiate_device_reset(struct device_fds *dev, enum reset type)
{
igt_debug("reset device\n");
- if (type == FLR_RESET)
+ if (type == FLR_RESET) {
igt_assert(igt_sysfs_set(dev->fds.dev_dir, "reset", "1"));
+ } else if (type == COLD_RESET) {
+ igt_assert(igt_sysfs_set(dev->fds.slot_dir, "power", "0"));
+ igt_assert(igt_sysfs_set(dev->fds.slot_dir, "power", "1"));
+ }
}
@@ -312,17 +388,45 @@ igt_main
igt_skip_on(!is_sysfs_reset_supported(dev.fds.dev));
}
- igt_describe("Unbinds driver from device, initiates reset"
- " then rebinds driver to device");
- igt_subtest("unbind-reset-rebind") {
- unbind_reset_rebind(&dev, FLR_RESET);
- healthcheck(&dev);
+ igt_subtest_group {
+ igt_describe("Unbinds driver from device, initiates reset"
+ " then rebinds driver to device");
+ igt_subtest("unbind-reset-rebind") {
+ unbind_reset_rebind(&dev, FLR_RESET);
+ healthcheck(&dev);
+ }
+
+ igt_describe("Resets device with bound driver");
+ igt_subtest("reset-bound") {
+ initiate_device_reset(&dev, FLR_RESET);
+ /*
+ * Cold reset will initiate card boot sequence again,
+ * therefore let healthcheck() re-epen the dev fd.
+ */
+ dev.fds.dev = -1;
+ healthcheck(&dev);
+ }
}
- igt_describe("Resets device with bound driver");
- igt_subtest("reset-bound") {
- initiate_device_reset(&dev, FLR_RESET);
- healthcheck(&dev);
+ igt_subtest_group {
+ igt_fixture {
+ igt_skip_on_f(dev.fds.slot_dir < 0, "Gfx Card does not support any "
+ "pcie slot for cold reset\n");
+ igt_skip_on(!is_sysfs_cold_reset_supported(dev.fds.slot_dir));
+ }
+
+ igt_describe("Unbinds driver from device, initiates cold reset"
+ " then rebinds driver to device");
+ igt_subtest("unbind-cold-reset-rebind") {
+ unbind_reset_rebind(&dev, COLD_RESET);
+ healthcheck(&dev);
+ }
+
+ igt_describe("Cold Resets device with bound driver");
+ igt_subtest("cold-reset-bound") {
+ initiate_device_reset(&dev, COLD_RESET);
+ healthcheck(&dev);
+ }
}
igt_fixture {
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Cold Reset IGT Test
2022-11-07 13:18 [igt-dev] [PATCH i-g-t 0/3] Cold Reset IGT Test Anshuman Gupta
` (2 preceding siblings ...)
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 3/3] tests/device_reset: Add cold reset IGT test Anshuman Gupta
@ 2022-11-07 15:16 ` Patchwork
2022-11-07 18:58 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2022-11-07 15:16 UTC (permalink / raw)
To: Anshuman Gupta; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 7022 bytes --]
== Series Details ==
Series: Cold Reset IGT Test
URL : https://patchwork.freedesktop.org/series/110600/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12350 -> IGTPW_8055
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/index.html
Participating hosts (32 -> 38)
------------------------------
Additional (11): bat-dg2-8 bat-dg2-9 bat-adlp-6 bat-adlp-4 bat-adln-1 fi-pnv-d510 bat-rplp-1 bat-rpls-1 bat-rpls-2 bat-dg2-11 bat-jsl-1
Missing (5): fi-cml-u2 fi-ilk-m540 fi-hsw-4200u fi-ctg-p8600 fi-bdw-samus
Known issues
------------
Here are the changes found in IGTPW_8055 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_lmem_swapping@parallel-random-engines:
- bat-adlp-4: NOTRUN -> [SKIP][1] ([i915#4613]) +3 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/bat-adlp-4/igt@gem_lmem_swapping@parallel-random-engines.html
* igt@gem_tiled_pread_basic:
- bat-adlp-4: NOTRUN -> [SKIP][2] ([i915#3282])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/bat-adlp-4/igt@gem_tiled_pread_basic.html
* igt@i915_pm_rps@basic-api:
- bat-adlp-4: NOTRUN -> [SKIP][3] ([i915#6621])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/bat-adlp-4/igt@i915_pm_rps@basic-api.html
* igt@kms_chamelium@dp-crc-fast:
- bat-adlp-4: NOTRUN -> [SKIP][4] ([fdo#111827]) +8 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/bat-adlp-4/igt@kms_chamelium@dp-crc-fast.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor:
- bat-adlp-4: NOTRUN -> [SKIP][5] ([i915#4103])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/bat-adlp-4/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html
* igt@kms_force_connector_basic@force-load-detect:
- bat-adlp-4: NOTRUN -> [SKIP][6] ([i915#4093]) +3 similar issues
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/bat-adlp-4/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- bat-adlp-4: NOTRUN -> [SKIP][7] ([i915#3546])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/bat-adlp-4/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_psr@primary_page_flip:
- fi-pnv-d510: NOTRUN -> [SKIP][8] ([fdo#109271]) +43 similar issues
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/fi-pnv-d510/igt@kms_psr@primary_page_flip.html
* igt@kms_setmode@basic-clone-single-crtc:
- bat-adlp-4: NOTRUN -> [SKIP][9] ([i915#3555] / [i915#4579])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/bat-adlp-4/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-userptr:
- bat-adlp-4: NOTRUN -> [SKIP][10] ([fdo#109295] / [i915#3301] / [i915#3708])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/bat-adlp-4/igt@prime_vgem@basic-userptr.html
* igt@prime_vgem@basic-write:
- bat-adlp-4: NOTRUN -> [SKIP][11] ([fdo#109295] / [i915#3291] / [i915#3708]) +2 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/bat-adlp-4/igt@prime_vgem@basic-write.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#3003]: https://gitlab.freedesktop.org/drm/intel/issues/3003
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4093]: https://gitlab.freedesktop.org/drm/intel/issues/4093
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
[i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
[i915#4215]: https://gitlab.freedesktop.org/drm/intel/issues/4215
[i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
[i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190
[i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274
[i915#5278]: https://gitlab.freedesktop.org/drm/intel/issues/5278
[i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6434]: https://gitlab.freedesktop.org/drm/intel/issues/6434
[i915#6559]: https://gitlab.freedesktop.org/drm/intel/issues/6559
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
[i915#7328]: https://gitlab.freedesktop.org/drm/intel/issues/7328
[i915#7359]: https://gitlab.freedesktop.org/drm/intel/issues/7359
[i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7046 -> IGTPW_8055
CI-20190529: 20190529
CI_DRM_12350: ce07b5c5defad15ae5fcc8e260738b08ce04a0a5 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8055: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/index.html
IGT_7046: c58d96d0fe237474b074e3472ce09c57c830d5de @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@device_reset@cold-reset-bound
+igt@device_reset@unbind-cold-reset-rebind
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/index.html
[-- Attachment #2: Type: text/html, Size: 6055 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/3] lib/igt_pm: Refactor get firmware_node fd
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 1/3] lib/igt_pm: Refactor get firmware_node fd Anshuman Gupta
@ 2022-11-07 17:02 ` Kamil Konieczny
2022-11-08 11:48 ` Gupta, Anshuman
0 siblings, 1 reply; 11+ messages in thread
From: Kamil Konieczny @ 2022-11-07 17:02 UTC (permalink / raw)
To: igt-dev; +Cc: Badal Nilavar, Rodrigo Vivi
Hi Anshuman,
On 2022-11-07 at 18:48:40 +0530, Anshuman Gupta wrote:
> Created igt_pm_open_pci_firmware_node() to refactor
> the retrieving the firmware_node fd code.
>
> igt_pm_open_pci_firmware_node() will be used by other
> firmware_node consumers.
>
> While doing that fixed the leaked fd as well.
>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
> lib/igt_pm.c | 29 ++++++++++++++++++++---------
> 1 file changed, 20 insertions(+), 9 deletions(-)
>
> diff --git a/lib/igt_pm.c b/lib/igt_pm.c
> index 1e6e9ed3f..e289c48e4 100644
> --- a/lib/igt_pm.c
> +++ b/lib/igt_pm.c
> @@ -863,6 +863,20 @@ bool i915_output_is_lpsp_capable(int drm_fd, igt_output_t *output)
> return strstr(buf, "LPSP: capable");
> }
>
> +static int igt_pm_open_pci_firmware_node(struct pci_device *pci_dev)
> +{
> + char name[PATH_MAX];
> + int dir;
> +
> + snprintf(name, PATH_MAX,
> + "/sys/bus/pci/devices/%04x:%02x:%02x.%01x/firmware_node",
> + pci_dev->domain, pci_dev->bus, pci_dev->dev, pci_dev->func);
> +
> + dir = open(name, O_RDONLY);
> +
> + return dir;
> +}
> +
> /**
> * igt_pm_acpi_d3cold_supported:
> * @pci_dev: root port pci_dev.
> @@ -873,23 +887,20 @@ bool i915_output_is_lpsp_capable(int drm_fd, igt_output_t *output)
> */
> bool igt_pm_acpi_d3cold_supported(struct pci_device *pci_dev)
> {
> - char name[PATH_MAX];
> - int dir, fd;
> + int firmware_node_fd, fd;
>
> - snprintf(name, PATH_MAX,
> - "/sys/bus/pci/devices/%04x:%02x:%02x.%01x/firmware_node",
> - pci_dev->domain, pci_dev->bus, pci_dev->dev, pci_dev->func);
> -
> - dir = open(name, O_RDONLY);
> - igt_require(dir > 0);
> + firmware_node_fd = igt_pm_open_pci_firmware_node(pci_dev);
> + igt_require(firmware_node_fd > 0);
imho it is better just return false here.
>
> /* BIOS need to enable ACPI D3Cold Support.*/
> - fd = openat(dir, "real_power_state", O_RDONLY);
> + fd = openat(firmware_node_fd, "real_power_state", O_RDONLY);
> if (fd < 0 && errno == ENOENT)
Here you should also close(firmware_node_fd) before return.
Btw check for errno looks strange.
> return false;
>
> igt_require(fd > 0);
This is mixing two different error behaviour, return bool versus
igt_require, imho it is better to return false instead.
Regards,
Kamil
>
> + close(firmware_node_fd);
> + close(fd);
> return true;
> }
>
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for Cold Reset IGT Test
2022-11-07 13:18 [igt-dev] [PATCH i-g-t 0/3] Cold Reset IGT Test Anshuman Gupta
` (3 preceding siblings ...)
2022-11-07 15:16 ` [igt-dev] ✓ Fi.CI.BAT: success for Cold Reset IGT Test Patchwork
@ 2022-11-07 18:58 ` Patchwork
4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2022-11-07 18:58 UTC (permalink / raw)
To: Anshuman Gupta; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 34801 bytes --]
== Series Details ==
Series: Cold Reset IGT Test
URL : https://patchwork.freedesktop.org/series/110600/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12350_full -> IGTPW_8055_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/index.html
Participating hosts (9 -> 6)
------------------------------
Missing (3): pig-skl-6260u pig-kbl-iris pig-glk-j5005
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_8055_full:
### IGT changes ###
#### Possible regressions ####
* {igt@device_reset@cold-reset-bound} (NEW):
- shard-tglb: NOTRUN -> [SKIP][1] +1 similar issue
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb3/igt@device_reset@cold-reset-bound.html
- shard-iclb: NOTRUN -> [SKIP][2] +1 similar issue
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb8/igt@device_reset@cold-reset-bound.html
New tests
---------
New tests have been introduced between CI_DRM_12350_full and IGTPW_8055_full:
### New IGT tests (2) ###
* igt@device_reset@cold-reset-bound:
- Statuses : 4 skip(s)
- Exec time: [0.0] s
* igt@device_reset@unbind-cold-reset-rebind:
- Statuses : 5 skip(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in IGTPW_8055_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@feature_discovery@psr2:
- shard-iclb: [PASS][3] -> [SKIP][4] ([i915#658])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb2/igt@feature_discovery@psr2.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb6/igt@feature_discovery@psr2.html
* igt@gem_ctx_exec@basic-nohangcheck:
- shard-tglb: [PASS][5] -> [FAIL][6] ([i915#6268])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-tglb7/igt@gem_ctx_exec@basic-nohangcheck.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb5/igt@gem_ctx_exec@basic-nohangcheck.html
* igt@gem_ctx_persistence@engines-mixed-process:
- shard-snb: NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#1099]) +1 similar issue
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-snb5/igt@gem_ctx_persistence@engines-mixed-process.html
* igt@gem_exec_balancer@parallel-keep-in-fence:
- shard-iclb: [PASS][8] -> [SKIP][9] ([i915#4525]) +2 similar issues
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb1/igt@gem_exec_balancer@parallel-keep-in-fence.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb6/igt@gem_exec_balancer@parallel-keep-in-fence.html
* igt@gem_exec_fair@basic-none-share@rcs0:
- shard-iclb: NOTRUN -> [FAIL][10] ([i915#2842])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb3/igt@gem_exec_fair@basic-none-share@rcs0.html
* igt@gem_exec_fair@basic-pace@rcs0:
- shard-glk: [PASS][11] -> [FAIL][12] ([i915#2842]) +2 similar issues
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-glk8/igt@gem_exec_fair@basic-pace@rcs0.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk3/igt@gem_exec_fair@basic-pace@rcs0.html
* igt@gem_exec_params@secure-non-root:
- shard-iclb: NOTRUN -> [SKIP][13] ([fdo#112283])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb3/igt@gem_exec_params@secure-non-root.html
- shard-tglb: NOTRUN -> [SKIP][14] ([fdo#112283])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb6/igt@gem_exec_params@secure-non-root.html
* igt@gem_huc_copy@huc-copy:
- shard-apl: NOTRUN -> [SKIP][15] ([fdo#109271] / [i915#2190])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-apl8/igt@gem_huc_copy@huc-copy.html
- shard-tglb: NOTRUN -> [SKIP][16] ([i915#2190])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb7/igt@gem_huc_copy@huc-copy.html
- shard-glk: NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#2190])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk2/igt@gem_huc_copy@huc-copy.html
- shard-iclb: NOTRUN -> [SKIP][18] ([i915#2190])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb5/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@heavy-multi:
- shard-apl: NOTRUN -> [SKIP][19] ([fdo#109271] / [i915#4613])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-apl2/igt@gem_lmem_swapping@heavy-multi.html
* igt@gem_lmem_swapping@heavy-random:
- shard-glk: NOTRUN -> [SKIP][20] ([fdo#109271] / [i915#4613])
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk3/igt@gem_lmem_swapping@heavy-random.html
* igt@gem_mmap_gtt@coherency:
- shard-tglb: NOTRUN -> [SKIP][21] ([fdo#111656])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb7/igt@gem_mmap_gtt@coherency.html
- shard-iclb: NOTRUN -> [SKIP][22] ([fdo#109292])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb5/igt@gem_mmap_gtt@coherency.html
* igt@gem_pxp@verify-pxp-stale-ctx-execution:
- shard-tglb: NOTRUN -> [SKIP][23] ([i915#4270]) +1 similar issue
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb6/igt@gem_pxp@verify-pxp-stale-ctx-execution.html
- shard-iclb: NOTRUN -> [SKIP][24] ([i915#4270]) +1 similar issue
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb3/igt@gem_pxp@verify-pxp-stale-ctx-execution.html
* igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs:
- shard-glk: NOTRUN -> [SKIP][25] ([fdo#109271]) +108 similar issues
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk3/igt@gem_render_copy@y-tiled-ccs-to-y-tiled-mc-ccs.html
* igt@gem_render_copy@y-tiled-ccs-to-yf-tiled-mc-ccs:
- shard-iclb: NOTRUN -> [SKIP][26] ([i915#768])
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb6/igt@gem_render_copy@y-tiled-ccs-to-yf-tiled-mc-ccs.html
* igt@gem_userptr_blits@readonly-pwrite-unsync:
- shard-tglb: NOTRUN -> [SKIP][27] ([i915#3297])
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb6/igt@gem_userptr_blits@readonly-pwrite-unsync.html
- shard-iclb: NOTRUN -> [SKIP][28] ([i915#3297])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb3/igt@gem_userptr_blits@readonly-pwrite-unsync.html
* igt@gen9_exec_parse@allowed-single:
- shard-glk: [PASS][29] -> [DMESG-WARN][30] ([i915#5566] / [i915#716])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-glk7/igt@gen9_exec_parse@allowed-single.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk8/igt@gen9_exec_parse@allowed-single.html
* igt@i915_pm_freq_mult@media-freq@gt0:
- shard-iclb: NOTRUN -> [SKIP][31] ([i915#6590])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb6/igt@i915_pm_freq_mult@media-freq@gt0.html
- shard-tglb: NOTRUN -> [SKIP][32] ([i915#6590])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb5/igt@i915_pm_freq_mult@media-freq@gt0.html
* igt@kms_atomic@atomic_plane_damage:
- shard-iclb: NOTRUN -> [SKIP][33] ([i915#4765])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb5/igt@kms_atomic@atomic_plane_damage.html
* igt@kms_big_fb@4-tiled-16bpp-rotate-90:
- shard-iclb: NOTRUN -> [SKIP][34] ([i915#5286]) +1 similar issue
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb8/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
- shard-tglb: NOTRUN -> [SKIP][35] ([i915#5286]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb3/igt@kms_big_fb@4-tiled-16bpp-rotate-90.html
* igt@kms_big_fb@linear-16bpp-rotate-90:
- shard-iclb: NOTRUN -> [SKIP][36] ([fdo#110725] / [fdo#111614])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb2/igt@kms_big_fb@linear-16bpp-rotate-90.html
- shard-tglb: NOTRUN -> [SKIP][37] ([fdo#111614])
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb7/igt@kms_big_fb@linear-16bpp-rotate-90.html
* igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180:
- shard-glk: [PASS][38] -> [DMESG-FAIL][39] ([i915#118] / [i915#5138])
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-glk6/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180.html
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk5/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180.html
- shard-iclb: [PASS][40] -> [DMESG-FAIL][41] ([i915#5138])
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb6/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180.html
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb8/igt@kms_big_fb@linear-max-hw-stride-32bpp-rotate-180.html
* igt@kms_big_fb@yf-tiled-16bpp-rotate-180:
- shard-tglb: NOTRUN -> [SKIP][42] ([fdo#111615])
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb2/igt@kms_big_fb@yf-tiled-16bpp-rotate-180.html
* igt@kms_ccs@pipe-a-bad-rotation-90-4_tiled_dg2_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][43] ([i915#6095]) +1 similar issue
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb2/igt@kms_ccs@pipe-a-bad-rotation-90-4_tiled_dg2_mc_ccs.html
* igt@kms_ccs@pipe-a-crc-primary-basic-4_tiled_dg2_mc_ccs:
- shard-iclb: NOTRUN -> [SKIP][44] ([fdo#109278]) +8 similar issues
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb5/igt@kms_ccs@pipe-a-crc-primary-basic-4_tiled_dg2_mc_ccs.html
* igt@kms_ccs@pipe-a-crc-primary-rotation-180-yf_tiled_ccs:
- shard-tglb: NOTRUN -> [SKIP][45] ([fdo#111615] / [i915#3689]) +1 similar issue
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb6/igt@kms_ccs@pipe-a-crc-primary-rotation-180-yf_tiled_ccs.html
* igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs:
- shard-tglb: NOTRUN -> [SKIP][46] ([i915#3689] / [i915#6095]) +3 similar issues
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb3/igt@kms_ccs@pipe-b-bad-pixel-format-4_tiled_dg2_rc_ccs.html
* igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc:
- shard-glk: NOTRUN -> [SKIP][47] ([fdo#109271] / [i915#3886]) +3 similar issues
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk8/igt@kms_ccs@pipe-b-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs_cc:
- shard-apl: NOTRUN -> [SKIP][48] ([fdo#109271] / [i915#3886]) +2 similar issues
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-apl1/igt@kms_ccs@pipe-c-random-ccs-data-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
- shard-tglb: NOTRUN -> [SKIP][49] ([i915#3689]) +1 similar issue
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb3/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html
* igt@kms_chamelium@dp-hpd-with-enabled-mode:
- shard-iclb: NOTRUN -> [SKIP][50] ([fdo#109284] / [fdo#111827]) +2 similar issues
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb6/igt@kms_chamelium@dp-hpd-with-enabled-mode.html
* igt@kms_chamelium@hdmi-hpd-for-each-pipe:
- shard-glk: NOTRUN -> [SKIP][51] ([fdo#109271] / [fdo#111827]) +3 similar issues
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk6/igt@kms_chamelium@hdmi-hpd-for-each-pipe.html
* igt@kms_chamelium@hdmi-hpd-storm:
- shard-apl: NOTRUN -> [SKIP][52] ([fdo#109271] / [fdo#111827]) +4 similar issues
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-apl6/igt@kms_chamelium@hdmi-hpd-storm.html
- shard-tglb: NOTRUN -> [SKIP][53] ([fdo#109284] / [fdo#111827]) +2 similar issues
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb7/igt@kms_chamelium@hdmi-hpd-storm.html
* igt@kms_chamelium@vga-hpd-after-suspend:
- shard-snb: NOTRUN -> [SKIP][54] ([fdo#109271] / [fdo#111827]) +4 similar issues
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-snb2/igt@kms_chamelium@vga-hpd-after-suspend.html
* igt@kms_content_protection@uevent:
- shard-iclb: NOTRUN -> [SKIP][55] ([i915#7118])
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb1/igt@kms_content_protection@uevent.html
- shard-tglb: NOTRUN -> [SKIP][56] ([i915#6944] / [i915#7118])
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb1/igt@kms_content_protection@uevent.html
* igt@kms_cursor_crc@cursor-onscreen-32x32:
- shard-tglb: NOTRUN -> [SKIP][57] ([i915#3555]) +1 similar issue
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb6/igt@kms_cursor_crc@cursor-onscreen-32x32.html
* igt@kms_cursor_legacy@cursorb-vs-flipa@atomic-transitions-varying-size:
- shard-tglb: NOTRUN -> [SKIP][58] ([fdo#109274] / [fdo#111825]) +8 similar issues
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb1/igt@kms_cursor_legacy@cursorb-vs-flipa@atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@cursorb-vs-flipa@legacy:
- shard-iclb: NOTRUN -> [SKIP][59] ([fdo#109274]) +11 similar issues
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb1/igt@kms_cursor_legacy@cursorb-vs-flipa@legacy.html
* igt@kms_dsc@dsc-with-bpc-formats:
- shard-glk: NOTRUN -> [SKIP][60] ([fdo#109271] / [i915#7205])
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk8/igt@kms_dsc@dsc-with-bpc-formats.html
* igt@kms_flip@2x-nonexisting-fb:
- shard-apl: NOTRUN -> [SKIP][61] ([fdo#109271]) +87 similar issues
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-apl7/igt@kms_flip@2x-nonexisting-fb.html
- shard-tglb: NOTRUN -> [SKIP][62] ([fdo#109274] / [fdo#111825] / [i915#3637]) +2 similar issues
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb2/igt@kms_flip@2x-nonexisting-fb.html
* igt@kms_flip@flip-vs-expired-vblank@a-dp1:
- shard-apl: [PASS][63] -> [FAIL][64] ([i915#79])
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-apl6/igt@kms_flip@flip-vs-expired-vblank@a-dp1.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-apl6/igt@kms_flip@flip-vs-expired-vblank@a-dp1.html
* igt@kms_flip@flip-vs-suspend@b-dp1:
- shard-apl: [PASS][65] -> [DMESG-WARN][66] ([i915#180]) +3 similar issues
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-apl7/igt@kms_flip@flip-vs-suspend@b-dp1.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-apl3/igt@kms_flip@flip-vs-suspend@b-dp1.html
* igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][67] ([i915#3555]) +2 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-linear-to-64bpp-linear-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-valid-mode:
- shard-tglb: NOTRUN -> [SKIP][68] ([i915#2587] / [i915#2672])
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb7/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-16bpp-4tile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][69] ([i915#2672]) +5 similar issues
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling@pipe-a-valid-mode:
- shard-iclb: NOTRUN -> [SKIP][70] ([i915#2587] / [i915#2672]) +1 similar issue
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb8/igt@kms_flip_scaled_crc@flip-64bpp-yftile-to-16bpp-yftile-downscaling@pipe-a-valid-mode.html
* igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-default-mode:
- shard-iclb: [PASS][71] -> [SKIP][72] ([i915#3555])
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb3/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-default-mode.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb2/igt@kms_flip_scaled_crc@flip-64bpp-ytile-to-16bpp-ytile-downscaling@pipe-a-default-mode.html
* igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move:
- shard-glk: NOTRUN -> [FAIL][73] ([i915#2546])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-move.html
* igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff:
- shard-tglb: NOTRUN -> [SKIP][74] ([i915#6497]) +5 similar issues
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb3/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff.html
- shard-iclb: NOTRUN -> [FAIL][75] ([i915#2546])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb8/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-cur-indfb-onoff.html
* igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc:
- shard-tglb: NOTRUN -> [SKIP][76] ([fdo#109280] / [fdo#111825]) +8 similar issues
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb5/igt@kms_frontbuffer_tracking@fbcpsr-2p-primscrn-spr-indfb-draw-mmap-wc.html
* igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-pwrite:
- shard-iclb: NOTRUN -> [SKIP][77] ([fdo#109280]) +8 similar issues
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb1/igt@kms_frontbuffer_tracking@psr-2p-primscrn-pri-indfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-cpu:
- shard-snb: NOTRUN -> [SKIP][78] ([fdo#109271]) +189 similar issues
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-snb2/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-pri-indfb-draw-mmap-cpu.html
* igt@kms_pipe_b_c_ivb@from-pipe-c-to-b-with-3-lanes:
- shard-tglb: NOTRUN -> [SKIP][79] ([fdo#109289])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb7/igt@kms_pipe_b_c_ivb@from-pipe-c-to-b-with-3-lanes.html
- shard-iclb: NOTRUN -> [SKIP][80] ([fdo#109289])
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb5/igt@kms_pipe_b_c_ivb@from-pipe-c-to-b-with-3-lanes.html
* igt@kms_plane_lowres@tiling-none@pipe-a-edp-1:
- shard-iclb: NOTRUN -> [SKIP][81] ([i915#3536]) +2 similar issues
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb5/igt@kms_plane_lowres@tiling-none@pipe-a-edp-1.html
* igt@kms_plane_lowres@tiling-none@pipe-c-edp-1:
- shard-tglb: NOTRUN -> [SKIP][82] ([i915#3536]) +3 similar issues
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb7/igt@kms_plane_lowres@tiling-none@pipe-c-edp-1.html
* igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb:
- shard-glk: NOTRUN -> [SKIP][83] ([fdo#109271] / [i915#658]) +1 similar issue
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk9/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area-big-fb.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-iclb: NOTRUN -> [SKIP][84] ([fdo#109642] / [fdo#111068] / [i915#658])
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb3/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: NOTRUN -> [SKIP][85] ([fdo#109441])
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb5/igt@kms_psr@psr2_primary_mmap_cpu.html
- shard-tglb: NOTRUN -> [FAIL][86] ([i915#132] / [i915#3467])
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb7/igt@kms_psr@psr2_primary_mmap_cpu.html
* igt@kms_psr@psr2_sprite_plane_move:
- shard-iclb: [PASS][87] -> [SKIP][88] ([fdo#109441]) +2 similar issues
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb2/igt@kms_psr@psr2_sprite_plane_move.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb6/igt@kms_psr@psr2_sprite_plane_move.html
* igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
- shard-tglb: [PASS][89] -> [SKIP][90] ([i915#5519])
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-tglb8/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb3/igt@kms_psr_stress_test@flip-primary-invalidate-overlay.html
* igt@kms_selftest@all:
- shard-tglb: NOTRUN -> [SKIP][91] ([i915#6433])
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb5/igt@kms_selftest@all.html
- shard-iclb: NOTRUN -> [SKIP][92] ([i915#6433])
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb2/igt@kms_selftest@all.html
* igt@prime_vgem@fence-flip-hang:
- shard-tglb: NOTRUN -> [SKIP][93] ([fdo#109295])
[93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb1/igt@prime_vgem@fence-flip-hang.html
- shard-iclb: NOTRUN -> [SKIP][94] ([fdo#109295])
[94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb1/igt@prime_vgem@fence-flip-hang.html
* igt@sysfs_clients@fair-1:
- shard-apl: NOTRUN -> [SKIP][95] ([fdo#109271] / [i915#2994])
[95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-apl3/igt@sysfs_clients@fair-1.html
- shard-tglb: NOTRUN -> [SKIP][96] ([i915#2994])
[96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb8/igt@sysfs_clients@fair-1.html
- shard-glk: NOTRUN -> [SKIP][97] ([fdo#109271] / [i915#2994])
[97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk6/igt@sysfs_clients@fair-1.html
- shard-iclb: NOTRUN -> [SKIP][98] ([i915#2994])
[98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb7/igt@sysfs_clients@fair-1.html
#### Possible fixes ####
* igt@gem_exec_balancer@parallel-keep-submit-fence:
- shard-iclb: [SKIP][99] ([i915#4525]) -> [PASS][100]
[99]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb7/igt@gem_exec_balancer@parallel-keep-submit-fence.html
[100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb2/igt@gem_exec_balancer@parallel-keep-submit-fence.html
* igt@gem_exec_fair@basic-none-solo@rcs0:
- shard-apl: [FAIL][101] ([i915#2842]) -> [PASS][102]
[101]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-apl7/igt@gem_exec_fair@basic-none-solo@rcs0.html
[102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-apl3/igt@gem_exec_fair@basic-none-solo@rcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-glk: [FAIL][103] ([i915#2842]) -> [PASS][104]
[103]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-glk1/igt@gem_exec_fair@basic-pace-share@rcs0.html
[104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk2/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fair@basic-pace@vecs0:
- shard-iclb: [FAIL][105] ([i915#2842]) -> [PASS][106]
[105]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb8/igt@gem_exec_fair@basic-pace@vecs0.html
[106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb5/igt@gem_exec_fair@basic-pace@vecs0.html
* igt@i915_selftest@mock@sanitycheck:
- shard-snb: [SKIP][107] ([fdo#109271]) -> [PASS][108]
[107]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-snb4/igt@i915_selftest@mock@sanitycheck.html
[108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-snb2/igt@i915_selftest@mock@sanitycheck.html
* igt@i915_suspend@fence-restore-untiled:
- shard-apl: [DMESG-WARN][109] ([i915#180]) -> [PASS][110]
[109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-apl2/igt@i915_suspend@fence-restore-untiled.html
[110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-apl6/igt@i915_suspend@fence-restore-untiled.html
* igt@kms_atomic_transition@plane-primary-toggle-with-vblank-wait@pipe-a-hdmi-a-1:
- shard-glk: [DMESG-WARN][111] ([i915#118]) -> [PASS][112] +1 similar issue
[111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-glk3/igt@kms_atomic_transition@plane-primary-toggle-with-vblank-wait@pipe-a-hdmi-a-1.html
[112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk9/igt@kms_atomic_transition@plane-primary-toggle-with-vblank-wait@pipe-a-hdmi-a-1.html
* igt@kms_big_fb@y-tiled-64bpp-rotate-180:
- shard-glk: [FAIL][113] ([i915#5138]) -> [PASS][114]
[113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-glk5/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html
[114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk6/igt@kms_big_fb@y-tiled-64bpp-rotate-180.html
* igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1:
- shard-glk: [FAIL][115] ([i915#79]) -> [PASS][116]
[115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-glk3/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1.html
[116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk6/igt@kms_flip@flip-vs-expired-vblank-interruptible@a-hdmi-a1.html
* igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1:
- shard-iclb: [SKIP][117] ([i915#5235]) -> [PASS][118] +2 similar issues
[117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb2/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html
[118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb8/igt@kms_plane_scaling@planes-downscale-factor-0-5@pipe-a-edp-1.html
* igt@kms_psr@psr2_primary_render:
- shard-iclb: [SKIP][119] ([fdo#109441]) -> [PASS][120]
[119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb1/igt@kms_psr@psr2_primary_render.html
[120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb2/igt@kms_psr@psr2_primary_render.html
* igt@perf@stress-open-close:
- shard-glk: [INCOMPLETE][121] ([i915#5213]) -> [PASS][122]
[121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-glk9/igt@perf@stress-open-close.html
[122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk9/igt@perf@stress-open-close.html
#### Warnings ####
* igt@gem_pread@exhaustion:
- shard-apl: [WARN][123] ([i915#2658]) -> [INCOMPLETE][124] ([i915#7248])
[123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-apl6/igt@gem_pread@exhaustion.html
[124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-apl3/igt@gem_pread@exhaustion.html
- shard-tglb: [WARN][125] ([i915#2658]) -> [INCOMPLETE][126] ([i915#7248])
[125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-tglb8/igt@gem_pread@exhaustion.html
[126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb1/igt@gem_pread@exhaustion.html
- shard-glk: [WARN][127] ([i915#2658]) -> [INCOMPLETE][128] ([i915#7248])
[127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-glk5/igt@gem_pread@exhaustion.html
[128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-glk8/igt@gem_pread@exhaustion.html
* igt@gem_pwrite@basic-exhaustion:
- shard-tglb: [INCOMPLETE][129] ([i915#7248]) -> [WARN][130] ([i915#2658])
[129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-tglb1/igt@gem_pwrite@basic-exhaustion.html
[130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-tglb5/igt@gem_pwrite@basic-exhaustion.html
* igt@kms_psr2_sf@cursor-plane-move-continuous-sf:
- shard-iclb: [SKIP][131] ([i915#2920]) -> [SKIP][132] ([i915#658])
[131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb2/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html
[132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb8/igt@kms_psr2_sf@cursor-plane-move-continuous-sf.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf:
- shard-iclb: [SKIP][133] ([i915#658]) -> [SKIP][134] ([i915#2920]) +1 similar issue
[133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb3/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
[134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@primary-plane-update-sf-dmg-area:
- shard-iclb: [SKIP][135] ([fdo#111068] / [i915#658]) -> [SKIP][136] ([i915#2920])
[135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12350/shard-iclb3/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html
[136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/shard-iclb2/igt@kms_psr2_sf@primary-plane-update-sf-dmg-area.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109292]: https://bugs.freedesktop.org/show_bug.cgi?id=109292
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110725]: https://bugs.freedesktop.org/show_bug.cgi?id=110725
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
[fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1099]: https://gitlab.freedesktop.org/drm/intel/issues/1099
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2546]: https://gitlab.freedesktop.org/drm/intel/issues/2546
[i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
[i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3467]: https://gitlab.freedesktop.org/drm/intel/issues/3467
[i915#3536]: https://gitlab.freedesktop.org/drm/intel/issues/3536
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4765]: https://gitlab.freedesktop.org/drm/intel/issues/4765
[i915#5138]: https://gitlab.freedesktop.org/drm/intel/issues/5138
[i915#5213]: https://gitlab.freedesktop.org/drm/intel/issues/5213
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5519]: https://gitlab.freedesktop.org/drm/intel/issues/5519
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
[i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
[i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
[i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#7205]: https://gitlab.freedesktop.org/drm/intel/issues/7205
[i915#7248]: https://gitlab.freedesktop.org/drm/intel/issues/7248
[i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7046 -> IGTPW_8055
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12350: ce07b5c5defad15ae5fcc8e260738b08ce04a0a5 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8055: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/index.html
IGT_7046: c58d96d0fe237474b074e3472ce09c57c830d5de @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8055/index.html
[-- Attachment #2: Type: text/html, Size: 43329 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/3] test/device_reset: Refactor initiate_device_reset
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 2/3] test/device_reset: Refactor initiate_device_reset Anshuman Gupta
@ 2022-11-07 21:32 ` Rodrigo Vivi
2022-11-14 7:54 ` Nilawar, Badal
1 sibling, 0 replies; 11+ messages in thread
From: Rodrigo Vivi @ 2022-11-07 21:32 UTC (permalink / raw)
To: Anshuman Gupta; +Cc: igt-dev, badal.nilawar
On Mon, Nov 07, 2022 at 06:48:41PM +0530, Anshuman Gupta wrote:
> Added a reset type enum to support multiple types
> of reset like WARM, COLD and FLR reset.
>
> No functional change.
>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
> tests/device_reset.c | 21 +++++++++++++++------
> 1 file changed, 15 insertions(+), 6 deletions(-)
>
> diff --git a/tests/device_reset.c b/tests/device_reset.c
> index e60d4c7fd..88b786aae 100644
> --- a/tests/device_reset.c
> +++ b/tests/device_reset.c
> @@ -19,6 +19,12 @@ IGT_TEST_DESCRIPTION("Examine behavior of a driver on device sysfs reset");
> #define DEV_PATH_LEN 80
> #define DEV_BUS_ADDR_LEN 13 /* addr has form 0000:00:00.0 */
>
> +enum reset {
> + WARM_RESET,
what is the warm reset?
> + COLD_RESET,
is this cut of the power and on supposed to be supported by all
the pci devices by spec? what's the case where we can cut the power
in our case? what's the expected behavior? what are we going to use
for?
> + FLR_RESET
in our case we always promise to work if the i915 is unbound...
what's the use case we are promissing now? what platforms?
> +};
> +
> /**
> * Helper structure containing file descriptors
> * and bus address related to tested device
> @@ -222,10 +228,13 @@ static void driver_bind(struct device_fds *dev)
> }
>
> /* Initiate device reset */
> -static void initiate_device_reset(struct device_fds *dev)
> +static void initiate_device_reset(struct device_fds *dev, enum reset type)
> {
> igt_debug("reset device\n");
> - igt_assert(igt_sysfs_set(dev->fds.dev_dir, "reset", "1"));
> +
> + if (type == FLR_RESET)
> + igt_assert(igt_sysfs_set(dev->fds.dev_dir, "reset", "1"));
> +
> }
>
> static bool is_i915_wedged(int i915)
> @@ -274,14 +283,14 @@ static void set_device_filter(const char* dev_path)
> igt_assert_eq(igt_device_filter_add(filter), 1);
> }
>
> -static void unbind_reset_rebind(struct device_fds *dev)
> +static void unbind_reset_rebind(struct device_fds *dev, enum reset type)
> {
> igt_debug("close the device\n");
> close_if_opened(&dev->fds.dev);
>
> driver_unbind(dev);
>
> - initiate_device_reset(dev);
> + initiate_device_reset(dev, type);
>
> driver_bind(dev);
> }
> @@ -306,13 +315,13 @@ igt_main
> igt_describe("Unbinds driver from device, initiates reset"
> " then rebinds driver to device");
> igt_subtest("unbind-reset-rebind") {
> - unbind_reset_rebind(&dev);
> + unbind_reset_rebind(&dev, FLR_RESET);
> healthcheck(&dev);
> }
>
> igt_describe("Resets device with bound driver");
> igt_subtest("reset-bound") {
> - initiate_device_reset(&dev);
> + initiate_device_reset(&dev, FLR_RESET);
> healthcheck(&dev);
> }
>
> --
> 2.25.1
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 1/3] lib/igt_pm: Refactor get firmware_node fd
2022-11-07 17:02 ` Kamil Konieczny
@ 2022-11-08 11:48 ` Gupta, Anshuman
0 siblings, 0 replies; 11+ messages in thread
From: Gupta, Anshuman @ 2022-11-08 11:48 UTC (permalink / raw)
To: Kamil Konieczny, igt-dev@lists.freedesktop.org
Cc: Nilawar, Badal, Vivi, Rodrigo
> -----Original Message-----
> From: Kamil Konieczny <kamil.konieczny@linux.intel.com>
> Sent: Monday, November 7, 2022 10:32 PM
> To: igt-dev@lists.freedesktop.org
> Cc: Gupta, Anshuman <anshuman.gupta@intel.com>; Nilawar, Badal
> <badal.nilawar@intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>
> Subject: Re: [igt-dev] [PATCH i-g-t 1/3] lib/igt_pm: Refactor get
> firmware_node fd
>
> Hi Anshuman,
>
> On 2022-11-07 at 18:48:40 +0530, Anshuman Gupta wrote:
> > Created igt_pm_open_pci_firmware_node() to refactor the retrieving the
> > firmware_node fd code.
> >
> > igt_pm_open_pci_firmware_node() will be used by other firmware_node
> > consumers.
> >
> > While doing that fixed the leaked fd as well.
> >
> > Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> > ---
> > lib/igt_pm.c | 29 ++++++++++++++++++++---------
> > 1 file changed, 20 insertions(+), 9 deletions(-)
> >
> > diff --git a/lib/igt_pm.c b/lib/igt_pm.c index 1e6e9ed3f..e289c48e4
> > 100644
> > --- a/lib/igt_pm.c
> > +++ b/lib/igt_pm.c
> > @@ -863,6 +863,20 @@ bool i915_output_is_lpsp_capable(int drm_fd,
> igt_output_t *output)
> > return strstr(buf, "LPSP: capable"); }
> >
> > +static int igt_pm_open_pci_firmware_node(struct pci_device *pci_dev)
> > +{
> > + char name[PATH_MAX];
> > + int dir;
> > +
> > + snprintf(name, PATH_MAX,
> > +
> "/sys/bus/pci/devices/%04x:%02x:%02x.%01x/firmware_node",
> > + pci_dev->domain, pci_dev->bus, pci_dev->dev, pci_dev-
> >func);
> > +
> > + dir = open(name, O_RDONLY);
> > +
> > + return dir;
> > +}
> > +
> > /**
> > * igt_pm_acpi_d3cold_supported:
> > * @pci_dev: root port pci_dev.
> > @@ -873,23 +887,20 @@ bool i915_output_is_lpsp_capable(int drm_fd,
> igt_output_t *output)
> > */
> > bool igt_pm_acpi_d3cold_supported(struct pci_device *pci_dev) {
> > - char name[PATH_MAX];
> > - int dir, fd;
> > + int firmware_node_fd, fd;
> >
> > - snprintf(name, PATH_MAX,
> > -
> "/sys/bus/pci/devices/%04x:%02x:%02x.%01x/firmware_node",
> > - pci_dev->domain, pci_dev->bus, pci_dev->dev, pci_dev-
> >func);
> > -
> > - dir = open(name, O_RDONLY);
> > - igt_require(dir > 0);
> > + firmware_node_fd = igt_pm_open_pci_firmware_node(pci_dev);
> > + igt_require(firmware_node_fd > 0);
>
> imho it is better just return false here.
Thanks for review , I will address that.
>
> >
> > /* BIOS need to enable ACPI D3Cold Support.*/
> > - fd = openat(dir, "real_power_state", O_RDONLY);
> > + fd = openat(firmware_node_fd, "real_power_state", O_RDONLY);
> > if (fd < 0 && errno == ENOENT)
>
> Here you should also close(firmware_node_fd) before return.
Thanks for pointing it.
> Btw check for errno looks strange.
It is possible that a pcie device would not have firmware_node entry,
That is the reason to check for ENOENT, for other errors we may don’t
want to continue.
>
> > return false;
> >
> > igt_require(fd > 0);
>
> This is mixing two different error behaviour, return bool versus igt_require,
> imho it is better to return false instead.
I will send a separate cleanup patch for it.
Thanks,
Anshuman Gupta.
>
> Regards,
> Kamil
>
> >
> > + close(firmware_node_fd);
> > + close(fd);
> > return true;
> > }
> >
> > --
> > 2.25.1
> >
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/3] test/device_reset: Refactor initiate_device_reset
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 2/3] test/device_reset: Refactor initiate_device_reset Anshuman Gupta
2022-11-07 21:32 ` Rodrigo Vivi
@ 2022-11-14 7:54 ` Nilawar, Badal
1 sibling, 0 replies; 11+ messages in thread
From: Nilawar, Badal @ 2022-11-14 7:54 UTC (permalink / raw)
To: Anshuman Gupta, igt-dev; +Cc: rodrigo.vivi
Hi Anshuman,
On 07-11-2022 18:48, Anshuman Gupta wrote:
> Added a reset type enum to support multiple types
> of reset like WARM, COLD and FLR reset.
>
> No functional change.
>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
> tests/device_reset.c | 21 +++++++++++++++------
> 1 file changed, 15 insertions(+), 6 deletions(-)
>
> diff --git a/tests/device_reset.c b/tests/device_reset.c
> index e60d4c7fd..88b786aae 100644
> --- a/tests/device_reset.c
> +++ b/tests/device_reset.c
> @@ -19,6 +19,12 @@ IGT_TEST_DESCRIPTION("Examine behavior of a driver on device sysfs reset");
> #define DEV_PATH_LEN 80
> #define DEV_BUS_ADDR_LEN 13 /* addr has form 0000:00:00.0 */
>
> +enum reset {
> + WARM_RESET,
Not seeing any usage of this in IGT so lets avoid adding this.
Regards,
Badal
> + COLD_RESET,
> + FLR_RESET
> +};
> +
> /**
> * Helper structure containing file descriptors
> * and bus address related to tested device
> @@ -222,10 +228,13 @@ static void driver_bind(struct device_fds *dev)
> }
>
> /* Initiate device reset */
> -static void initiate_device_reset(struct device_fds *dev)
> +static void initiate_device_reset(struct device_fds *dev, enum reset type)
> {
> igt_debug("reset device\n");
> - igt_assert(igt_sysfs_set(dev->fds.dev_dir, "reset", "1"));
> +
> + if (type == FLR_RESET)
> + igt_assert(igt_sysfs_set(dev->fds.dev_dir, "reset", "1"));
> +
> }
>
> static bool is_i915_wedged(int i915)
> @@ -274,14 +283,14 @@ static void set_device_filter(const char* dev_path)
> igt_assert_eq(igt_device_filter_add(filter), 1);
> }
>
> -static void unbind_reset_rebind(struct device_fds *dev)
> +static void unbind_reset_rebind(struct device_fds *dev, enum reset type)
> {
> igt_debug("close the device\n");
> close_if_opened(&dev->fds.dev);
>
> driver_unbind(dev);
>
> - initiate_device_reset(dev);
> + initiate_device_reset(dev, type);
>
> driver_bind(dev);
> }
> @@ -306,13 +315,13 @@ igt_main
> igt_describe("Unbinds driver from device, initiates reset"
> " then rebinds driver to device");
> igt_subtest("unbind-reset-rebind") {
> - unbind_reset_rebind(&dev);
> + unbind_reset_rebind(&dev, FLR_RESET);
> healthcheck(&dev);
> }
>
> igt_describe("Resets device with bound driver");
> igt_subtest("reset-bound") {
> - initiate_device_reset(&dev);
> + initiate_device_reset(&dev, FLR_RESET);
> healthcheck(&dev);
> }
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 3/3] tests/device_reset: Add cold reset IGT test
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 3/3] tests/device_reset: Add cold reset IGT test Anshuman Gupta
@ 2022-11-14 11:59 ` Nilawar, Badal
0 siblings, 0 replies; 11+ messages in thread
From: Nilawar, Badal @ 2022-11-14 11:59 UTC (permalink / raw)
To: Anshuman Gupta, igt-dev; +Cc: rodrigo.vivi
Looks good to me.
Reviewed-by: Badal Nilawar <badal.nilawar@intel.com>
On 07-11-2022 18:48, Anshuman Gupta wrote:
> Add cold-reset IGT subtest, IGT subtest will use
> /sys/bus/pci/slots/$SUN/power sysfs in order to
> initiate a cold reset sequence. $SUN value will be
> retrieved from PCIe device ACPI firmware node.
>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
> lib/igt_pm.c | 40 ++++++++++++++
> lib/igt_pm.h | 1 +
> tests/device_reset.c | 124 +++++++++++++++++++++++++++++++++++++++----
> 3 files changed, 155 insertions(+), 10 deletions(-)
>
> diff --git a/lib/igt_pm.c b/lib/igt_pm.c
> index e289c48e4..c559b86f6 100644
> --- a/lib/igt_pm.c
> +++ b/lib/igt_pm.c
> @@ -877,6 +877,46 @@ static int igt_pm_open_pci_firmware_node(struct pci_device *pci_dev)
> return dir;
> }
>
> +/**
> + * igt_pm_get_pcie_acpihp_slot:
> + * @pci_dev: pci bridge device.
> + * Get pci bridge acpi hotplug slot number, if bridge's ACPI firmware_node
> + * handle supports _SUN method.
> + *
> + * Returns:
> + * PCIe bridge Slot number.
> + * Returns -ENOENT number in case firmware_node/sun is not supported by the
> + * bridge.
> + */
> +int igt_pm_get_pcie_acpihp_slot(struct pci_device *pci_dev)
> +{
> + int firmware_node_fd, fd, n_read;
> + char sun[8];
> +
> + firmware_node_fd = igt_pm_open_pci_firmware_node(pci_dev);
> +
> + if (firmware_node_fd < 0 && errno == ENOENT)
> + return -ENOENT;
> +
> + igt_require(firmware_node_fd > 0);
> +
> + fd = openat(firmware_node_fd, "sun", O_RDONLY);
> + if (fd < 0 && errno == ENOENT) {
> + close(firmware_node_fd);
> + return -ENOENT;
> + }
> +
> + igt_require(fd > 0);
> +
> + n_read = read(fd, sun, sizeof(sun));
> + igt_assert(n_read > 0);
> +
> + close(firmware_node_fd);
> + close(fd);
> +
> + return strtol(sun, NULL, 10);
> +}
> +
> /**
> * igt_pm_acpi_d3cold_supported:
> * @pci_dev: root port pci_dev.
> diff --git a/lib/igt_pm.h b/lib/igt_pm.h
> index e81fceb89..f65b960c3 100644
> --- a/lib/igt_pm.h
> +++ b/lib/igt_pm.h
> @@ -73,6 +73,7 @@ bool igt_wait_for_pm_status(enum igt_runtime_pm_status status);
> bool igt_pm_dmc_loaded(int debugfs);
> bool igt_pm_pc8_plus_residencies_enabled(int msr_fd);
> bool i915_output_is_lpsp_capable(int drm_fd, igt_output_t *output);
> +int igt_pm_get_pcie_acpihp_slot(struct pci_device *pci_dev);
> bool igt_pm_acpi_d3cold_supported(struct pci_device *pci_dev);
> enum igt_acpi_d_state
> igt_pm_get_acpi_real_d_state(struct pci_device *pci_dev);
> diff --git a/tests/device_reset.c b/tests/device_reset.c
> index 88b786aae..4f1b5efd1 100644
> --- a/tests/device_reset.c
> +++ b/tests/device_reset.c
> @@ -9,6 +9,7 @@
>
> #include "i915/gem.h"
> #include "igt.h"
> +#include "igt_device.h"
> #include "igt_device_scan.h"
> #include "igt_sysfs.h"
> #include "igt_kmod.h"
> @@ -34,6 +35,7 @@ struct device_fds {
> int dev;
> int dev_dir;
> int drv_dir;
> + int slot_dir; /* pci hotplug slots fd */
> } fds;
> char dev_bus_addr[DEV_BUS_ADDR_LEN];
> bool snd_unload;
> @@ -63,6 +65,45 @@ static int open_driver_sysfs_dir(int fd)
> return __open_sysfs_dir(fd, "device/driver");
> }
>
> +static int open_slot_sysfs_dir(int fd)
> +{
> + struct pci_device *pci_dev = NULL;
> + int slot_fd = -1, slot;
> + char slot_fd_path[PATH_MAX];
> +
> + pci_dev = igt_device_get_pci_device(fd);
> + igt_require(pci_dev);
> +
> + while ((pci_dev = pci_device_get_parent_bridge(pci_dev))) {
> + slot = igt_pm_get_pcie_acpihp_slot(pci_dev);
> + if (slot == -ENOENT) {
> + igt_debug("Bridge PCI device %04x:%02x:%02x.%01x does not support acpihp slot\n",
> + pci_dev->domain, pci_dev->bus, pci_dev->dev, pci_dev->func);
> + continue;
> + }
> +
> + /*
> + * Upon getting the valid acpihp slot number break the loop.
> + * It is the desired acpihp slot for gfx card.
> + */
> + if (slot > 0) {
> + igt_debug("Bridge PCI device %04x:%02x:%02x.%01x associated acpihp slot %d\n",
> + pci_dev->domain, pci_dev->bus, pci_dev->dev, pci_dev->func, slot);
> + break;
> + }
> + }
> +
> + if (!pci_dev)
> + return slot_fd;
> +
> + snprintf(slot_fd_path, PATH_MAX, "/sys/bus/pci/slots/%d", slot);
> + slot_fd = open(slot_fd_path, O_RDONLY);
> + if (slot_fd < 0)
> + return -errno;
> +
> + return slot_fd;
> +}
> +
> /**
> * device_sysfs_path:
> * @fd: opened device file descriptor
> @@ -125,6 +166,8 @@ static void init_device_fds(struct device_fds *dev)
>
> dev->fds.drv_dir = open_driver_sysfs_dir(dev->fds.dev);
> igt_assert_fd(dev->fds.drv_dir);
> +
> + dev->fds.slot_dir = open_slot_sysfs_dir(dev->fds.dev);
> }
>
> static int close_if_opened(int *fd)
> @@ -143,6 +186,7 @@ static void cleanup_device_fds(struct device_fds *dev)
> igt_ignore_warn(close_if_opened(&dev->fds.dev));
> igt_ignore_warn(close_if_opened(&dev->fds.dev_dir));
> igt_ignore_warn(close_if_opened(&dev->fds.drv_dir));
> + igt_ignore_warn(close_if_opened(&dev->fds.slot_dir));
> }
>
> /**
> @@ -180,6 +224,34 @@ static bool is_sysfs_reset_supported(int fd)
> return true;
> }
>
> +/**
> + * is_sysfs_cold_reset_supported:
> + * @fd: opened device file descriptor
> + *
> + * Check if device supports cold reset based on sysfs file presence.
> + *
> + * Returns:
> + * True if device supports reset, false otherwise.
> + */
> +static bool is_sysfs_cold_reset_supported(int slot_fd)
> +{
> + struct stat st;
> + int rc;
> + int cold_reset_fd = -1;
> +
> + cold_reset_fd = openat(slot_fd, "power", O_WRONLY);
> +
> + if (cold_reset_fd < 0)
> + return false;
> +
> + rc = fstat(cold_reset_fd, &st);
> + close(cold_reset_fd);
> +
> + if (rc || !S_ISREG(st.st_mode))
> + return false;
> +
> + return true;
> +}
> /* Unbind the driver from the device */
> static void driver_unbind(struct device_fds *dev)
> {
> @@ -232,8 +304,12 @@ static void initiate_device_reset(struct device_fds *dev, enum reset type)
> {
> igt_debug("reset device\n");
>
> - if (type == FLR_RESET)
> + if (type == FLR_RESET) {
> igt_assert(igt_sysfs_set(dev->fds.dev_dir, "reset", "1"));
> + } else if (type == COLD_RESET) {
> + igt_assert(igt_sysfs_set(dev->fds.slot_dir, "power", "0"));
> + igt_assert(igt_sysfs_set(dev->fds.slot_dir, "power", "1"));
> + }
>
> }
>
> @@ -312,17 +388,45 @@ igt_main
> igt_skip_on(!is_sysfs_reset_supported(dev.fds.dev));
> }
>
> - igt_describe("Unbinds driver from device, initiates reset"
> - " then rebinds driver to device");
> - igt_subtest("unbind-reset-rebind") {
> - unbind_reset_rebind(&dev, FLR_RESET);
> - healthcheck(&dev);
> + igt_subtest_group {
> + igt_describe("Unbinds driver from device, initiates reset"
> + " then rebinds driver to device");
> + igt_subtest("unbind-reset-rebind") {
> + unbind_reset_rebind(&dev, FLR_RESET);
> + healthcheck(&dev);
> + }
> +
> + igt_describe("Resets device with bound driver");
> + igt_subtest("reset-bound") {
> + initiate_device_reset(&dev, FLR_RESET);
> + /*
> + * Cold reset will initiate card boot sequence again,
> + * therefore let healthcheck() re-epen the dev fd.
> + */
> + dev.fds.dev = -1;
> + healthcheck(&dev);
> + }
> }
>
> - igt_describe("Resets device with bound driver");
> - igt_subtest("reset-bound") {
> - initiate_device_reset(&dev, FLR_RESET);
> - healthcheck(&dev);
> + igt_subtest_group {
> + igt_fixture {
> + igt_skip_on_f(dev.fds.slot_dir < 0, "Gfx Card does not support any "
> + "pcie slot for cold reset\n");
> + igt_skip_on(!is_sysfs_cold_reset_supported(dev.fds.slot_dir));
> + }
> +
> + igt_describe("Unbinds driver from device, initiates cold reset"
> + " then rebinds driver to device");
> + igt_subtest("unbind-cold-reset-rebind") {
> + unbind_reset_rebind(&dev, COLD_RESET);
> + healthcheck(&dev);
> + }
> +
> + igt_describe("Cold Resets device with bound driver");
> + igt_subtest("cold-reset-bound") {
> + initiate_device_reset(&dev, COLD_RESET);
> + healthcheck(&dev);
> + }
> }
>
> igt_fixture {
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-11-14 11:59 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-07 13:18 [igt-dev] [PATCH i-g-t 0/3] Cold Reset IGT Test Anshuman Gupta
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 1/3] lib/igt_pm: Refactor get firmware_node fd Anshuman Gupta
2022-11-07 17:02 ` Kamil Konieczny
2022-11-08 11:48 ` Gupta, Anshuman
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 2/3] test/device_reset: Refactor initiate_device_reset Anshuman Gupta
2022-11-07 21:32 ` Rodrigo Vivi
2022-11-14 7:54 ` Nilawar, Badal
2022-11-07 13:18 ` [igt-dev] [PATCH i-g-t 3/3] tests/device_reset: Add cold reset IGT test Anshuman Gupta
2022-11-14 11:59 ` Nilawar, Badal
2022-11-07 15:16 ` [igt-dev] ✓ Fi.CI.BAT: success for Cold Reset IGT Test Patchwork
2022-11-07 18:58 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox