Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Kamil Konieczny <kamil.konieczny@linux.intel.com>
To: igt-dev@lists.freedesktop.org
Subject: [igt-dev] [PATCH i-g-t v9 7/8] lib/drmtest: create helper for dropping opened paths
Date: Fri, 20 Oct 2023 15:00:15 +0200	[thread overview]
Message-ID: <20231020130016.86398-8-kamil.konieczny@linux.intel.com> (raw)
In-Reply-To: <20231020130016.86398-1-kamil.konieczny@linux.intel.com>

Create helper for cleaning all cached opened paths for drivers.
This may be used when we want to test multi-GPU scenarios and in
them inform user about each opened GPU card including first one.
Currently almost all tests open first card at start for
performing checks for it but that cause a lost possibilty to
inform user later about opening this first card.

Signed-off-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
 lib/drmtest.c | 24 +++++++++++++++++++++---
 lib/drmtest.h |  1 +
 2 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/lib/drmtest.c b/lib/drmtest.c
index 2cdeb8e3b..8eeb11976 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -221,16 +221,17 @@ struct _opened_device_path {
 	struct igt_list_head link;
 };
 
+static IGT_LIST_HEAD(_opened_paths);
+
 /*
  * Logs path of opened device. Device path opened for the first time is logged at info level,
  * subsequent opens (if any) are logged at debug level.
  */
 static void log_opened_device_path(const char *device_path)
 {
-	static IGT_LIST_HEAD(opened_paths);
 	struct _opened_device_path *item;
 
-	igt_list_for_each_entry(item, &opened_paths, link) {
+	igt_list_for_each_entry(item, &_opened_paths, link) {
 		if (!strcmp(item->path, device_path)) {
 			igt_debug("Opened previously opened device: %s\n", device_path);
 			return;
@@ -241,10 +242,27 @@ static void log_opened_device_path(const char *device_path)
 	igt_assert(item);
 	item->path = strdup(device_path);
 	igt_assert(item->path);
-	igt_list_add(&item->link, &opened_paths);
+	igt_list_add(&item->link, &_opened_paths);
 	igt_info("Opened device: %s\n", item->path);
 }
 
+/**
+ * __drm_invalidate_opened:
+ *
+ * Invalidate cached opened paths.
+ */
+void __drm_invalidate_opened(void)
+{
+	struct _opened_device_path *item, *tmp;
+
+	if (!igt_list_empty(&_opened_paths))
+		igt_list_for_each_entry_safe(item, tmp, &_opened_paths, link) {
+			free(item->path);
+			igt_list_del(&item->link);
+			free(item);
+		}
+}
+
 static int open_device(const char *name, unsigned int chipset)
 {
 	const char *forced;
diff --git a/lib/drmtest.h b/lib/drmtest.h
index 7db2292cb..f516412a0 100644
--- a/lib/drmtest.h
+++ b/lib/drmtest.h
@@ -110,6 +110,7 @@ int drm_close_driver(int fd);
 int drm_reopen_driver(int fd);
 
 int drm_get_gpu_count(int chipset);
+void __drm_invalidate_opened(void);
 
 void igt_require_amdgpu(int fd);
 void igt_require_intel(int fd);
-- 
2.42.0

  parent reply	other threads:[~2023-10-20 13:01 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-20 13:00 [igt-dev] [PATCH i-g-t v9 0/8] drmtest changes for running tests on multi-gpu Kamil Konieczny
2023-10-20 13:00 ` [igt-dev] [PATCH i-g-t v9 1/8] lib/drmtest: allow out of order device opening Kamil Konieczny
2023-10-20 13:00 ` [igt-dev] [PATCH i-g-t v9 2/8] tests/intel/xe_create: extend massive subtest to multi-gpu Kamil Konieczny
2023-10-20 13:00 ` [igt-dev] [PATCH i-g-t v9 3/8] lib/drmtest: drop checks for opened device for filters Kamil Konieczny
2023-10-20 13:00 ` [igt-dev] [PATCH i-g-t v9 4/8] lib/drmtest: save skip offset for first opened device Kamil Konieczny
2023-10-20 13:00 ` [igt-dev] [PATCH i-g-t v9 5/8] lib/drmtest: create helper for countig number of GPUs Kamil Konieczny
2023-10-20 13:00 ` [igt-dev] [PATCH i-g-t v9 6/8] tests/intel/xe_create: use drm helper for GPUs count Kamil Konieczny
2023-10-20 13:00 ` Kamil Konieczny [this message]
2023-10-20 13:00 ` [igt-dev] [PATCH i-g-t v9 8/8] tests/intel/xe_create: print first opened card Kamil Konieczny
2023-10-24  0:23 ` [igt-dev] ✓ Fi.CI.BAT: success for drmtest changes for running tests on multi-gpu (rev8) Patchwork
2023-10-24  1:22 ` [igt-dev] ✓ CI.xeBAT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231020130016.86398-8-kamil.konieczny@linux.intel.com \
    --to=kamil.konieczny@linux.intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox