* [igt-dev] [PATCH i-g-t 0/2] PCI WARM_RESET IGT
@ 2023-01-09 12:02 Anshuman Gupta
2023-01-09 12:02 ` [igt-dev] [PATCH i-g-t 1/2] test/device_reset: Rename device_fds to device_data Anshuman Gupta
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Anshuman Gupta @ 2023-01-09 12:02 UTC (permalink / raw)
To: igt-dev; +Cc: badal.nilawar
Add warm_reset IGT Test.
Anshuman Gupta (2):
test/device_reset: Rename device_fds to device_data
tests/device_reset: Add warm_reset test
lib/igt_pci.c | 28 ++++++++++++++++++++++++++++
lib/igt_pci.h | 5 +++++
tests/device_reset.c | 34 +++++++++++++++++++++++-----------
3 files changed, 56 insertions(+), 11 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 1/2] test/device_reset: Rename device_fds to device_data
2023-01-09 12:02 [igt-dev] [PATCH i-g-t 0/2] PCI WARM_RESET IGT Anshuman Gupta
@ 2023-01-09 12:02 ` Anshuman Gupta
2023-01-09 12:02 ` [igt-dev] [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test Anshuman Gupta
` (2 subsequent siblings)
3 siblings, 0 replies; 10+ messages in thread
From: Anshuman Gupta @ 2023-01-09 12:02 UTC (permalink / raw)
To: igt-dev; +Cc: badal.nilawar
We need to encapsulate the the struct pci_device to device_fds
structure, which is a general helper data structure.
Rename its accordingly to device_data.
It will be used to encapsulate root port to support
warm reset IGT Test.
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
tests/device_reset.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/tests/device_reset.c b/tests/device_reset.c
index 39ee8dca9f..fe26030783 100644
--- a/tests/device_reset.c
+++ b/tests/device_reset.c
@@ -30,7 +30,7 @@ enum reset {
* Helper structure containing file descriptors
* and bus address related to tested device
*/
-struct device_fds {
+struct device_data {
struct {
int dev;
int dev_dir;
@@ -157,7 +157,7 @@ static char *device_sysfs_path(int fd, char *path)
return realpath(sysfs, path);
}
-static void init_device_fds(struct device_fds *dev)
+static void init_device_fds(struct device_data *dev)
{
char dev_path[PATH_MAX];
char *addr_pos;
@@ -210,7 +210,7 @@ static int close_if_opened(int *fd)
return rc;
}
-static void cleanup_device_fds(struct device_fds *dev)
+static void cleanup_device_fds(struct device_data *dev)
{
igt_ignore_warn(close_if_opened(&dev->fds.dev));
igt_ignore_warn(close_if_opened(&dev->fds.dev_dir));
@@ -283,7 +283,7 @@ static bool is_sysfs_cold_reset_supported(int slot_fd)
}
/* Unbind the driver from the device */
-static void driver_unbind(struct device_fds *dev)
+static void driver_unbind(struct device_data *dev)
{
/**
* FIXME: Unbinding the i915 driver on affected platforms with
@@ -319,7 +319,7 @@ static void driver_unbind(struct device_fds *dev)
}
/* Re-bind the driver to the device */
-static void driver_bind(struct device_fds *dev)
+static void driver_bind(struct device_data *dev)
{
igt_debug("rebind the driver to the device\n");
igt_abort_on_f(!igt_sysfs_set(dev->fds.drv_dir, "bind",
@@ -330,7 +330,7 @@ static void driver_bind(struct device_fds *dev)
}
/* Initiate device reset */
-static void initiate_device_reset(struct device_fds *dev, enum reset type)
+static void initiate_device_reset(struct device_data *dev, enum reset type)
{
igt_debug("reset device\n");
@@ -358,7 +358,7 @@ static bool is_i915_wedged(int i915)
* @dev: structure with device descriptor, if descriptor equals -1
* the device is reopened
*/
-static void healthcheck(struct device_fds *dev)
+static void healthcheck(struct device_data *dev)
{
if (dev->fds.dev == -1) {
/* refresh device list */
@@ -390,7 +390,7 @@ 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, enum reset type)
+static void unbind_reset_rebind(struct device_data *dev, enum reset type)
{
igt_debug("close the device\n");
close_if_opened(&dev->fds.dev);
@@ -404,7 +404,7 @@ static void unbind_reset_rebind(struct device_fds *dev, enum reset type)
igt_main
{
- struct device_fds dev = { .fds = {-1, -1, -1}, .dev_bus_addr = {0}, };
+ struct device_data dev = { .fds = {-1, -1, -1}, .dev_bus_addr = {0}, };
igt_fixture {
char dev_path[PATH_MAX];
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test
2023-01-09 12:02 [igt-dev] [PATCH i-g-t 0/2] PCI WARM_RESET IGT Anshuman Gupta
2023-01-09 12:02 ` [igt-dev] [PATCH i-g-t 1/2] test/device_reset: Rename device_fds to device_data Anshuman Gupta
@ 2023-01-09 12:02 ` Anshuman Gupta
2023-01-10 13:05 ` Tauro, Riana
2023-01-09 12:43 ` [igt-dev] ✓ Fi.CI.BAT: success for PCI WARM_RESET IGT Patchwork
2023-01-09 14:18 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 1 reply; 10+ messages in thread
From: Anshuman Gupta @ 2023-01-09 12:02 UTC (permalink / raw)
To: igt-dev; +Cc: badal.nilawar
Adding gfx card root port warm reset support
by triggering secondary bus reset on root port.
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
lib/igt_pci.c | 28 ++++++++++++++++++++++++++++
lib/igt_pci.h | 5 +++++
tests/device_reset.c | 18 +++++++++++++++---
3 files changed, 48 insertions(+), 3 deletions(-)
diff --git a/lib/igt_pci.c b/lib/igt_pci.c
index 61aaf939d1..3940a0ee1e 100644
--- a/lib/igt_pci.c
+++ b/lib/igt_pci.c
@@ -51,3 +51,31 @@ int find_pci_cap_offset(struct pci_device *dev, enum pci_cap_id cap_id)
{
return find_pci_cap_offset_at(dev, cap_id, PCI_CAPS_START);
}
+
+/**
+ * igt_pci_bridge_warm_reset:
+ * @dev: pci bridge device
+ *
+ * return:
+ * true on success otherwise false.
+ */
+bool igt_pci_bridge_warm_reset(struct pci_device *dev)
+{
+ uint8_t header_type;
+ uint16_t bridge_ctl;
+
+ if (pci_device_cfg_read_u8(dev, &header_type, PCI_HEADER_TYPE))
+ return false;
+
+ igt_assert_f((header_type & 0x7f) == 1, "PCI device is not a Bridge\n");
+
+ if (pci_device_cfg_read_u16(dev, &bridge_ctl, PCI_TYPE_1_HEADER_BRIDGE_CTL))
+ return false;
+
+ bridge_ctl |= PCI_TYPE_1_SEC_BUS_RESET;
+
+ if (pci_device_cfg_write_u16(dev, bridge_ctl, PCI_TYPE_1_HEADER_BRIDGE_CTL))
+ return false;
+
+ return true;
+}
diff --git a/lib/igt_pci.h b/lib/igt_pci.h
index 92b9cc3929..f755e4baab 100644
--- a/lib/igt_pci.h
+++ b/lib/igt_pci.h
@@ -12,6 +12,10 @@
/* forward declaration */
struct pci_device;
+#define PCI_HEADER_TYPE 0xe
+#define PCI_TYPE_1_HEADER_BRIDGE_CTL 0x3e
+#define PCI_TYPE_1_SEC_BUS_RESET (1 << 6)
+
#define PCI_TYPE0_1_HEADER_SIZE 0x40
#define PCI_CAPS_START 0x34
#define PCI_CFG_SPACE_SIZE 0x100
@@ -24,5 +28,6 @@ enum pci_cap_id {
#define PCI_SLOT_PWR_CTRL_PRESENT (1 << 1)
int find_pci_cap_offset(struct pci_device *dev, enum pci_cap_id cap_id);
+bool igt_pci_bridge_warm_reset(struct pci_device *dev);
#endif
diff --git a/tests/device_reset.c b/tests/device_reset.c
index fe26030783..cbb5bef443 100644
--- a/tests/device_reset.c
+++ b/tests/device_reset.c
@@ -22,8 +22,9 @@ IGT_TEST_DESCRIPTION("Examine behavior of a driver on device sysfs reset");
#define DEV_BUS_ADDR_LEN 13 /* addr has form 0000:00:00.0 */
enum reset {
- COLD_RESET,
- FLR_RESET
+ FLR_RESET,
+ WARM_RESET,
+ COLD_RESET
};
/**
@@ -39,6 +40,7 @@ struct device_data {
} fds;
char dev_bus_addr[DEV_BUS_ADDR_LEN];
bool snd_unload;
+ struct pci_device *root;
};
static int __open_sysfs_dir(int fd, const char* path)
@@ -336,6 +338,8 @@ static void initiate_device_reset(struct device_data *dev, enum reset type)
if (type == FLR_RESET) {
igt_assert(igt_sysfs_set(dev->fds.dev_dir, "reset", "1"));
+ } else if (type == WARM_RESET) {
+ igt_assert(igt_pci_bridge_warm_reset(dev->root));
} else if (type == COLD_RESET) {
igt_assert(igt_sysfs_set(dev->fds.slot_dir, "power", "0"));
igt_assert(!igt_sysfs_get_boolean(dev->fds.slot_dir, "power"));
@@ -404,7 +408,7 @@ static void unbind_reset_rebind(struct device_data *dev, enum reset type)
igt_main
{
- struct device_data dev = { .fds = {-1, -1, -1}, .dev_bus_addr = {0}, };
+ struct device_data dev = { .fds = {-1, -1, -1}, .dev_bus_addr = {0}, .root = NULL};
igt_fixture {
char dev_path[PATH_MAX];
@@ -417,6 +421,7 @@ igt_main
set_device_filter(dev_path);
igt_skip_on(!is_sysfs_reset_supported(dev.fds.dev));
+ dev.root = igt_device_get_pci_root_port(dev.fds.dev);
}
igt_describe("Unbinds driver from device, initiates reset"
@@ -432,6 +437,13 @@ igt_main
healthcheck(&dev);
}
+ igt_describe("Unbinds driver from device, initiates warm reset"
+ " then rebinds driver to device");
+ igt_subtest("unbind-warm-reset-rebind") {
+ unbind_reset_rebind(&dev, WARM_RESET);
+ healthcheck(&dev);
+ }
+
igt_subtest_group {
igt_fixture {
igt_skip_on_f(dev.fds.slot_dir < 0, "Gfx Card does not support any "
--
2.25.1
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for PCI WARM_RESET IGT
2023-01-09 12:02 [igt-dev] [PATCH i-g-t 0/2] PCI WARM_RESET IGT Anshuman Gupta
2023-01-09 12:02 ` [igt-dev] [PATCH i-g-t 1/2] test/device_reset: Rename device_fds to device_data Anshuman Gupta
2023-01-09 12:02 ` [igt-dev] [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test Anshuman Gupta
@ 2023-01-09 12:43 ` Patchwork
2023-01-09 14:18 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
3 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2023-01-09 12:43 UTC (permalink / raw)
To: Anshuman Gupta; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 4988 bytes --]
== Series Details ==
Series: PCI WARM_RESET IGT
URL : https://patchwork.freedesktop.org/series/112550/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12556 -> IGTPW_8316
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/index.html
Participating hosts (39 -> 39)
------------------------------
Additional (2): fi-kbl-soraka bat-rpls-2
Missing (2): fi-snb-2520m bat-adlp-4
Known issues
------------
Here are the changes found in IGTPW_8316 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_gttfill@basic:
- fi-kbl-soraka: NOTRUN -> [SKIP][1] ([fdo#109271]) +7 similar issues
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/fi-kbl-soraka/igt@gem_exec_gttfill@basic.html
* igt@gem_huc_copy@huc-copy:
- fi-kbl-soraka: NOTRUN -> [SKIP][2] ([fdo#109271] / [i915#2190])
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/fi-kbl-soraka/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@basic:
- fi-kbl-soraka: NOTRUN -> [SKIP][3] ([fdo#109271] / [i915#4613]) +3 similar issues
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/fi-kbl-soraka/igt@gem_lmem_swapping@basic.html
* igt@i915_module_load@reload:
- fi-kbl-soraka: NOTRUN -> [DMESG-WARN][4] ([i915#1982])
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/fi-kbl-soraka/igt@i915_module_load@reload.html
* igt@i915_selftest@live@gt_pm:
- fi-kbl-soraka: NOTRUN -> [DMESG-FAIL][5] ([i915#1886])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/fi-kbl-soraka/igt@i915_selftest@live@gt_pm.html
* igt@i915_selftest@live@perf:
- fi-kbl-soraka: NOTRUN -> [INCOMPLETE][6] ([i915#1886])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/fi-kbl-soraka/igt@i915_selftest@live@perf.html
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-kbl-soraka: NOTRUN -> [SKIP][7] ([fdo#109271] / [fdo#111827]) +7 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/fi-kbl-soraka/igt@kms_chamelium@hdmi-hpd-fast.html
#### Possible fixes ####
* igt@i915_selftest@live@gt_lrc:
- {bat-rpls-1}: [INCOMPLETE][8] ([i915#4983]) -> [PASS][9]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/bat-rpls-1/igt@i915_selftest@live@gt_lrc.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/bat-rpls-1/igt@i915_selftest@live@gt_lrc.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#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#1886]: https://gitlab.freedesktop.org/drm/intel/issues/1886
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[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#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
[i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
[i915#6997]: https://gitlab.freedesktop.org/drm/intel/issues/6997
[i915#7359]: https://gitlab.freedesktop.org/drm/intel/issues/7359
[i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7110 -> IGTPW_8316
CI-20190529: 20190529
CI_DRM_12556: ac04152253dccfb02dcedfa0c57443122cf79314 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8316: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/index.html
IGT_7110: db10a19b94d1d7ae5ba62eb48d52c47ccb27766f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
Testlist changes
----------------
+igt@device_reset@unbind-warm-reset-rebind
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/index.html
[-- Attachment #2: Type: text/html, Size: 4822 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for PCI WARM_RESET IGT
2023-01-09 12:02 [igt-dev] [PATCH i-g-t 0/2] PCI WARM_RESET IGT Anshuman Gupta
` (2 preceding siblings ...)
2023-01-09 12:43 ` [igt-dev] ✓ Fi.CI.BAT: success for PCI WARM_RESET IGT Patchwork
@ 2023-01-09 14:18 ` Patchwork
3 siblings, 0 replies; 10+ messages in thread
From: Patchwork @ 2023-01-09 14:18 UTC (permalink / raw)
To: Anshuman Gupta; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 26315 bytes --]
== Series Details ==
Series: PCI WARM_RESET IGT
URL : https://patchwork.freedesktop.org/series/112550/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12556_full -> IGTPW_8316_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/index.html
Participating hosts (14 -> 10)
------------------------------
Missing (4): shard-rkl0 pig-kbl-iris pig-glk-j5005 pig-skl-6260u
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_8316_full:
### IGT changes ###
#### Possible regressions ####
* {igt@device_reset@unbind-warm-reset-rebind} (NEW):
- {shard-rkl}: NOTRUN -> [FAIL][1]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-2/igt@device_reset@unbind-warm-reset-rebind.html
- {shard-dg1}: NOTRUN -> [INCOMPLETE][2]
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-dg1-14/igt@device_reset@unbind-warm-reset-rebind.html
- shard-apl: NOTRUN -> [FAIL][3]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl7/igt@device_reset@unbind-warm-reset-rebind.html
- {shard-tglu}: NOTRUN -> [FAIL][4]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-tglu-5/igt@device_reset@unbind-warm-reset-rebind.html
- shard-glk: NOTRUN -> [FAIL][5]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-glk8/igt@device_reset@unbind-warm-reset-rebind.html
New tests
---------
New tests have been introduced between CI_DRM_12556_full and IGTPW_8316_full:
### New IGT tests (1) ###
* igt@device_reset@unbind-warm-reset-rebind:
- Statuses : 4 fail(s) 1 incomplete(s) 1 skip(s)
- Exec time: [0.0] s
Known issues
------------
Here are the changes found in IGTPW_8316_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@fbdev@write:
- shard-glk: [PASS][6] -> [SKIP][7] ([fdo#109271]) +9 similar issues
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-glk6/igt@fbdev@write.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-glk8/igt@fbdev@write.html
* igt@gem_exec_fair@basic-none-share@rcs0:
- shard-glk: [PASS][8] -> [FAIL][9] ([i915#2842]) +2 similar issues
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-glk4/igt@gem_exec_fair@basic-none-share@rcs0.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-glk6/igt@gem_exec_fair@basic-none-share@rcs0.html
* igt@gem_exec_fair@basic-pace-share@rcs0:
- shard-apl: [PASS][10] -> [FAIL][11] ([i915#2842])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-apl1/igt@gem_exec_fair@basic-pace-share@rcs0.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl7/igt@gem_exec_fair@basic-pace-share@rcs0.html
* igt@gem_exec_fence@parallel:
- shard-glk: NOTRUN -> [SKIP][12] ([fdo#109271])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-glk8/igt@gem_exec_fence@parallel.html
* igt@gem_partial_pwrite_pread@writes-after-reads:
- shard-apl: [PASS][13] -> [INCOMPLETE][14] ([i915#7708]) +1 similar issue
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-apl1/igt@gem_partial_pwrite_pread@writes-after-reads.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl2/igt@gem_partial_pwrite_pread@writes-after-reads.html
* igt@gen9_exec_parse@allowed-single:
- shard-apl: [PASS][15] -> [DMESG-WARN][16] ([i915#5566] / [i915#716])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-apl3/igt@gen9_exec_parse@allowed-single.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl3/igt@gen9_exec_parse@allowed-single.html
* igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs:
- shard-apl: NOTRUN -> [SKIP][17] ([fdo#109271] / [i915#3886])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl6/igt@kms_ccs@pipe-b-ccs-on-another-bo-y_tiled_gen12_mc_ccs.html
* igt@kms_chamelium@dp-hpd-after-suspend:
- shard-apl: NOTRUN -> [SKIP][18] ([fdo#109271] / [fdo#111827])
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl6/igt@kms_chamelium@dp-hpd-after-suspend.html
* igt@kms_chamelium@vga-hpd-without-ddc:
- shard-snb: NOTRUN -> [SKIP][19] ([fdo#109271] / [fdo#111827]) +1 similar issue
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-snb2/igt@kms_chamelium@vga-hpd-without-ddc.html
* igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
- shard-glk: [PASS][20] -> [FAIL][21] ([i915#2346]) +1 similar issue
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-glk7/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-glk4/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
* igt@kms_psr2_sf@cursor-plane-update-sf:
- shard-apl: NOTRUN -> [SKIP][22] ([fdo#109271] / [i915#658]) +1 similar issue
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl1/igt@kms_psr2_sf@cursor-plane-update-sf.html
* igt@kms_psr_stress_test@invalidate-primary-flip-overlay:
- shard-apl: NOTRUN -> [SKIP][23] ([fdo#109271]) +35 similar issues
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl7/igt@kms_psr_stress_test@invalidate-primary-flip-overlay.html
* igt@kms_vblank@pipe-c-query-busy-hang:
- shard-snb: NOTRUN -> [SKIP][24] ([fdo#109271]) +25 similar issues
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-snb7/igt@kms_vblank@pipe-c-query-busy-hang.html
* igt@runner@aborted:
- shard-apl: NOTRUN -> [FAIL][25] ([fdo#109271] / [i915#4312])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl3/igt@runner@aborted.html
* igt@syncobj_timeline@multi-wait-all-available-submitted:
- shard-apl: [PASS][26] -> [SKIP][27] ([fdo#109271]) +7 similar issues
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-apl1/igt@syncobj_timeline@multi-wait-all-available-submitted.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl7/igt@syncobj_timeline@multi-wait-all-available-submitted.html
* igt@sysfs_clients@split-50:
- shard-apl: NOTRUN -> [SKIP][28] ([fdo#109271] / [i915#2994])
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl7/igt@sysfs_clients@split-50.html
#### Possible fixes ####
* igt@fbdev@pan:
- {shard-rkl}: [SKIP][29] ([i915#2582]) -> [PASS][30]
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-4/igt@fbdev@pan.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-6/igt@fbdev@pan.html
* igt@gem_eio@reset-stress:
- {shard-dg1}: [FAIL][31] ([i915#5784]) -> [PASS][32]
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-dg1-17/igt@gem_eio@reset-stress.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-dg1-19/igt@gem_eio@reset-stress.html
* igt@gem_eio@suspend:
- {shard-rkl}: [FAIL][33] ([i915#7052]) -> [PASS][34]
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-3/igt@gem_eio@suspend.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-1/igt@gem_eio@suspend.html
* igt@gem_exec_fair@basic-flow@rcs0:
- {shard-rkl}: [FAIL][35] ([i915#2842]) -> [PASS][36] +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-2/igt@gem_exec_fair@basic-flow@rcs0.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-3/igt@gem_exec_fair@basic-flow@rcs0.html
* igt@gem_exec_fair@basic-pace-solo@rcs0:
- shard-apl: [FAIL][37] ([i915#2842]) -> [PASS][38]
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-apl7/igt@gem_exec_fair@basic-pace-solo@rcs0.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl6/igt@gem_exec_fair@basic-pace-solo@rcs0.html
* igt@gem_exec_reloc@basic-write-wc-noreloc:
- {shard-rkl}: [SKIP][39] ([i915#3281]) -> [PASS][40] +2 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-1/igt@gem_exec_reloc@basic-write-wc-noreloc.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-5/igt@gem_exec_reloc@basic-write-wc-noreloc.html
* igt@gem_mmap_wc@set-cache-level:
- {shard-rkl}: [SKIP][41] ([i915#1850]) -> [PASS][42]
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-1/igt@gem_mmap_wc@set-cache-level.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-2/igt@gem_mmap_wc@set-cache-level.html
* igt@gem_partial_pwrite_pread@writes-after-reads-snoop:
- shard-apl: [INCOMPLETE][43] ([i915#7708]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-apl3/igt@gem_partial_pwrite_pread@writes-after-reads-snoop.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl6/igt@gem_partial_pwrite_pread@writes-after-reads-snoop.html
* igt@gem_set_tiling_vs_pwrite:
- {shard-rkl}: [SKIP][45] ([i915#3282]) -> [PASS][46] +1 similar issue
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-1/igt@gem_set_tiling_vs_pwrite.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-5/igt@gem_set_tiling_vs_pwrite.html
* igt@gen9_exec_parse@basic-rejected-ctx-param:
- {shard-rkl}: [SKIP][47] ([i915#2527]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-2/igt@gen9_exec_parse@basic-rejected-ctx-param.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-5/igt@gen9_exec_parse@basic-rejected-ctx-param.html
* igt@i915_hangman@gt-engine-error@bcs0:
- {shard-rkl}: [SKIP][49] ([i915#6258]) -> [PASS][50]
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-5/igt@i915_hangman@gt-engine-error@bcs0.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-4/igt@i915_hangman@gt-engine-error@bcs0.html
* igt@i915_selftest@live@dmabuf:
- shard-apl: [DMESG-FAIL][51] ([i915#7562]) -> [PASS][52]
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-apl2/igt@i915_selftest@live@dmabuf.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl1/igt@i915_selftest@live@dmabuf.html
* igt@i915_suspend@basic-s3-without-i915:
- shard-snb: [INCOMPLETE][53] ([i915#4528] / [i915#4817]) -> [PASS][54]
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-snb7/igt@i915_suspend@basic-s3-without-i915.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-snb4/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0:
- {shard-tglu}: [SKIP][55] ([i915#7651]) -> [PASS][56] +5 similar issues
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-tglu-6/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-tglu-4/igt@kms_big_fb@x-tiled-max-hw-stride-32bpp-rotate-0.html
* igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc:
- {shard-rkl}: [SKIP][57] ([i915#1845] / [i915#4098]) -> [PASS][58] +6 similar issues
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-3/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-6/igt@kms_ccs@pipe-a-ccs-on-another-bo-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size:
- shard-apl: [FAIL][59] ([i915#2346]) -> [PASS][60] +1 similar issue
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl2/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions-varying-size.html
* igt@kms_cursor_legacy@long-nonblocking-modeset-vs-cursor-atomic:
- shard-snb: [SKIP][61] ([fdo#109271]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-snb2/igt@kms_cursor_legacy@long-nonblocking-modeset-vs-cursor-atomic.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-snb4/igt@kms_cursor_legacy@long-nonblocking-modeset-vs-cursor-atomic.html
* igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2:
- shard-glk: [FAIL][63] ([i915#2122]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-glk8/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-glk9/igt@kms_flip@2x-plain-flip-fb-recreate-interruptible@ab-hdmi-a1-hdmi-a2.html
* igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite:
- {shard-tglu}: [SKIP][65] ([i915#1849]) -> [PASS][66] +1 similar issue
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-tglu-5/igt@kms_frontbuffer_tracking@fbc-1p-offscren-pri-shrfb-draw-pwrite.html
* igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render:
- {shard-rkl}: [SKIP][67] ([i915#1849] / [i915#4098]) -> [PASS][68] +5 similar issues
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-3/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-6/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-indfb-draw-render.html
* igt@kms_psr@no_drrs:
- {shard-rkl}: [SKIP][69] ([i915#1072]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-5/igt@kms_psr@no_drrs.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-6/igt@kms_psr@no_drrs.html
* igt@kms_universal_plane@universal-plane-pageflip-windowed-pipe-b:
- {shard-rkl}: [SKIP][71] ([i915#4070] / [i915#4098]) -> [PASS][72]
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-1/igt@kms_universal_plane@universal-plane-pageflip-windowed-pipe-b.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-6/igt@kms_universal_plane@universal-plane-pageflip-windowed-pipe-b.html
* igt@perf@gen12-unprivileged-single-ctx-counters:
- {shard-rkl}: [SKIP][73] ([fdo#109289]) -> [PASS][74]
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-rkl-5/igt@perf@gen12-unprivileged-single-ctx-counters.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-rkl-4/igt@perf@gen12-unprivileged-single-ctx-counters.html
#### Warnings ####
* igt@gem_exec_capture@capture-invisible@smem0:
- shard-glk: [SKIP][75] ([fdo#109271]) -> [SKIP][76] ([fdo#109271] / [i915#6334])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-glk8/igt@gem_exec_capture@capture-invisible@smem0.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-glk6/igt@gem_exec_capture@capture-invisible@smem0.html
- shard-apl: [SKIP][77] ([fdo#109271]) -> [SKIP][78] ([fdo#109271] / [i915#6334])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12556/shard-apl7/igt@gem_exec_capture@capture-invisible@smem0.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/shard-apl3/igt@gem_exec_capture@capture-invisible@smem0.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#109300]: https://bugs.freedesktop.org/show_bug.cgi?id=109300
[fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302
[fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
[fdo#109309]: https://bugs.freedesktop.org/show_bug.cgi?id=109309
[fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[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#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
[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#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1257]: https://gitlab.freedesktop.org/drm/intel/issues/1257
[i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
[i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
[i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
[i915#1850]: https://gitlab.freedesktop.org/drm/intel/issues/1850
[i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
[i915#2122]: https://gitlab.freedesktop.org/drm/intel/issues/2122
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
[i915#2435]: https://gitlab.freedesktop.org/drm/intel/issues/2435
[i915#2436]: https://gitlab.freedesktop.org/drm/intel/issues/2436
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[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#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
[i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
[i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
[i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
[i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
[i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
[i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
[i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
[i915#3547]: https://gitlab.freedesktop.org/drm/intel/issues/3547
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
[i915#3639]: https://gitlab.freedesktop.org/drm/intel/issues/3639
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
[i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
[i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804
[i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
[i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
[i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
[i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
[i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
[i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
[i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
[i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4767]: https://gitlab.freedesktop.org/drm/intel/issues/4767
[i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
[i915#4817]: https://gitlab.freedesktop.org/drm/intel/issues/4817
[i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
[i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
[i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245
[i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
[i915#6258]: https://gitlab.freedesktop.org/drm/intel/issues/6258
[i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
[i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
[i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
[i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
[i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
[i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
[i915#7037]: https://gitlab.freedesktop.org/drm/intel/issues/7037
[i915#7052]: https://gitlab.freedesktop.org/drm/intel/issues/7052
[i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
[i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#7178]: https://gitlab.freedesktop.org/drm/intel/issues/7178
[i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
[i915#7562]: https://gitlab.freedesktop.org/drm/intel/issues/7562
[i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
[i915#7679]: https://gitlab.freedesktop.org/drm/intel/issues/7679
[i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
[i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
[i915#7708]: https://gitlab.freedesktop.org/drm/intel/issues/7708
[i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
[i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_7110 -> IGTPW_8316
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12556: ac04152253dccfb02dcedfa0c57443122cf79314 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_8316: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8316/index.html
IGT_7110: db10a19b94d1d7ae5ba62eb48d52c47ccb27766f @ 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_8316/index.html
[-- Attachment #2: Type: text/html, Size: 22385 bytes --]
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test
2023-01-09 12:02 ` [igt-dev] [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test Anshuman Gupta
@ 2023-01-10 13:05 ` Tauro, Riana
2023-01-10 14:14 ` Gupta, Anshuman
0 siblings, 1 reply; 10+ messages in thread
From: Tauro, Riana @ 2023-01-10 13:05 UTC (permalink / raw)
To: Anshuman Gupta, igt-dev, aravind.iddamsetty, ashutosh.dixit,
badal.nilawar
Hi Anshuman,
On 1/9/2023 5:32 PM, Anshuman Gupta wrote:
> Adding gfx card root port warm reset support
> by triggering secondary bus reset on root port.
>
> Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> ---
> lib/igt_pci.c | 28 ++++++++++++++++++++++++++++
> lib/igt_pci.h | 5 +++++
> tests/device_reset.c | 18 +++++++++++++++---
> 3 files changed, 48 insertions(+), 3 deletions(-)
>
> diff --git a/lib/igt_pci.c b/lib/igt_pci.c
> index 61aaf939d1..3940a0ee1e 100644
> --- a/lib/igt_pci.c
> +++ b/lib/igt_pci.c
> @@ -51,3 +51,31 @@ int find_pci_cap_offset(struct pci_device *dev, enum pci_cap_id cap_id)
> {
> return find_pci_cap_offset_at(dev, cap_id, PCI_CAPS_START);
> }
> +
> +/**
> + * igt_pci_bridge_warm_reset:
> + * @dev: pci bridge device
> + *
> + * return:
> + * true on success otherwise false.
> + */
> +bool igt_pci_bridge_warm_reset(struct pci_device *dev)
> +{
> + uint8_t header_type;
> + uint16_t bridge_ctl;
> +
> + if (pci_device_cfg_read_u8(dev, &header_type, PCI_HEADER_TYPE))
> + return false;
> +
> + igt_assert_f((header_type & 0x7f) == 1, "PCI device is not a Bridge\n");
> +
> + if (pci_device_cfg_read_u16(dev, &bridge_ctl, PCI_TYPE_1_HEADER_BRIDGE_CTL))
> + return false;
> +
> + bridge_ctl |= PCI_TYPE_1_SEC_BUS_RESET;
> +
> + if (pci_device_cfg_write_u16(dev, bridge_ctl, PCI_TYPE_1_HEADER_BRIDGE_CTL))
> + return false;
> +
The pci code adds a minimum reset duration (Trst) delay after setting
the bit. Do we need to add the same here?
https://elixir.bootlin.com/linux/latest/source/drivers/pci/pci.c#L5045
Is restoring sequence not necessary?
Thanks
Riana
> + return true;
> +}
> diff --git a/lib/igt_pci.h b/lib/igt_pci.h
> index 92b9cc3929..f755e4baab 100644
> --- a/lib/igt_pci.h
> +++ b/lib/igt_pci.h
> @@ -12,6 +12,10 @@
> /* forward declaration */
> struct pci_device;
>
> +#define PCI_HEADER_TYPE 0xe
> +#define PCI_TYPE_1_HEADER_BRIDGE_CTL 0x3e > +#define PCI_TYPE_1_SEC_BUS_RESET (1 << 6)
> +
> #define PCI_TYPE0_1_HEADER_SIZE 0x40
> #define PCI_CAPS_START 0x34
> #define PCI_CFG_SPACE_SIZE 0x100
> @@ -24,5 +28,6 @@ enum pci_cap_id {
> #define PCI_SLOT_PWR_CTRL_PRESENT (1 << 1)
>
> int find_pci_cap_offset(struct pci_device *dev, enum pci_cap_id cap_id);
> +bool igt_pci_bridge_warm_reset(struct pci_device *dev);
>
> #endif
> diff --git a/tests/device_reset.c b/tests/device_reset.c
> index fe26030783..cbb5bef443 100644
> --- a/tests/device_reset.c
> +++ b/tests/device_reset.c
> @@ -22,8 +22,9 @@ IGT_TEST_DESCRIPTION("Examine behavior of a driver on device sysfs reset");
> #define DEV_BUS_ADDR_LEN 13 /* addr has form 0000:00:00.0 */
>
> enum reset {
> - COLD_RESET,
> - FLR_RESET
> + FLR_RESET,
> + WARM_RESET,
> + COLD_RESET
> };
>
> /**
> @@ -39,6 +40,7 @@ struct device_data {
> } fds;
> char dev_bus_addr[DEV_BUS_ADDR_LEN];
> bool snd_unload;
> + struct pci_device *root;
> };
>
> static int __open_sysfs_dir(int fd, const char* path)
> @@ -336,6 +338,8 @@ static void initiate_device_reset(struct device_data *dev, enum reset type)
>
> if (type == FLR_RESET) {
> igt_assert(igt_sysfs_set(dev->fds.dev_dir, "reset", "1"));
> + } else if (type == WARM_RESET) {
> + igt_assert(igt_pci_bridge_warm_reset(dev->root));
> } else if (type == COLD_RESET) {
> igt_assert(igt_sysfs_set(dev->fds.slot_dir, "power", "0"));
> igt_assert(!igt_sysfs_get_boolean(dev->fds.slot_dir, "power"));
> @@ -404,7 +408,7 @@ static void unbind_reset_rebind(struct device_data *dev, enum reset type)
>
> igt_main
> {
> - struct device_data dev = { .fds = {-1, -1, -1}, .dev_bus_addr = {0}, };
> + struct device_data dev = { .fds = {-1, -1, -1}, .dev_bus_addr = {0}, .root = NULL};
>
> igt_fixture {
> char dev_path[PATH_MAX];
> @@ -417,6 +421,7 @@ igt_main
> set_device_filter(dev_path);
>
> igt_skip_on(!is_sysfs_reset_supported(dev.fds.dev));
> + dev.root = igt_device_get_pci_root_port(dev.fds.dev);
> }
>
> igt_describe("Unbinds driver from device, initiates reset"
> @@ -432,6 +437,13 @@ igt_main
> healthcheck(&dev);
> }
>
> + igt_describe("Unbinds driver from device, initiates warm reset"
> + " then rebinds driver to device");
> + igt_subtest("unbind-warm-reset-rebind") {
> + unbind_reset_rebind(&dev, WARM_RESET);
> + healthcheck(&dev);
> + }
> +
> igt_subtest_group {
> igt_fixture {
> igt_skip_on_f(dev.fds.slot_dir < 0, "Gfx Card does not support any "
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test
2023-01-10 13:05 ` Tauro, Riana
@ 2023-01-10 14:14 ` Gupta, Anshuman
2023-01-10 21:14 ` Dixit, Ashutosh
0 siblings, 1 reply; 10+ messages in thread
From: Gupta, Anshuman @ 2023-01-10 14:14 UTC (permalink / raw)
To: Tauro, Riana, igt-dev@lists.freedesktop.org, Iddamsetty, Aravind,
Dixit, Ashutosh, Nilawar, Badal, Vivi, Rodrigo
> -----Original Message-----
> From: Tauro, Riana <riana.tauro@intel.com>
> Sent: Tuesday, January 10, 2023 6:36 PM
> To: Gupta, Anshuman <anshuman.gupta@intel.com>; igt-
> dev@lists.freedesktop.org; Iddamsetty, Aravind
> <aravind.iddamsetty@intel.com>; Dixit, Ashutosh
> <ashutosh.dixit@intel.com>; Nilawar, Badal <badal.nilawar@intel.com>
> Subject: Re: [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test
>
>
> Hi Anshuman,
>
> On 1/9/2023 5:32 PM, Anshuman Gupta wrote:
> > Adding gfx card root port warm reset support by triggering secondary
> > bus reset on root port.
> >
> > Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
> > ---
> > lib/igt_pci.c | 28 ++++++++++++++++++++++++++++
> > lib/igt_pci.h | 5 +++++
> > tests/device_reset.c | 18 +++++++++++++++---
> > 3 files changed, 48 insertions(+), 3 deletions(-)
> >
> > diff --git a/lib/igt_pci.c b/lib/igt_pci.c index
> > 61aaf939d1..3940a0ee1e 100644
> > --- a/lib/igt_pci.c
> > +++ b/lib/igt_pci.c
> > @@ -51,3 +51,31 @@ int find_pci_cap_offset(struct pci_device *dev,
> enum pci_cap_id cap_id)
> > {
> > return find_pci_cap_offset_at(dev, cap_id, PCI_CAPS_START);
> > }
> > +
> > +/**
> > + * igt_pci_bridge_warm_reset:
> > + * @dev: pci bridge device
> > + *
> > + * return:
> > + * true on success otherwise false.
> > + */
> > +bool igt_pci_bridge_warm_reset(struct pci_device *dev) {
> > + uint8_t header_type;
> > + uint16_t bridge_ctl;
> > +
> > + if (pci_device_cfg_read_u8(dev, &header_type, PCI_HEADER_TYPE))
> > + return false;
> > +
> > + igt_assert_f((header_type & 0x7f) == 1, "PCI device is not a
> > +Bridge\n");
> > +
> > + if (pci_device_cfg_read_u16(dev, &bridge_ctl,
> PCI_TYPE_1_HEADER_BRIDGE_CTL))
> > + return false;
> > +
> > + bridge_ctl |= PCI_TYPE_1_SEC_BUS_RESET;
> > +
> > + if (pci_device_cfg_write_u16(dev, bridge_ctl,
> PCI_TYPE_1_HEADER_BRIDGE_CTL))
> > + return false;
> > +
>
>
> The pci code adds a minimum reset duration (Trst) delay after setting the bit.
> Do we need to add the same here?
> https://elixir.bootlin.com/linux/latest/source/drivers/pci/pci.c#L5045
Thanks for review.
Will add delay of 2ms to keep parity with the kernel.
>
> Is restoring sequence not necessary?
I think driver has the responsibility of restoring.
I am not sure about if IGT needs to restore it.
The test itself has sequence of unbind and bind, so driver should restore it.
Br,
Anshuman Gupta.
>
> Thanks
> Riana
>
> > + return true;
> > +}
> > diff --git a/lib/igt_pci.h b/lib/igt_pci.h index
> > 92b9cc3929..f755e4baab 100644
> > --- a/lib/igt_pci.h
> > +++ b/lib/igt_pci.h
> > @@ -12,6 +12,10 @@
> > /* forward declaration */
> > struct pci_device;
> >
> > +#define PCI_HEADER_TYPE 0xe
> > +#define PCI_TYPE_1_HEADER_BRIDGE_CTL 0x3e > +#define
> > +PCI_TYPE_1_SEC_BUS_RESET (1 << 6)
> > +
> > #define PCI_TYPE0_1_HEADER_SIZE 0x40
> > #define PCI_CAPS_START 0x34
> > #define PCI_CFG_SPACE_SIZE 0x100
> > @@ -24,5 +28,6 @@ enum pci_cap_id {
> > #define PCI_SLOT_PWR_CTRL_PRESENT (1 << 1)
> >
> > int find_pci_cap_offset(struct pci_device *dev, enum pci_cap_id
> > cap_id);
> > +bool igt_pci_bridge_warm_reset(struct pci_device *dev);
> >
> > #endif
> > diff --git a/tests/device_reset.c b/tests/device_reset.c index
> > fe26030783..cbb5bef443 100644
> > --- a/tests/device_reset.c
> > +++ b/tests/device_reset.c
> > @@ -22,8 +22,9 @@ IGT_TEST_DESCRIPTION("Examine behavior of a driver
> on device sysfs reset");
> > #define DEV_BUS_ADDR_LEN 13 /* addr has form 0000:00:00.0 */
> >
> > enum reset {
> > - COLD_RESET,
> > - FLR_RESET
> > + FLR_RESET,
> > + WARM_RESET,
> > + COLD_RESET
> > };
> >
> > /**
> > @@ -39,6 +40,7 @@ struct device_data {
> > } fds;
> > char dev_bus_addr[DEV_BUS_ADDR_LEN];
> > bool snd_unload;
> > + struct pci_device *root;
> > };
> >
> > static int __open_sysfs_dir(int fd, const char* path) @@ -336,6
> > +338,8 @@ static void initiate_device_reset(struct device_data *dev,
> > enum reset type)
> >
> > if (type == FLR_RESET) {
> > igt_assert(igt_sysfs_set(dev->fds.dev_dir, "reset", "1"));
> > + } else if (type == WARM_RESET) {
> > + igt_assert(igt_pci_bridge_warm_reset(dev->root));
> > } else if (type == COLD_RESET) {
> > igt_assert(igt_sysfs_set(dev->fds.slot_dir, "power", "0"));
> > igt_assert(!igt_sysfs_get_boolean(dev->fds.slot_dir,
> "power")); @@
> > -404,7 +408,7 @@ static void unbind_reset_rebind(struct device_data
> > *dev, enum reset type)
> >
> > igt_main
> > {
> > - struct device_data dev = { .fds = {-1, -1, -1}, .dev_bus_addr = {0}, };
> > + struct device_data dev = { .fds = {-1, -1, -1}, .dev_bus_addr = {0},
> > +.root = NULL};
> >
> > igt_fixture {
> > char dev_path[PATH_MAX];
> > @@ -417,6 +421,7 @@ igt_main
> > set_device_filter(dev_path);
> >
> > igt_skip_on(!is_sysfs_reset_supported(dev.fds.dev));
> > + dev.root = igt_device_get_pci_root_port(dev.fds.dev);
> > }
> >
> > igt_describe("Unbinds driver from device, initiates reset"
> > @@ -432,6 +437,13 @@ igt_main
> > healthcheck(&dev);
> > }
> >
> > + igt_describe("Unbinds driver from device, initiates warm reset"
> > + " then rebinds driver to device");
> > + igt_subtest("unbind-warm-reset-rebind") {
> > + unbind_reset_rebind(&dev, WARM_RESET);
> > + healthcheck(&dev);
> > + }
> > +
> > igt_subtest_group {
> > igt_fixture {
> > igt_skip_on_f(dev.fds.slot_dir < 0, "Gfx Card does
> not support any "
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test
2023-01-10 14:14 ` Gupta, Anshuman
@ 2023-01-10 21:14 ` Dixit, Ashutosh
2023-01-11 7:39 ` Nilawar, Badal
2023-01-25 12:18 ` Gupta, Anshuman
0 siblings, 2 replies; 10+ messages in thread
From: Dixit, Ashutosh @ 2023-01-10 21:14 UTC (permalink / raw)
To: Gupta, Anshuman
Cc: igt-dev@lists.freedesktop.org, Nilawar, Badal, Vivi, Rodrigo
On Tue, 10 Jan 2023 06:14:37 -0800, Gupta, Anshuman wrote:
> > On 1/9/2023 5:32 PM, Anshuman Gupta wrote:
> > > +bool igt_pci_bridge_warm_reset(struct pci_device *dev) {
> > > + uint8_t header_type;
> > > + uint16_t bridge_ctl;
> > > +
> > > + if (pci_device_cfg_read_u8(dev, &header_type, PCI_HEADER_TYPE))
> > > + return false;
> > > +
> > > + igt_assert_f((header_type & 0x7f) == 1, "PCI device is not a
> > > +Bridge\n");
> > > +
> > > + if (pci_device_cfg_read_u16(dev, &bridge_ctl,
> > PCI_TYPE_1_HEADER_BRIDGE_CTL))
> > > + return false;
> > > +
> > > + bridge_ctl |= PCI_TYPE_1_SEC_BUS_RESET;
> > > +
> > > + if (pci_device_cfg_write_u16(dev, bridge_ctl,
> > PCI_TYPE_1_HEADER_BRIDGE_CTL))
> > > + return false;
> > > +
> >
> >
> > The pci code adds a minimum reset duration (Trst) delay after setting the bit.
> > Do we need to add the same here?
> > https://elixir.bootlin.com/linux/latest/source/drivers/pci/pci.c#L5045
> Thanks for review.
> Will add delay of 2ms to keep parity with the kernel.
> >
> > Is restoring sequence not necessary?
> I think driver has the responsibility of restoring.
> I am not sure about if IGT needs to restore it.
> The test itself has sequence of unbind and bind, so driver should restore it.
Hmm, not too sure about this stuff but looks like we should follow the
entire sequence in the kernel function pci_reset_secondary_bus()? Thanks
Riana for pointing out.
> > > @@ -417,6 +421,7 @@ igt_main
> > > set_device_filter(dev_path);
> > >
> > > igt_skip_on(!is_sysfs_reset_supported(dev.fds.dev));
> > > + dev.root = igt_device_get_pci_root_port(dev.fds.dev);
Also is SBR done on the root port or the upstream bridge, in case there is
a bridge in the middle (between the root port and the device/bus)? In which
case this should be pci_device_get_parent_bridge()?
Thanks.
--
Ashutosh
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test
2023-01-10 21:14 ` Dixit, Ashutosh
@ 2023-01-11 7:39 ` Nilawar, Badal
2023-01-25 12:18 ` Gupta, Anshuman
1 sibling, 0 replies; 10+ messages in thread
From: Nilawar, Badal @ 2023-01-11 7:39 UTC (permalink / raw)
To: Dixit, Ashutosh, Gupta, Anshuman
Cc: igt-dev@lists.freedesktop.org, Vivi, Rodrigo
On 11-01-2023 02:44, Dixit, Ashutosh wrote:
> On Tue, 10 Jan 2023 06:14:37 -0800, Gupta, Anshuman wrote:
>>> On 1/9/2023 5:32 PM, Anshuman Gupta wrote:
>>>> +bool igt_pci_bridge_warm_reset(struct pci_device *dev) {
>>>> + uint8_t header_type;
>>>> + uint16_t bridge_ctl;
>>>> +
>>>> + if (pci_device_cfg_read_u8(dev, &header_type, PCI_HEADER_TYPE))
>>>> + return false;
>>>> +
>>>> + igt_assert_f((header_type & 0x7f) == 1, "PCI device is not a
>>>> +Bridge\n");
>>>> +
>>>> + if (pci_device_cfg_read_u16(dev, &bridge_ctl,
>>> PCI_TYPE_1_HEADER_BRIDGE_CTL))
>>>> + return false;
>>>> +
>>>> + bridge_ctl |= PCI_TYPE_1_SEC_BUS_RESET;
>>>> +
>>>> + if (pci_device_cfg_write_u16(dev, bridge_ctl,
>>> PCI_TYPE_1_HEADER_BRIDGE_CTL))
>>>> + return false;
>>>> +
>>>
>>>
>>> The pci code adds a minimum reset duration (Trst) delay after setting the bit.
>>> Do we need to add the same here?
>>> https://elixir.bootlin.com/linux/latest/source/drivers/pci/pci.c#L5045
>> Thanks for review.
>> Will add delay of 2ms to keep parity with the kernel.
>>>
>>> Is restoring sequence not necessary?
>> I think driver has the responsibility of restoring.
>> I am not sure about if IGT needs to restore it.
>> The test itself has sequence of unbind and bind, so driver should restore it.
>
> Hmm, not too sure about this stuff but looks like we should follow the
> entire sequence in the kernel function pci_reset_secondary_bus()? Thanks
> Riana for pointing out.
Reset de-assert is missing here. Reset need to be de-asserted after
asserting it.
Regards,
Badal
>
>>>> @@ -417,6 +421,7 @@ igt_main
>>>> set_device_filter(dev_path);
>>>>
>>>> igt_skip_on(!is_sysfs_reset_supported(dev.fds.dev));
>>>> + dev.root = igt_device_get_pci_root_port(dev.fds.dev);
>
> Also is SBR done on the root port or the upstream bridge, in case there is
> a bridge in the middle (between the root port and the device/bus)? In which
> case this should be pci_device_get_parent_bridge()?
>
> Thanks.
> --
> Ashutosh
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [igt-dev] [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test
2023-01-10 21:14 ` Dixit, Ashutosh
2023-01-11 7:39 ` Nilawar, Badal
@ 2023-01-25 12:18 ` Gupta, Anshuman
1 sibling, 0 replies; 10+ messages in thread
From: Gupta, Anshuman @ 2023-01-25 12:18 UTC (permalink / raw)
To: Dixit, Ashutosh
Cc: igt-dev@lists.freedesktop.org, Nilawar, Badal, Vivi, Rodrigo
> -----Original Message-----
> From: Dixit, Ashutosh <ashutosh.dixit@intel.com>
> Sent: Wednesday, January 11, 2023 2:45 AM
> To: Gupta, Anshuman <anshuman.gupta@intel.com>
> Cc: Tauro, Riana <riana.tauro@intel.com>; igt-dev@lists.freedesktop.org;
> Iddamsetty, Aravind <aravind.iddamsetty@intel.com>; Nilawar, Badal
> <badal.nilawar@intel.com>; Vivi, Rodrigo <rodrigo.vivi@intel.com>
> Subject: Re: [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test
>
> On Tue, 10 Jan 2023 06:14:37 -0800, Gupta, Anshuman wrote:
> > > On 1/9/2023 5:32 PM, Anshuman Gupta wrote:
> > > > +bool igt_pci_bridge_warm_reset(struct pci_device *dev) {
> > > > + uint8_t header_type;
> > > > + uint16_t bridge_ctl;
> > > > +
> > > > + if (pci_device_cfg_read_u8(dev, &header_type, PCI_HEADER_TYPE))
> > > > + return false;
> > > > +
> > > > + igt_assert_f((header_type & 0x7f) == 1, "PCI device is not a
> > > > +Bridge\n");
> > > > +
> > > > + if (pci_device_cfg_read_u16(dev, &bridge_ctl,
> > > PCI_TYPE_1_HEADER_BRIDGE_CTL))
> > > > + return false;
> > > > +
> > > > + bridge_ctl |= PCI_TYPE_1_SEC_BUS_RESET;
> > > > +
> > > > + if (pci_device_cfg_write_u16(dev, bridge_ctl,
> > > PCI_TYPE_1_HEADER_BRIDGE_CTL))
> > > > + return false;
> > > > +
> > >
> > >
> > > The pci code adds a minimum reset duration (Trst) delay after setting the bit.
> > > Do we need to add the same here?
> > > https://elixir.bootlin.com/linux/latest/source/drivers/pci/pci.c#L50
> > > 45
> > Thanks for review.
> > Will add delay of 2ms to keep parity with the kernel.
> > >
> > > Is restoring sequence not necessary?
> > I think driver has the responsibility of restoring.
> > I am not sure about if IGT needs to restore it.
> > The test itself has sequence of unbind and bind, so driver should restore it.
>
> Hmm, not too sure about this stuff but looks like we should follow the entire
> sequence in the kernel function pci_reset_secondary_bus()? Thanks Riana for
> pointing out.
I was looking to the kernel source code , it seems by using /sys/bus/pvi/devices/$bdf/reset and /sys/bus/pvi/devices/$bdf/reset_method
sysfs we can trigger bus reset i.e warm reset. So we don't need to reinvent the wheel in IGT. So dropping the patch series.
Br,
Anshuman Gupta.
>
> > > > @@ -417,6 +421,7 @@ igt_main
> > > > set_device_filter(dev_path);
> > > >
> > > > igt_skip_on(!is_sysfs_reset_supported(dev.fds.dev));
> > > > + dev.root = igt_device_get_pci_root_port(dev.fds.dev);
>
> Also is SBR done on the root port or the upstream bridge, in case there is a
> bridge in the middle (between the root port and the device/bus)? In which case
> this should be pci_device_get_parent_bridge()?
>
> Thanks.
> --
> Ashutosh
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-01-25 12:18 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-09 12:02 [igt-dev] [PATCH i-g-t 0/2] PCI WARM_RESET IGT Anshuman Gupta
2023-01-09 12:02 ` [igt-dev] [PATCH i-g-t 1/2] test/device_reset: Rename device_fds to device_data Anshuman Gupta
2023-01-09 12:02 ` [igt-dev] [PATCH i-g-t 2/2] tests/device_reset: Add warm_reset test Anshuman Gupta
2023-01-10 13:05 ` Tauro, Riana
2023-01-10 14:14 ` Gupta, Anshuman
2023-01-10 21:14 ` Dixit, Ashutosh
2023-01-11 7:39 ` Nilawar, Badal
2023-01-25 12:18 ` Gupta, Anshuman
2023-01-09 12:43 ` [igt-dev] ✓ Fi.CI.BAT: success for PCI WARM_RESET IGT Patchwork
2023-01-09 14:18 ` [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