All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs
@ 2018-04-10 13:52 Piotr Piórkowski
  2018-04-10 13:52 ` [igt-dev] [PATCH i-g-t 2/2] tests/debugfs_test: Add subtest guc_log_relay Piotr Piórkowski
                   ` (8 more replies)
  0 siblings, 9 replies; 17+ messages in thread
From: Piotr Piórkowski @ 2018-04-10 13:52 UTC (permalink / raw)
  To: igt-dev

We doesn't have simple to use function to check if file exists
in debugfs.
Let's add function which takes as arguments the file descriptor of the
device and file name in the debugfs of this device, and return true if
file exists, otherwise false.

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
---
 lib/igt_debugfs.c | 28 ++++++++++++++++++++++++++++
 lib/igt_debugfs.h |  1 +
 2 files changed, 29 insertions(+)

diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
index 8adc02e9..a0aa357a 100644
--- a/lib/igt_debugfs.c
+++ b/lib/igt_debugfs.c
@@ -214,6 +214,34 @@ char *igt_debugfs_path(int device, char *path, int pathlen)
 	return path;
 }
 
+/**
+ * igt_debugfs_is_file_exists:
+ * @device: fd of the device
+ * @filename: name of the debugfs node to open
+ *
+ * This checks if the file exists in debugfs. The filename should be
+ * relative to the drm device's root, i.e. without "drm/$minor".
+ *
+ * Returns:
+ * The true if the file exists, otherwise false.
+ */
+bool igt_debugfs_is_file_exists(int device, const char *filename)
+{
+	struct stat buffer;
+	char path[256];
+	bool exists = false;
+
+	if (!igt_debugfs_path(device, path, sizeof(path)))
+		return false;
+
+	sprintf(path, "%s/%s", path, filename);
+
+	exists = stat(path, &buffer) == 0;
+	igt_debug("File %s %s exists\n", path, exists ? "is" : "is not");
+
+	return exists;
+}
+
 /**
  * igt_debugfs_dir:
  * @device: fd of the device
diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h
index 8d25abfe..ec91800e 100644
--- a/lib/igt_debugfs.h
+++ b/lib/igt_debugfs.h
@@ -33,6 +33,7 @@ enum pipe;
 
 const char *igt_debugfs_mount(void);
 char *igt_debugfs_path(int device, char *path, int pathlen);
+bool igt_debugfs_is_file_exists(int device, const char *filename);
 
 int igt_debugfs_dir(int device);
 
-- 
2.14.3

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

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

* [igt-dev] [PATCH i-g-t 2/2] tests/debugfs_test: Add subtest guc_log_relay
  2018-04-10 13:52 [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Piotr Piórkowski
@ 2018-04-10 13:52 ` Piotr Piórkowski
  2018-04-10 14:06   ` Chris Wilson
  2018-04-10 14:02 ` [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Chris Wilson
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Piotr Piórkowski @ 2018-04-10 13:52 UTC (permalink / raw)
  To: igt-dev

We doesn't have any tests to verify functionality of i915_guc_log_relay.
I think we should test this component.

Let's add simple subtest to debugfs_test, which will test:
- opening the i915_guc_log_relay and creating a file guc_log0,
- flushing GuC log buffer,
- closing i915_guc_log_relay with removing from debugfs guc_log0.

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
---
 tests/debugfs_test.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)

diff --git a/tests/debugfs_test.c b/tests/debugfs_test.c
index 2e87e442..f9a859a4 100644
--- a/tests/debugfs_test.c
+++ b/tests/debugfs_test.c
@@ -87,6 +87,18 @@ static void read_and_discard_sysfs_entries(int path_fd, int indent)
 	closedir(dir);
 }
 
+static bool is_guc_loaded(int gfx_fd)
+{
+	bool load = false;
+
+	// Look for: "status: fetch SUCCESS, load SUCCESS" in debugfs
+	load = igt_debugfs_search(gfx_fd, "i915_guc_load_status",
+	"\tstatus: fetch SUCCESS, load SUCCESS");
+	igt_debug("GuC %s loaded\n", load ? "is" : "is not");
+
+	return load;
+}
+
 igt_main
 {
 	int fd = -1, debugfs;
@@ -173,6 +185,81 @@ igt_main
 		igt_success();
 	}
 
+	igt_subtest("guc_log_relay") {
+
+		#define I915_GUC_LOG_RELAY_FILE  "i915_guc_log_relay"
+		#define GUC_LOG_FILE  "guc_log0"
+
+		int page_size = getpagesize();
+		int gen;
+		int fd_relay = -1, fd_log = -1;
+		int sysfs_parameters_dir;
+		ssize_t read_size;
+		uint32_t enable_guc_param;
+		uint8_t *buffer = malloc(page_size);
+
+		gen = intel_gen(intel_get_drm_devid(fd));
+		igt_require(gen >= 9);
+
+		/* We check if the guc is enabled in i915 parameters*/
+		sysfs_parameters_dir = igt_sysfs_open_parameters(fd);
+		igt_assert(sysfs_parameters_dir >= 0);
+		enable_guc_param = igt_sysfs_get_u32(sysfs_parameters_dir,
+							"enable_guc");
+		igt_require(enable_guc_param != 0);
+
+		/* GuC should be loaded */
+		igt_assert(is_guc_loaded(fd));
+
+		debugfs = igt_debugfs_dir(fd);
+
+		fd_relay = openat(debugfs, I915_GUC_LOG_RELAY_FILE, O_RDWR);
+		igt_assert(fd_relay > 0);
+
+		/*
+		 * The GUC_LOG_FILE should be created
+		 *	after opening the I915_GUC_LOG_RELAY_FILE file
+		 */
+		fd_log = igt_debugfs_open(fd, GUC_LOG_FILE, O_RDONLY);
+		igt_assert(fd_log > 0);
+
+		/*
+		 * We want to check flush and read from GUC_LOG_FILE.
+		 * First, we read all available bytes from buffer
+		 * (if any bytes are ready to be read).
+		 */
+
+		do {
+			read_size = read(fd_log, buffer, page_size);
+			igt_debug("Shall attempt to read %d bytes from file %s. \
+					The number of bytes actually read: %li\n",
+					page_size, GUC_LOG_FILE, read_size);
+		} while (read_size != 0);
+
+		/*
+		 * When buffer is empty, we trigger a flush
+		 * by sending anything to the file I915_GUC_LOG_RELAY_FILE
+		 */
+		write(fd_relay, buffer, 1);
+
+		/* We read again and now we should get some bytes */
+		read_size = read(fd_log, buffer, page_size);
+		igt_debug("Shall attempt to read %d bytes from file %s. \
+				The number of bytes actually read: %li\n",
+				page_size, GUC_LOG_FILE, read_size);
+		igt_assert(read_size > 0);
+
+		/*
+		 * Now we try close the I915_GUC_LOG_RELAY_FILE file.
+		 * This should cause the GUC_LOG_FILE file to be closed
+		 * and removed from debugfs
+		 */
+		close(fd_relay);
+		igt_assert(!igt_debugfs_is_file_exists(fd, GUC_LOG_FILE));
+
+		igt_success();
+	}
+
 	igt_fixture {
 		igt_display_fini(&display);
 		close(debugfs);
-- 
2.14.3

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

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

* Re: [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs
  2018-04-10 13:52 [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Piotr Piórkowski
  2018-04-10 13:52 ` [igt-dev] [PATCH i-g-t 2/2] tests/debugfs_test: Add subtest guc_log_relay Piotr Piórkowski
@ 2018-04-10 14:02 ` Chris Wilson
  2018-04-10 14:46 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] " Patchwork
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2018-04-10 14:02 UTC (permalink / raw)
  To: Piotr Piórkowski, igt-dev

Quoting Piotr Piórkowski (2018-04-10 14:52:26)
> We doesn't have simple to use function to check if file exists
> in debugfs.
> Let's add function which takes as arguments the file descriptor of the
> device and file name in the debugfs of this device, and return true if
> file exists, otherwise false.
> 
> Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Michał Winiarski <michal.winiarski@intel.com>
> ---
>  lib/igt_debugfs.c | 28 ++++++++++++++++++++++++++++
>  lib/igt_debugfs.h |  1 +
>  2 files changed, 29 insertions(+)
> 
> diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
> index 8adc02e9..a0aa357a 100644
> --- a/lib/igt_debugfs.c
> +++ b/lib/igt_debugfs.c
> @@ -214,6 +214,34 @@ char *igt_debugfs_path(int device, char *path, int pathlen)
>         return path;
>  }
>  
> +/**
> + * igt_debugfs_is_file_exists:

is_file_exists?

	igt_debugfs_file_exists
or
	igt_debugfs_has_filename

> + * @device: fd of the device
> + * @filename: name of the debugfs node to open
> + *
> + * This checks if the file exists in debugfs. The filename should be
> + * relative to the drm device's root, i.e. without "drm/$minor".
> + *
> + * Returns:
> + * The true if the file exists, otherwise false.
> + */
> +bool igt_debugfs_is_file_exists(int device, const char *filename)
> +{
	bool exists;
	int dir;

	dir = igt_debugfs_dir(device);
	exists = faccessat(dir, filename, F_OK, 0) == 0;
	close(dir);

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

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

* Re: [igt-dev] [PATCH i-g-t 2/2] tests/debugfs_test: Add subtest guc_log_relay
  2018-04-10 13:52 ` [igt-dev] [PATCH i-g-t 2/2] tests/debugfs_test: Add subtest guc_log_relay Piotr Piórkowski
@ 2018-04-10 14:06   ` Chris Wilson
  0 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2018-04-10 14:06 UTC (permalink / raw)
  To: Piotr Piórkowski, igt-dev

Quoting Piotr Piórkowski (2018-04-10 14:52:27)
> We doesn't have any tests to verify functionality of i915_guc_log_relay.
> I think we should test this component.
> 
> Let's add simple subtest to debugfs_test, which will test:
> - opening the i915_guc_log_relay and creating a file guc_log0,
> - flushing GuC log buffer,
> - closing i915_guc_log_relay with removing from debugfs guc_log0.
> 
> Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Michał Winiarski <michal.winiarski@intel.com>
> ---
>  tests/debugfs_test.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 87 insertions(+)
> 
> diff --git a/tests/debugfs_test.c b/tests/debugfs_test.c
> index 2e87e442..f9a859a4 100644
> --- a/tests/debugfs_test.c
> +++ b/tests/debugfs_test.c
> @@ -87,6 +87,18 @@ static void read_and_discard_sysfs_entries(int path_fd, int indent)
>         closedir(dir);
>  }
>  
> +static bool is_guc_loaded(int gfx_fd)
> +{
> +       bool load = false;
> +
> +       // Look for: "status: fetch SUCCESS, load SUCCESS" in debugfs
> +       load = igt_debugfs_search(gfx_fd, "i915_guc_load_status",
> +       "    status: fetch SUCCESS, load SUCCESS");
> +       igt_debug("GuC %s loaded\n", load ? "is" : "is not");
> +
> +       return load;
> +}
> +
>  igt_main
>  {
>         int fd = -1, debugfs;
> @@ -173,6 +185,81 @@ igt_main
>                 igt_success();
>         }
>  
> +       igt_subtest("guc_log_relay") {
> +
> +               #define I915_GUC_LOG_RELAY_FILE  "i915_guc_log_relay"
> +               #define GUC_LOG_FILE  "guc_log0"
> +
> +               int page_size = getpagesize();
> +               int gen;
> +               int fd_relay = -1, fd_log = -1;
> +               int sysfs_parameters_dir;
> +               ssize_t read_size;
> +               uint32_t enable_guc_param;
> +               uint8_t *buffer = malloc(page_size);
> +
> +               gen = intel_gen(intel_get_drm_devid(fd));
> +               igt_require(gen >= 9);
> +
> +               /* We check if the guc is enabled in i915 parameters*/
> +               sysfs_parameters_dir = igt_sysfs_open_parameters(fd);
> +               igt_assert(sysfs_parameters_dir >= 0);
> +               enable_guc_param = igt_sysfs_get_u32(sysfs_parameters_dir,
> +                                                       "enable_guc");
> +               igt_require(enable_guc_param != 0);

If you need the guc, load the guc. This isn't a general debugfs test.

> +
> +               /* GuC should be loaded */
> +               igt_assert(is_guc_loaded(fd));
> +
> +               debugfs = igt_debugfs_dir(fd);
> +
> +               fd_relay = openat(debugfs, I915_GUC_LOG_RELAY_FILE, O_RDWR);
> +               igt_assert(fd_relay > 0);
> +
> +               /*
> +                * The GUC_LOG_FILE should be created
> +                *      after opening the I915_GUC_LOG_RELAY_FILE file
> +                */
> +               fd_log = igt_debugfs_open(fd, GUC_LOG_FILE, O_RDONLY);
> +               igt_assert(fd_log > 0);
> +
> +               /*
> +                * We want to check flush and read from GUC_LOG_FILE.
> +                * First, we read all available bytes from buffer
> +                * (if any bytes are ready to be read).
> +                */
> +
> +               do {
> +                       read_size = read(fd_log, buffer, page_size);
> +                       igt_debug("Shall attempt to read %d bytes from file %s. \
> +                                       The number of bytes actually read: %li\n",
> +                                       page_size, GUC_LOG_FILE, read_size);
> +               } while (read_size != 0);
> +
> +               /*
> +                * When buffer is empty, we trigger a flush
> +                * by sending anything to the file I915_GUC_LOG_RELAY_FILE
> +                */
> +               write(fd_relay, buffer, 1);
> +
> +               /* We read again and now we should get some bytes */
> +               read_size = read(fd_log, buffer, page_size);
> +               igt_debug("Shall attempt to read %d bytes from file %s. \
> +                               The number of bytes actually read: %li\n",
> +                               page_size, GUC_LOG_FILE, read_size);
> +               igt_assert(read_size > 0);
> +
> +               /*
> +                * Now we try close the I915_GUC_LOG_RELAY_FILE file.
> +                * This should cause the GUC_LOG_FILE file to be closed
> +                * and removed from debugfs
> +                */
> +               close(fd_relay);
> +               igt_assert(!igt_debugfs_is_file_exists(fd, GUC_LOG_FILE));

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

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

* [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs
  2018-04-10 13:52 [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Piotr Piórkowski
  2018-04-10 13:52 ` [igt-dev] [PATCH i-g-t 2/2] tests/debugfs_test: Add subtest guc_log_relay Piotr Piórkowski
  2018-04-10 14:02 ` [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Chris Wilson
@ 2018-04-10 14:46 ` Patchwork
  2018-04-10 16:57 ` [igt-dev] ✗ Fi.CI.IGT: warning " Patchwork
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-04-10 14:46 UTC (permalink / raw)
  To: Piotr Piórkowski; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs
URL   : https://patchwork.freedesktop.org/series/41476/
State : success

== Summary ==

IGT patchset tested on top of latest successful build
7c474e011548d35df6b80ceed81d3e6ca560c71d tests/perf: fix gen8 small cores whitelist expectation

with latest DRM-Tip kernel build CI_DRM_4040
8e7a3b1c5ebd drm-tip: 2018y-04m-10d-10h-47m-52s UTC integration manifest

Testlist changes:
+igt@debugfs_test@guc_log_relay

---- Possible new issues:

Test gem_exec_gttfill:
        Subgroup basic:
                skip       -> PASS       (fi-pnv-d510)

---- Known issues:

Test debugfs_test:
        Subgroup read_all_entries:
                incomplete -> PASS       (fi-snb-2520m) fdo#103713
Test gem_mmap_gtt:
        Subgroup basic-small-bo-tiledx:
                pass       -> FAIL       (fi-gdg-551) fdo#102575
Test kms_pipe_crc_basic:
        Subgroup read-crc-pipe-b-frame-sequence:
                pass       -> FAIL       (fi-cfl-s3) fdo#103481

fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
fdo#102575 https://bugs.freedesktop.org/show_bug.cgi?id=102575
fdo#103481 https://bugs.freedesktop.org/show_bug.cgi?id=103481

fi-bdw-5557u     total:285  pass:264  dwarn:0   dfail:0   fail:0   skip:21  time:429s
fi-bdw-gvtdvm    total:285  pass:261  dwarn:0   dfail:0   fail:0   skip:24  time:449s
fi-blb-e6850     total:285  pass:220  dwarn:1   dfail:0   fail:0   skip:64  time:383s
fi-bsw-n3050     total:285  pass:239  dwarn:0   dfail:0   fail:0   skip:46  time:545s
fi-bwr-2160      total:285  pass:180  dwarn:0   dfail:0   fail:0   skip:105 time:297s
fi-bxt-dsi       total:285  pass:255  dwarn:0   dfail:0   fail:0   skip:30  time:516s
fi-bxt-j4205     total:285  pass:256  dwarn:0   dfail:0   fail:0   skip:29  time:514s
fi-byt-j1900     total:285  pass:250  dwarn:0   dfail:0   fail:0   skip:35  time:529s
fi-byt-n2820     total:285  pass:246  dwarn:0   dfail:0   fail:0   skip:39  time:512s
fi-cfl-8700k     total:285  pass:257  dwarn:0   dfail:0   fail:0   skip:28  time:415s
fi-cfl-s3        total:285  pass:258  dwarn:0   dfail:0   fail:1   skip:26  time:561s
fi-cfl-u         total:285  pass:259  dwarn:0   dfail:0   fail:0   skip:26  time:519s
fi-cnl-y3        total:285  pass:259  dwarn:0   dfail:0   fail:0   skip:26  time:596s
fi-elk-e7500     total:285  pass:226  dwarn:0   dfail:0   fail:0   skip:59  time:423s
fi-gdg-551       total:285  pass:176  dwarn:0   dfail:0   fail:1   skip:108 time:319s
fi-glk-1         total:285  pass:257  dwarn:0   dfail:0   fail:0   skip:28  time:539s
fi-glk-j4005     total:285  pass:256  dwarn:0   dfail:0   fail:0   skip:29  time:488s
fi-hsw-4770      total:285  pass:258  dwarn:0   dfail:0   fail:0   skip:27  time:411s
fi-ilk-650       total:285  pass:225  dwarn:0   dfail:0   fail:0   skip:60  time:424s
fi-ivb-3520m     total:285  pass:256  dwarn:0   dfail:0   fail:0   skip:29  time:472s
fi-ivb-3770      total:285  pass:252  dwarn:0   dfail:0   fail:0   skip:33  time:434s
fi-kbl-7500u     total:285  pass:260  dwarn:1   dfail:0   fail:0   skip:24  time:475s
fi-kbl-7567u     total:285  pass:265  dwarn:0   dfail:0   fail:0   skip:20  time:461s
fi-kbl-r         total:285  pass:258  dwarn:0   dfail:0   fail:0   skip:27  time:508s
fi-pnv-d510      total:285  pass:220  dwarn:1   dfail:0   fail:0   skip:64  time:670s
fi-skl-6260u     total:285  pass:265  dwarn:0   dfail:0   fail:0   skip:20  time:442s
fi-skl-6600u     total:285  pass:258  dwarn:0   dfail:0   fail:0   skip:27  time:531s
fi-skl-6700k2    total:285  pass:261  dwarn:0   dfail:0   fail:0   skip:24  time:507s
fi-skl-6770hq    total:285  pass:265  dwarn:0   dfail:0   fail:0   skip:20  time:501s
fi-skl-guc       total:285  pass:257  dwarn:0   dfail:0   fail:0   skip:28  time:434s
fi-skl-gvtdvm    total:285  pass:262  dwarn:0   dfail:0   fail:0   skip:23  time:447s
fi-snb-2520m     total:285  pass:245  dwarn:0   dfail:0   fail:0   skip:40  time:584s
fi-snb-2600      total:285  pass:245  dwarn:0   dfail:0   fail:0   skip:40  time:398s

== Logs ==

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

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

* [igt-dev] ✗ Fi.CI.IGT: warning for series starting with [i-g-t,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs
  2018-04-10 13:52 [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Piotr Piórkowski
                   ` (2 preceding siblings ...)
  2018-04-10 14:46 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] " Patchwork
@ 2018-04-10 16:57 ` Patchwork
  2018-04-24  7:50 ` [igt-dev] [PATCH v2 1/2] " Piotr Piorkowski
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-04-10 16:57 UTC (permalink / raw)
  To: Piotr Piórkowski; +Cc: igt-dev

== Series Details ==

Series: series starting with [i-g-t,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs
URL   : https://patchwork.freedesktop.org/series/41476/
State : warning

== Summary ==

= CI Bug Log - changes from CI_DRM_4040_full -> IGTPW_1242_full =

== Summary - WARNING ==

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

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1242/

== Possible new issues ==

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

  === IGT changes ===

    ==== Warnings ====

    igt@perf_pmu@rc6:
      shard-kbl:          SKIP -> PASS +1

    
== Known issues ==

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

  === IGT changes ===

    ==== Issues hit ====

    igt@kms_chv_cursor_fail@pipe-b-128x128-left-edge:
      shard-kbl:          PASS -> DMESG-WARN (fdo#103558) +27

    igt@kms_flip@2x-plain-flip-ts-check:
      shard-hsw:          PASS -> FAIL (fdo#100368)

    igt@kms_rotation_crc@primary-rotation-180:
      shard-snb:          PASS -> FAIL (fdo#103925)

    
    ==== Possible fixes ====

    igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
      shard-hsw:          FAIL (fdo#104873) -> PASS

    igt@kms_flip@flip-vs-expired-vblank-interruptible:
      shard-hsw:          FAIL (fdo#105189) -> PASS

    igt@kms_rotation_crc@sprite-rotation-180:
      shard-snb:          FAIL (fdo#103925) -> PASS

    
  fdo#100368 https://bugs.freedesktop.org/show_bug.cgi?id=100368
  fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
  fdo#103925 https://bugs.freedesktop.org/show_bug.cgi?id=103925
  fdo#104873 https://bugs.freedesktop.org/show_bug.cgi?id=104873
  fdo#105189 https://bugs.freedesktop.org/show_bug.cgi?id=105189


== Participating hosts (6 -> 4) ==

  Missing    (2): shard-glk shard-glkb 


== Build changes ==

    * IGT: IGT_4418 -> IGTPW_1242

  CI_DRM_4040: 8e7a3b1c5ebd06c5740b0fea76f46ff23d373bd5 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_1242: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_1242/
  IGT_4418: 7c474e011548d35df6b80ceed81d3e6ca560c71d @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  piglit_4418: 45e115f293fd6acc0c9647cf2d3b76be78819ba5 @ git://anongit.freedesktop.org/piglit

== Logs ==

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

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

* [igt-dev] [PATCH v2 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs
  2018-04-10 13:52 [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Piotr Piórkowski
                   ` (3 preceding siblings ...)
  2018-04-10 16:57 ` [igt-dev] ✗ Fi.CI.IGT: warning " Patchwork
@ 2018-04-24  7:50 ` Piotr Piorkowski
  2018-04-24  8:27   ` Chris Wilson
                     ` (3 more replies)
  2018-04-24  7:50 ` [igt-dev] [PATCH v2 " Piotr Piorkowski
                   ` (3 subsequent siblings)
  8 siblings, 4 replies; 17+ messages in thread
From: Piotr Piorkowski @ 2018-04-24  7:50 UTC (permalink / raw)
  To: igt-dev

From: Piotr Piórkowski <piotr.piorkowski@intel.com>

We doesn't have simple to use function to check if file exists
in debugfs.
Let's add function which takes as arguments the file descriptor of the
device and file name in the debugfs of this device, and return true if
file exists, otherwise false.

v2:
- rename function (Chris)
- modify function (Chris)

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
 lib/igt_debugfs.c | 25 +++++++++++++++++++++++++
 lib/igt_debugfs.h |  1 +
 2 files changed, 26 insertions(+)

diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
index 8adc02e9..d49a83e3 100644
--- a/lib/igt_debugfs.c
+++ b/lib/igt_debugfs.c
@@ -214,6 +214,31 @@ char *igt_debugfs_path(int device, char *path, int pathlen)
 	return path;
 }
 
+/**
+ * igt_debugfs_has_filename:
+ * @device: fd of the device
+ * @filename: name of the debugfs node to open
+ *
+ * This checks if the debugfs has filename. The filename should be
+ * relative to the drm device's root, i.e. without "drm/$minor".
+ *
+ * Returns:
+ * The true if the file exists, otherwise false.
+ */
+bool igt_debugfs_has_filename(int device, const char *filename)
+{
+	bool exists = false;
+	int dir;
+
+	dir = igt_debugfs_dir(device);
+	exists = faccessat(dir, filename, F_OK, 0) == 0;
+	close(dir);
+
+	igt_debug("File %s %s exists\n", filename, exists ? "is" : "is not");
+
+	return exists;
+}
+
 /**
  * igt_debugfs_dir:
  * @device: fd of the device
diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h
index 8d25abfe..d3b274af 100644
--- a/lib/igt_debugfs.h
+++ b/lib/igt_debugfs.h
@@ -33,6 +33,7 @@ enum pipe;
 
 const char *igt_debugfs_mount(void);
 char *igt_debugfs_path(int device, char *path, int pathlen);
+bool igt_debugfs_has_filename(int device, const char *filename);
 
 int igt_debugfs_dir(int device);
 
-- 
2.14.3

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

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

* [igt-dev] [PATCH v2 2/2] tests/debugfs_test: Add subtest guc_log_relay
  2018-04-10 13:52 [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Piotr Piórkowski
                   ` (4 preceding siblings ...)
  2018-04-24  7:50 ` [igt-dev] [PATCH v2 1/2] " Piotr Piorkowski
@ 2018-04-24  7:50 ` Piotr Piorkowski
  2018-04-24  8:34   ` Chris Wilson
  2018-04-24  8:52 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v2,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs (rev2) Patchwork
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 17+ messages in thread
From: Piotr Piorkowski @ 2018-04-24  7:50 UTC (permalink / raw)
  To: igt-dev

From: Piotr Piórkowski <piotr.piorkowski@intel.com>

We doesn't have any tests to verify functionality of i915_guc_log_relay.
I think we should test this component.

Let's add simple subtest to debugfs_test, which will test if guc
is enabled:
- opening the i915_guc_log_relay and creating a file guc_log0,
- flushing GuC log buffer,
- closing i915_guc_log_relay with removing from debugfs guc_log0.
Otherwise, the test will check if the attempt to open the guc_log_relay
returns an error ENODEV.

v2:
- guc isn't required for run the subtest (Chris)
- rewrite subtest as function (Michal Winiarski)
- add case when the guc is not enabled

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/debugfs_test.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 93 insertions(+)

diff --git a/tests/debugfs_test.c b/tests/debugfs_test.c
index 2e87e442..c7a953b1 100644
--- a/tests/debugfs_test.c
+++ b/tests/debugfs_test.c
@@ -26,6 +26,7 @@
 #include <fcntl.h>
 #include <sys/types.h>
 #include <dirent.h>
+#include <errno.h>
 
 static void read_and_discard_sysfs_entries(int path_fd, int indent)
 {
@@ -87,6 +88,95 @@ static void read_and_discard_sysfs_entries(int path_fd, int indent)
 	closedir(dir);
 }
 
+static bool is_guc_loaded(int gfx_fd)
+{
+	bool load;
+
+	load = igt_debugfs_search(gfx_fd, "i915_guc_load_status",
+				"\tstatus: fetch SUCCESS, load SUCCESS");
+	igt_debug("GuC %s loaded\n", load ? "is" : "is not");
+
+	return load;
+}
+
+#define I915_GUC_LOG_RELAY_FILE  "i915_guc_log_relay"
+#define GUC_LOG_FILE  "guc_log0"
+
+static void check_guc_log_relay(int gfx_fd)
+{
+
+	int page_size = getpagesize();
+	int fd_relay = -1, fd_log = -1;
+	ssize_t read_size;
+	uint8_t *buffer;
+	bool guc_is_loaded;
+	int debugfs;
+
+	guc_is_loaded = is_guc_loaded(gfx_fd);
+
+	debugfs = igt_debugfs_dir(gfx_fd);
+	fd_relay = openat(debugfs, I915_GUC_LOG_RELAY_FILE, O_RDWR);
+
+	if (!guc_is_loaded) {
+		igt_debug("Case when GuC is disabled\n");
+		igt_debug("Attempt open file %s return value: %d ( %m )\n",
+			  I915_GUC_LOG_RELAY_FILE, errno);
+
+		igt_assert(errno == ENODEV);
+		return;
+	}
+
+	igt_debug("Case when GuC is enabled\n");
+
+	igt_assert(fd_relay > 0);
+	/*
+	 * The GUC_LOG_FILE should be created
+	 *	after opening the I915_GUC_LOG_RELAY_FILE file
+	 */
+	fd_log = igt_debugfs_open(gfx_fd, GUC_LOG_FILE, O_RDONLY);
+	igt_assert(fd_log > 0);
+
+	/*
+	 * We want to check flush and read from GUC_LOG_FILE.
+	 * First, we read all available bytes from buffer
+	 * (if any bytes are ready to be read).
+	 */
+	buffer = malloc(page_size);
+	do {
+		read_size = read(fd_log, buffer, page_size);
+		igt_debug("Shall attempt to read %d bytes from file %s.\n"
+			  "The number of bytes actually read: %li\n",
+			  page_size, GUC_LOG_FILE, read_size);
+	} while (read_size != 0);
+
+	/*
+	 * When buffer is empty, we trigger a flush
+	 * by sending anything to the file
+	 * I915_GUC_LOG_RELAY_FILE
+	 */
+	write(fd_relay, buffer, 1);
+
+	/* We read again and now we should get some bytes */
+	read_size = read(fd_log, buffer, page_size);
+
+	free(buffer);
+
+	igt_debug("Shall attempt to read %d bytes from file %s.\n"
+		  "The number of bytes actually read: %li\n",
+		  page_size, GUC_LOG_FILE, read_size);
+
+
+	igt_assert(read_size > 0);
+
+	/*
+	 * Now we try close the I915_GUC_LOG_RELAY_FILE file.
+	 * This should cause the GUC_LOG_FILE file to be closed
+	 * and removed from debugfs
+	 */
+	close(fd_relay);
+	igt_assert(!igt_debugfs_has_filename(gfx_fd, GUC_LOG_FILE));
+}
+
 igt_main
 {
 	int fd = -1, debugfs;
@@ -173,6 +263,9 @@ igt_main
 		igt_success();
 	}
 
+	igt_subtest("guc_log_relay")
+		check_guc_log_relay(fd);
+
 	igt_fixture {
 		igt_display_fini(&display);
 		close(debugfs);
-- 
2.14.3

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

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

* Re: [igt-dev] [PATCH v2 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs
  2018-04-24  7:50 ` [igt-dev] [PATCH v2 1/2] " Piotr Piorkowski
@ 2018-04-24  8:27   ` Chris Wilson
  2018-05-15 15:29   ` [igt-dev] [PATCH v3 " Piotr Piorkowski
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 17+ messages in thread
From: Chris Wilson @ 2018-04-24  8:27 UTC (permalink / raw)
  To: Piotr Piorkowski, igt-dev; +Cc: Sagar

Quoting Piotr Piorkowski (2018-04-24 08:50:03)
> From: Piotr Piórkowski <piotr.piorkowski@intel.com>
> 
> We doesn't have simple to use function to check if file exists
> in debugfs.
> Let's add function which takes as arguments the file descriptor of the
> device and file name in the debugfs of this device, and return true if
> file exists, otherwise false.
> 
> v2:
> - rename function (Chris)
> - modify function (Chris)
> 
> Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Michał Winiarski <michal.winiarski@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>  lib/igt_debugfs.c | 25 +++++++++++++++++++++++++
>  lib/igt_debugfs.h |  1 +
>  2 files changed, 26 insertions(+)
> 
> diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
> index 8adc02e9..d49a83e3 100644
> --- a/lib/igt_debugfs.c
> +++ b/lib/igt_debugfs.c
> @@ -214,6 +214,31 @@ char *igt_debugfs_path(int device, char *path, int pathlen)
>         return path;
>  }
>  
> +/**
> + * igt_debugfs_has_filename:
> + * @device: fd of the device
> + * @filename: name of the debugfs node to open
> + *
> + * This checks if the debugfs has filename. The filename should be
> + * relative to the drm device's root, i.e. without "drm/$minor".
> + *
> + * Returns:
> + * The true if the file exists, otherwise false.
> + */
> +bool igt_debugfs_has_filename(int device, const char *filename)
> +{
> +       bool exists = false;
> +       int dir;
> +
> +       dir = igt_debugfs_dir(device);
> +       exists = faccessat(dir, filename, F_OK, 0) == 0;
> +       close(dir);
> +
> +       igt_debug("File %s %s exists\n", filename, exists ? "is" : "is not");

Nah, such a message will quickly get tedious. The function is a
predicate is a predicate for the caller to decide what action to take;
that is where the interesting information will be, not this.
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* Re: [igt-dev] [PATCH v2 2/2] tests/debugfs_test: Add subtest guc_log_relay
  2018-04-24  7:50 ` [igt-dev] [PATCH v2 " Piotr Piorkowski
@ 2018-04-24  8:34   ` Chris Wilson
  2018-04-24 13:24     ` Piorkowski, Piotr
  0 siblings, 1 reply; 17+ messages in thread
From: Chris Wilson @ 2018-04-24  8:34 UTC (permalink / raw)
  To: Piotr Piorkowski, igt-dev; +Cc: Sagar

Quoting Piotr Piorkowski (2018-04-24 08:50:04)
> From: Piotr Piórkowski <piotr.piorkowski@intel.com>
> 
> We doesn't have any tests to verify functionality of i915_guc_log_relay.
> I think we should test this component.
> 
> Let's add simple subtest to debugfs_test, which will test if guc
> is enabled:
> - opening the i915_guc_log_relay and creating a file guc_log0,
> - flushing GuC log buffer,
> - closing i915_guc_log_relay with removing from debugfs guc_log0.
> Otherwise, the test will check if the attempt to open the guc_log_relay
> returns an error ENODEV.
> 
> v2:
> - guc isn't required for run the subtest (Chris)
> - rewrite subtest as function (Michal Winiarski)
> - add case when the guc is not enabled
> 
> Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
> Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
> Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> Cc: Michał Winiarski <michal.winiarski@intel.com>
> Cc: Chris Wilson <chris@chris-wilson.co.uk>
> ---
>  tests/debugfs_test.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 93 insertions(+)
> 
> diff --git a/tests/debugfs_test.c b/tests/debugfs_test.c
> index 2e87e442..c7a953b1 100644
> --- a/tests/debugfs_test.c
> +++ b/tests/debugfs_test.c
> @@ -26,6 +26,7 @@
>  #include <fcntl.h>
>  #include <sys/types.h>
>  #include <dirent.h>
> +#include <errno.h>
>  
>  static void read_and_discard_sysfs_entries(int path_fd, int indent)
>  {
> @@ -87,6 +88,95 @@ static void read_and_discard_sysfs_entries(int path_fd, int indent)
>         closedir(dir);
>  }
>  
> +static bool is_guc_loaded(int gfx_fd)
> +{
> +       bool load;
> +
> +       load = igt_debugfs_search(gfx_fd, "i915_guc_load_status",
> +                               "    status: fetch SUCCESS, load SUCCESS");
> +       igt_debug("GuC %s loaded\n", load ? "is" : "is not");
> +
> +       return load;
> +}
> +
> +#define I915_GUC_LOG_RELAY_FILE  "i915_guc_log_relay"
> +#define GUC_LOG_FILE  "guc_log0"
> +
> +static void check_guc_log_relay(int gfx_fd)
> +{
> +
> +       int page_size = getpagesize();
> +       int fd_relay = -1, fd_log = -1;
> +       ssize_t read_size;
> +       uint8_t *buffer;
> +       bool guc_is_loaded;
> +       int debugfs;
> +
> +       guc_is_loaded = is_guc_loaded(gfx_fd);
> +
> +       debugfs = igt_debugfs_dir(gfx_fd);
> +       fd_relay = openat(debugfs, I915_GUC_LOG_RELAY_FILE, O_RDWR);
> +
> +       if (!guc_is_loaded) {
> +               igt_debug("Case when GuC is disabled\n");

Debugging left over? Lots of fluff messages.

> +               igt_debug("Attempt open file %s return value: %d ( %m )\n",
> +                         I915_GUC_LOG_RELAY_FILE, errno);

Push this into the failure message.

> +
> +               igt_assert(errno == ENODEV);

errno may have been scribbled over many times, and would have only been
valid if fd_relay is -1.

Use igt_assert_eq, but you really want igt_assert_f() if you want
informative error messages rather than igt_debug spam.

But is this the interface you really want to enforce? If the guc log
relay is accessible is up to the kernel, not you. If the kernel tells
you it is not available, skip and move on.
-Chris
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

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

* [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v2,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs (rev2)
  2018-04-10 13:52 [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Piotr Piórkowski
                   ` (5 preceding siblings ...)
  2018-04-24  7:50 ` [igt-dev] [PATCH v2 " Piotr Piorkowski
@ 2018-04-24  8:52 ` Patchwork
  2018-05-15 15:57 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v3,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs (rev3) Patchwork
  2018-05-21 15:08 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v3,2/2] tests/debugfs_test: Add subtest guc_log_relay (rev5) Patchwork
  8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-04-24  8:52 UTC (permalink / raw)
  To: Piotr Piorkowski; +Cc: igt-dev

== Series Details ==

Series: series starting with [v2,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs (rev2)
URL   : https://patchwork.freedesktop.org/series/41476/
State : failure

== Summary ==

IGT patchset build failed on latest successful build
dcc44347494231feabc588c2a76998cbc9afdf8c igt/gem_ppgtt: Flush the driver to idle before counting leaks

ninja: Entering directory `build'
[1/339] Generating version.h with a custom command.
[2/273] Linking target tests/debugfs_test.
FAILED: tests/debugfs_test 
ccache cc  -o tests/debugfs_test 'tests/debugfs_test@exe/debugfs_test.c.o' -Wl,--no-undefined -Wl,--as-needed -Wl,--start-group lib/libigt.so -pthread -lcairo -lglib-2.0 -L/opt/igt/lib -ldrm -lkmod -lprocps -ludev -lunwind -lpciaccess -lm -lrt -L/opt/igt/lib -ldrm_intel -ldrm -lgsl -lgslcblas -lm -lpixman-1 -lpixman-1 -L/usr/lib/x86_64-linux-gnu -lxmlrpc_client -lxmlrpc -lxmlrpc_xmlparse -lxmlrpc_xmltok -lxmlrpc_util -lcurl -Wl,--end-group -ldrm_nouveau -lpixman-1 -L/usr/lib/x86_64-linux-gnu -lxmlrpc_client -lxmlrpc -lxmlrpc_xmlparse -lxmlrpc_xmltok -lxmlrpc_util -lcurl '-Wl,-rpath,$ORIGIN/../lib:XXXXXXXXXXXXXXXXXXXX' -Wl,-rpath-link,/home/cidrm/intel-gpu-tools/build/lib  
tests/debugfs_test@exe/debugfs_test.c.o: In function `__real_main102':
/home/cidrm/intel-gpu-tools/build/../tests/debugfs_test.c:258: undefined reference to `igt_debugfs_is_file_exists'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

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

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

* Re: [igt-dev] [PATCH v2 2/2] tests/debugfs_test: Add subtest guc_log_relay
  2018-04-24  8:34   ` Chris Wilson
@ 2018-04-24 13:24     ` Piorkowski, Piotr
  0 siblings, 0 replies; 17+ messages in thread
From: Piorkowski, Piotr @ 2018-04-24 13:24 UTC (permalink / raw)
  To: igt-dev, chris


[-- Attachment #1.1: Type: text/plain, Size: 3984 bytes --]

On Tue, 2018-04-24 at 09:34 +0100, Chris Wilson wrote:
> Quoting Piotr Piorkowski (2018-04-24 08:50:04)
> > From: Piotr Piórkowski <piotr.piorkowski@intel.com>
> > 
> > We doesn't have any tests to verify functionality of
> > i915_guc_log_relay.
> > I think we should test this component.
> > 
> > Let's add simple subtest to debugfs_test, which will test if guc
> > is enabled:
> > - opening the i915_guc_log_relay and creating a file guc_log0,
> > - flushing GuC log buffer,
> > - closing i915_guc_log_relay with removing from debugfs guc_log0.
> > Otherwise, the test will check if the attempt to open the
> > guc_log_relay
> > returns an error ENODEV.
> > 
> > v2:
> > - guc isn't required for run the subtest (Chris)
> > - rewrite subtest as function (Michal Winiarski)
> > - add case when the guc is not enabled
> > 
> > Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
> > Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
> > Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
> > Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
> > Cc: Michał Winiarski <michal.winiarski@intel.com>
> > Cc: Chris Wilson <chris@chris-wilson.co.uk>
> > ---
> >  tests/debugfs_test.c | 93
> > ++++++++++++++++++++++++++++++++++++++++++++++++++++
> >  1 file changed, 93 insertions(+)
> > 
> > diff --git a/tests/debugfs_test.c b/tests/debugfs_test.c
> > index 2e87e442..c7a953b1 100644
> > --- a/tests/debugfs_test.c
> > +++ b/tests/debugfs_test.c
> > @@ -26,6 +26,7 @@
> >  #include <fcntl.h>
> >  #include <sys/types.h>
> >  #include <dirent.h>
> > +#include <errno.h>
> >  
> >  static void read_and_discard_sysfs_entries(int path_fd, int
> > indent)
> >  {
> > @@ -87,6 +88,95 @@ static void read_and_discard_sysfs_entries(int
> > path_fd, int indent)
> >         closedir(dir);
> >  }
> >  
> > +static bool is_guc_loaded(int gfx_fd)
> > +{
> > +       bool load;
> > +
> > +       load = igt_debugfs_search(gfx_fd, "i915_guc_load_status",
> > +                               "    status: fetch SUCCESS, load
> > SUCCESS");
> > +       igt_debug("GuC %s loaded\n", load ? "is" : "is not");
> > +
> > +       return load;
> > +}
> > +
> > +#define I915_GUC_LOG_RELAY_FILE  "i915_guc_log_relay"
> > +#define GUC_LOG_FILE  "guc_log0"
> > +
> > +static void check_guc_log_relay(int gfx_fd)
> > +{
> > +
> > +       int page_size = getpagesize();
> > +       int fd_relay = -1, fd_log = -1;
> > +       ssize_t read_size;
> > +       uint8_t *buffer;
> > +       bool guc_is_loaded;
> > +       int debugfs;
> > +
> > +       guc_is_loaded = is_guc_loaded(gfx_fd);
> > +
> > +       debugfs = igt_debugfs_dir(gfx_fd);
> > +       fd_relay = openat(debugfs, I915_GUC_LOG_RELAY_FILE,
> > O_RDWR);
> > +
> > +       if (!guc_is_loaded) {
> > +               igt_debug("Case when GuC is disabled\n");
> 
> Debugging left over? Lots of fluff messages.
> 
> > +               igt_debug("Attempt open file %s return value: %d (
> > %m )\n",
> > +                         I915_GUC_LOG_RELAY_FILE, errno);
> 
> Push this into the failure message.
> 
> > +
> > +               igt_assert(errno == ENODEV);
> 
> errno may have been scribbled over many times, and would have only
> been
> valid if fd_relay is -1.
> 
> Use igt_assert_eq, but you really want igt_assert_f() if you want
> informative error messages rather than igt_debug spam.
> 
> But is this the interface you really want to enforce? If the guc log
> relay is accessible is up to the kernel, not you. If the kernel tells
> you it is not available, skip and move on.

This subtest is to check if guc_log_relay works correctly, no matter if
the guc works or not. The correct behavior of guc_log_relay, when the
guc is disabled, is to return the error ENODEV, and this subtest checks
it (with fix if fd_relay is -1). So do you think that this way to
realize the subtest is wrong, and I should change it? 

Piotr

[-- Attachment #1.2: smime.p7s --]
[-- Type: application/x-pkcs7-signature, Size: 3278 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

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

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

* [igt-dev] [PATCH v3 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs
  2018-04-24  7:50 ` [igt-dev] [PATCH v2 1/2] " Piotr Piorkowski
  2018-04-24  8:27   ` Chris Wilson
@ 2018-05-15 15:29   ` Piotr Piorkowski
  2018-05-21 12:55   ` Piotr Piorkowski
  2018-05-21 12:55   ` [igt-dev] [PATCH v3 2/2] tests/debugfs_test: Add subtest guc_log_relay Piotr Piorkowski
  3 siblings, 0 replies; 17+ messages in thread
From: Piotr Piorkowski @ 2018-05-15 15:29 UTC (permalink / raw)
  To: igt-dev

From: Piotr Piórkowski <piotr.piorkowski@intel.com>

We doesn't have simple to use function to check if file exists
in debugfs.
Let's add function which takes as arguments the file descriptor of the
device and file name in the debugfs of this device, and return true if
file exists, otherwise false.

v2:
- rename function (Chris)
- modify function (Chris)
v3:
- remove debug info (Chris)

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
 lib/igt_debugfs.c | 23 +++++++++++++++++++++++
 lib/igt_debugfs.h |  1 +
 2 files changed, 24 insertions(+)

diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
index f3196f43..5bfafc01 100644
--- a/lib/igt_debugfs.c
+++ b/lib/igt_debugfs.c
@@ -214,6 +214,29 @@ char *igt_debugfs_path(int device, char *path, int pathlen)
 	return path;
 }
 
+/**
+ * igt_debugfs_has_filename:
+ * @device: fd of the device
+ * @filename: name of the debugfs node to open
+ *
+ * This checks if the debugfs has filename. The filename should be
+ * relative to the drm device's root, i.e. without "drm/$minor".
+ *
+ * Returns:
+ * The true if the file exists, otherwise false.
+ */
+bool igt_debugfs_has_filename(int device, const char *filename)
+{
+	bool exists = false;
+	int dir;
+
+	dir = igt_debugfs_dir(device);
+	exists = faccessat(dir, filename, F_OK, 0) == 0;
+	close(dir);
+
+	return exists;
+}
+
 /**
  * igt_debugfs_dir:
  * @device: fd of the device
diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h
index 8d25abfe..d3b274af 100644
--- a/lib/igt_debugfs.h
+++ b/lib/igt_debugfs.h
@@ -33,6 +33,7 @@ enum pipe;
 
 const char *igt_debugfs_mount(void);
 char *igt_debugfs_path(int device, char *path, int pathlen);
+bool igt_debugfs_has_filename(int device, const char *filename);
 
 int igt_debugfs_dir(int device);
 
-- 
2.14.3

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

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

* [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v3,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs (rev3)
  2018-04-10 13:52 [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Piotr Piórkowski
                   ` (6 preceding siblings ...)
  2018-04-24  8:52 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v2,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs (rev2) Patchwork
@ 2018-05-15 15:57 ` Patchwork
  2018-05-21 15:08 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v3,2/2] tests/debugfs_test: Add subtest guc_log_relay (rev5) Patchwork
  8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-05-15 15:57 UTC (permalink / raw)
  To: Piotr Piorkowski; +Cc: igt-dev

== Series Details ==

Series: series starting with [v3,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs (rev3)
URL   : https://patchwork.freedesktop.org/series/41476/
State : failure

== Summary ==

IGT patchset build failed on latest successful build
b7432bf309d5d5a6e07e8a0d8b522302fb0b4502 lib/igt_device: Add information why cannot drop drm master

ninja: Entering directory `build'
[1/337] Generating version.h with a custom command.
[2/273] Linking target tests/debugfs_test.
FAILED: tests/debugfs_test 
ccache cc  -o tests/debugfs_test 'tests/debugfs_test@exe/debugfs_test.c.o' -Wl,--no-undefined -Wl,--as-needed -Wl,--start-group lib/libigt.so -pthread -lcairo -lglib-2.0 -L/opt/igt/lib -ldrm -lkmod -lprocps -ludev -lunwind -lpciaccess -lm -lrt -L/opt/igt/lib -ldrm_intel -ldrm -lgsl -lgslcblas -lm -lpixman-1 -lpixman-1 -L/usr/lib/x86_64-linux-gnu -lxmlrpc_client -lxmlrpc -lxmlrpc_xmlparse -lxmlrpc_xmltok -lxmlrpc_util -lcurl -Wl,--end-group -ldrm_nouveau -lpixman-1 -L/usr/lib/x86_64-linux-gnu -lxmlrpc_client -lxmlrpc -lxmlrpc_xmlparse -lxmlrpc_xmltok -lxmlrpc_util -lcurl '-Wl,-rpath,$ORIGIN/../lib:XXXXXXXXXXXXXXXXXXXX' -Wl,-rpath-link,/home/cidrm/intel-gpu-tools/build/lib  
tests/debugfs_test@exe/debugfs_test.c.o: In function `__real_main102':
/home/cidrm/intel-gpu-tools/build/../tests/debugfs_test.c:258: undefined reference to `igt_debugfs_is_file_exists'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.

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

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

* [igt-dev] [PATCH v3 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs
  2018-04-24  7:50 ` [igt-dev] [PATCH v2 1/2] " Piotr Piorkowski
  2018-04-24  8:27   ` Chris Wilson
  2018-05-15 15:29   ` [igt-dev] [PATCH v3 " Piotr Piorkowski
@ 2018-05-21 12:55   ` Piotr Piorkowski
  2018-05-21 12:55   ` [igt-dev] [PATCH v3 2/2] tests/debugfs_test: Add subtest guc_log_relay Piotr Piorkowski
  3 siblings, 0 replies; 17+ messages in thread
From: Piotr Piorkowski @ 2018-05-21 12:55 UTC (permalink / raw)
  To: igt-dev

From: Piotr Piórkowski <piotr.piorkowski@intel.com>

We doesn't have simple to use function to check if file exists
in debugfs.
Let's add function which takes as arguments the file descriptor of the
device and file name in the debugfs of this device, and return true if
file exists, otherwise false.

v2:
- rename function (Chris)
- modify function (Chris)
v3:
- remove debug info (Chris)

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
 lib/igt_debugfs.c | 23 +++++++++++++++++++++++
 lib/igt_debugfs.h |  1 +
 2 files changed, 24 insertions(+)

diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c
index f3196f43..5bfafc01 100644
--- a/lib/igt_debugfs.c
+++ b/lib/igt_debugfs.c
@@ -214,6 +214,29 @@ char *igt_debugfs_path(int device, char *path, int pathlen)
 	return path;
 }
 
+/**
+ * igt_debugfs_has_filename:
+ * @device: fd of the device
+ * @filename: name of the debugfs node to open
+ *
+ * This checks if the debugfs has filename. The filename should be
+ * relative to the drm device's root, i.e. without "drm/$minor".
+ *
+ * Returns:
+ * The true if the file exists, otherwise false.
+ */
+bool igt_debugfs_has_filename(int device, const char *filename)
+{
+	bool exists = false;
+	int dir;
+
+	dir = igt_debugfs_dir(device);
+	exists = faccessat(dir, filename, F_OK, 0) == 0;
+	close(dir);
+
+	return exists;
+}
+
 /**
  * igt_debugfs_dir:
  * @device: fd of the device
diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h
index 8d25abfe..d3b274af 100644
--- a/lib/igt_debugfs.h
+++ b/lib/igt_debugfs.h
@@ -33,6 +33,7 @@ enum pipe;
 
 const char *igt_debugfs_mount(void);
 char *igt_debugfs_path(int device, char *path, int pathlen);
+bool igt_debugfs_has_filename(int device, const char *filename);
 
 int igt_debugfs_dir(int device);
 
-- 
2.14.3

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

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

* [igt-dev] [PATCH v3 2/2] tests/debugfs_test: Add subtest guc_log_relay
  2018-04-24  7:50 ` [igt-dev] [PATCH v2 1/2] " Piotr Piorkowski
                     ` (2 preceding siblings ...)
  2018-05-21 12:55   ` Piotr Piorkowski
@ 2018-05-21 12:55   ` Piotr Piorkowski
  3 siblings, 0 replies; 17+ messages in thread
From: Piotr Piorkowski @ 2018-05-21 12:55 UTC (permalink / raw)
  To: igt-dev

From: Piotr Piórkowski <piotr.piorkowski@intel.com>

We doesn't have any tests to verify functionality of i915_guc_log_relay.
I think we should test this component.

Let's add simple subtest to debugfs_test, which will test if guc
is enabled:
- opening the i915_guc_log_relay and creating a file guc_log0,
- flushing GuC log buffer,
- closing i915_guc_log_relay with removing from debugfs guc_log0.

v2:
- guc isn't required for run the subtest (Chris)
- rewrite subtest as function (Michal Winiarski)
- add case when the guc is not enabled
v3:
- skip test if guc is disabled (Chris)
- remove some debug logs

Signed-off-by: Piotr Piórkowski <piotr.piorkowski@intel.com>
Cc: Sagar Arun Kamble <sagar.a.kamble@intel.com>
Cc: Lukasz Fiedorowicz <lukasz.fiedorowicz@intel.com>
Cc: Michal Wajdeczko <michal.wajdeczko@intel.com>
Cc: Michał Winiarski <michal.winiarski@intel.com>
Cc: Chris Wilson <chris@chris-wilson.co.uk>
---
 tests/debugfs_test.c | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/tests/debugfs_test.c b/tests/debugfs_test.c
index 2e87e442..0eae8df5 100644
--- a/tests/debugfs_test.c
+++ b/tests/debugfs_test.c
@@ -87,6 +87,81 @@ static void read_and_discard_sysfs_entries(int path_fd, int indent)
 	closedir(dir);
 }
 
+static bool is_guc_loaded(int gfx_fd)
+{
+	bool load;
+
+	load = igt_debugfs_search(gfx_fd, "i915_guc_load_status",
+				"\tstatus: fetch SUCCESS, load SUCCESS");
+	return load;
+}
+
+#define I915_GUC_LOG_RELAY_FILE  "i915_guc_log_relay"
+#define GUC_LOG_FILE  "guc_log0"
+
+static void check_guc_log_relay(int gfx_fd)
+{
+
+	int page_size = getpagesize();
+	int fd_relay = -1, fd_log = -1;
+	ssize_t read_size;
+	uint8_t *buffer;
+	int debugfs;
+
+	igt_skip_on_f(!is_guc_loaded(gfx_fd), "GuC is not loaded!");
+
+	debugfs = igt_debugfs_dir(gfx_fd);
+	fd_relay = openat(debugfs, I915_GUC_LOG_RELAY_FILE, O_RDWR);
+
+	igt_assert(fd_relay > 0);
+	/*
+	 * The GUC_LOG_FILE should be created
+	 *	after opening the I915_GUC_LOG_RELAY_FILE file
+	 */
+	fd_log = igt_debugfs_open(gfx_fd, GUC_LOG_FILE, O_RDONLY);
+	igt_assert(fd_log > 0);
+
+	/*
+	 * We want to check flush and read from GUC_LOG_FILE.
+	 * First, we read all available bytes from buffer
+	 * (if any bytes are ready to be read).
+	 */
+	buffer = malloc(page_size);
+	do {
+		read_size = read(fd_log, buffer, page_size);
+		igt_debug("Shall attempt to read %d bytes from file %s.\n"
+			  "The number of bytes actually read: %li\n",
+			  page_size, GUC_LOG_FILE, read_size);
+	} while (read_size != 0);
+
+	/*
+	 * When buffer is empty, we trigger a flush
+	 * by sending anything to the file
+	 * I915_GUC_LOG_RELAY_FILE
+	 */
+	write(fd_relay, buffer, 1);
+
+	/* We read again and now we should get some bytes */
+	read_size = read(fd_log, buffer, page_size);
+
+	free(buffer);
+
+	igt_debug("Shall attempt to read %d bytes from file %s.\n"
+		  "The number of bytes actually read: %li\n",
+		  page_size, GUC_LOG_FILE, read_size);
+
+
+	igt_assert(read_size > 0);
+
+	/*
+	 * Now we try close the I915_GUC_LOG_RELAY_FILE file.
+	 * This should cause the GUC_LOG_FILE file to be closed
+	 * and removed from debugfs
+	 */
+	close(fd_relay);
+	igt_assert(!igt_debugfs_has_filename(gfx_fd, GUC_LOG_FILE));
+}
+
 igt_main
 {
 	int fd = -1, debugfs;
@@ -173,6 +248,9 @@ igt_main
 		igt_success();
 	}
 
+	igt_subtest("guc_log_relay")
+		check_guc_log_relay(fd);
+
 	igt_fixture {
 		igt_display_fini(&display);
 		close(debugfs);
-- 
2.14.3

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

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

* [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v3,2/2] tests/debugfs_test: Add subtest guc_log_relay (rev5)
  2018-04-10 13:52 [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Piotr Piórkowski
                   ` (7 preceding siblings ...)
  2018-05-15 15:57 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v3,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs (rev3) Patchwork
@ 2018-05-21 15:08 ` Patchwork
  8 siblings, 0 replies; 17+ messages in thread
From: Patchwork @ 2018-05-21 15:08 UTC (permalink / raw)
  To: Piotr Piorkowski; +Cc: igt-dev

== Series Details ==

Series: series starting with [v3,2/2] tests/debugfs_test: Add subtest guc_log_relay (rev5)
URL   : https://patchwork.freedesktop.org/series/41476/
State : failure

== Summary ==

Applying: tests/debugfs_test: Add subtest guc_log_relay
Applying: tests/debugfs_test: Add subtest guc_log_relay
Using index info to reconstruct a base tree...
M	tests/debugfs_test.c
Falling back to patching base and 3-way merge...
Auto-merging tests/debugfs_test.c
CONFLICT (content): Merge conflict in tests/debugfs_test.c
Patch failed at 0002 tests/debugfs_test: Add subtest guc_log_relay
The copy of the patch that failed is found in: .git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

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

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

end of thread, other threads:[~2018-05-21 15:08 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-10 13:52 [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Piotr Piórkowski
2018-04-10 13:52 ` [igt-dev] [PATCH i-g-t 2/2] tests/debugfs_test: Add subtest guc_log_relay Piotr Piórkowski
2018-04-10 14:06   ` Chris Wilson
2018-04-10 14:02 ` [igt-dev] [PATCH i-g-t 1/2] lib/igt_debugfs: Add function to check if file exists in debugfs Chris Wilson
2018-04-10 14:46 ` [igt-dev] ✓ Fi.CI.BAT: success for series starting with [i-g-t,1/2] " Patchwork
2018-04-10 16:57 ` [igt-dev] ✗ Fi.CI.IGT: warning " Patchwork
2018-04-24  7:50 ` [igt-dev] [PATCH v2 1/2] " Piotr Piorkowski
2018-04-24  8:27   ` Chris Wilson
2018-05-15 15:29   ` [igt-dev] [PATCH v3 " Piotr Piorkowski
2018-05-21 12:55   ` Piotr Piorkowski
2018-05-21 12:55   ` [igt-dev] [PATCH v3 2/2] tests/debugfs_test: Add subtest guc_log_relay Piotr Piorkowski
2018-04-24  7:50 ` [igt-dev] [PATCH v2 " Piotr Piorkowski
2018-04-24  8:34   ` Chris Wilson
2018-04-24 13:24     ` Piorkowski, Piotr
2018-04-24  8:52 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v2,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs (rev2) Patchwork
2018-05-15 15:57 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v3,1/2] lib/igt_debugfs: Add function to check if file exists in debugfs (rev3) Patchwork
2018-05-21 15:08 ` [igt-dev] ✗ Fi.CI.BAT: failure for series starting with [v3,2/2] tests/debugfs_test: Add subtest guc_log_relay (rev5) Patchwork

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