public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
* [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