From: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
To: igt-dev@lists.freedesktop.org, kamil.konieczny@linux.intel.com,
janga.rahul.kumar@intel.com
Subject: [igt-dev] [i-g-t 02/20] lib: Cache xe_device at driver open/close level
Date: Tue, 16 May 2023 22:20:40 +0530 [thread overview]
Message-ID: <20230516165058.4047595-3-bhanuprakash.modem@intel.com> (raw)
In-Reply-To: <20230516165058.4047595-1-bhanuprakash.modem@intel.com>
Instead of caching the xe_device struct at subtest level, cache
just after opening the driver. And remove from the cache just
before closing the driver.
V2: - Place the logic in correct helpers (Zbigniew)
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
---
lib/drmtest.c | 24 +++++++++++++++++++++---
lib/igt_types.c | 6 ++++++
2 files changed, 27 insertions(+), 3 deletions(-)
diff --git a/lib/drmtest.c b/lib/drmtest.c
index 41ad2694c..cfcb630ed 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -64,6 +64,7 @@
#include "intel_reg.h"
#include "ioctl_wrappers.h"
#include "igt_dummyload.h"
+#include "xe/xe_query.h"
/**
* SECTION:drmtest
@@ -465,9 +466,14 @@ int __drm_open_driver_another(int idx, int chipset)
fd = __open_driver("/dev/dri/card", 0, chipset, idx);
}
- if (fd >= 0)
+ if (fd >= 0) {
_set_opened_fd(idx, fd);
+ /* Cache xe_device struct. */
+ if (is_xe_device(fd))
+ xe_device_get(fd);
+ }
+
return fd;
}
@@ -491,6 +497,8 @@ int __drm_open_driver(int chipset)
int __drm_open_driver_render(int chipset)
{
+ int fd;
+
if (chipset != DRIVER_VGEM && igt_device_filter_count() > 0) {
struct igt_device_card card;
bool found;
@@ -500,10 +508,16 @@ int __drm_open_driver_render(int chipset)
if (!found || !strlen(card.render))
return -1;
- return __open_driver_exact(card.render, chipset);
+ fd = __open_driver_exact(card.render, chipset);
+ } else {
+ fd = __open_driver("/dev/dri/renderD", 128, chipset, 0);
}
- return __open_driver("/dev/dri/renderD", 128, chipset, 0);
+ /* Cache xe_device struct. */
+ if (fd >= 0 && is_xe_device(fd))
+ xe_device_get(fd);
+
+ return fd;
}
static int at_exit_drm_fd = -1;
@@ -622,6 +636,10 @@ int drm_close_driver(int fd)
return -1;
}
+ /* Remove xe_device from cache. */
+ if (is_xe_device(fd))
+ xe_device_put(fd);
+
return close(fd);
}
diff --git a/lib/igt_types.c b/lib/igt_types.c
index 392f30fca..d5d444889 100644
--- a/lib/igt_types.c
+++ b/lib/igt_types.c
@@ -5,13 +5,19 @@
#include <unistd.h>
+#include "drmtest.h"
#include "igt_types.h"
+#include "xe/xe_query.h"
void igt_cleanup_fd(volatile int *fd)
{
if (!fd || *fd < 0)
return;
+ /* Remove xe_device from cache. */
+ if (is_xe_device(*fd))
+ xe_device_put(*fd);
+
close(*fd);
*fd = -1;
}
--
2.40.0
next prev parent reply other threads:[~2023-05-16 16:56 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-16 16:50 [igt-dev] [i-g-t 00/20] XE test cleanup to handle xe_device Bhanuprakash Modem
2023-05-16 16:50 ` [igt-dev] [i-g-t 01/20] lib: Interface to close the drm fd Bhanuprakash Modem
2023-05-18 18:51 ` Zbigniew Kempczyński
2023-05-18 18:54 ` Zbigniew Kempczyński
2023-05-19 15:09 ` [igt-dev] [i-g-t V3 " Bhanuprakash Modem
2023-05-22 11:16 ` Zbigniew Kempczyński
2023-05-16 16:50 ` Bhanuprakash Modem [this message]
2023-05-18 18:46 ` [igt-dev] [i-g-t 02/20] lib: Cache xe_device at driver open/close level Zbigniew Kempczyński
2023-05-16 16:50 ` [igt-dev] [i-g-t 03/20] lib/xe/xe_query: Add xe_config() interface Bhanuprakash Modem
2023-05-16 16:50 ` [igt-dev] [i-g-t 04/20] lib/igt_msm: Use drm_close_driver() to close the drm fd Bhanuprakash Modem
2023-05-16 16:50 ` [igt-dev] [i-g-t 05/20] tests/amdgpu: Close the fd before exit Bhanuprakash Modem
2023-06-14 12:39 ` Kamil Konieczny
2023-06-15 0:14 ` vitaly prosyak
2023-06-15 4:46 ` Modem, Bhanuprakash
2023-06-15 7:13 ` Christian König
2023-06-15 8:28 ` Modem, Bhanuprakash
2023-06-15 8:43 ` Christian König
2023-06-15 11:48 ` Kamil Konieczny
2023-06-15 12:03 ` Christian König
2023-05-16 16:50 ` [igt-dev] [i-g-t 06/20] tests/i915: " Bhanuprakash Modem
2023-05-18 18:58 ` Zbigniew Kempczyński
2023-05-22 5:27 ` Modem, Bhanuprakash
2023-05-22 11:21 ` Zbigniew Kempczyński
2023-05-22 12:33 ` Modem, Bhanuprakash
2023-05-22 15:23 ` Zbigniew Kempczyński
2023-05-16 16:50 ` [igt-dev] [i-g-t 07/20] tests/nouveau_crc: " Bhanuprakash Modem
2023-05-16 20:14 ` Lyude Paul
2023-05-16 16:50 ` [igt-dev] [i-g-t 08/20] tests/xe/xe_gpgpu_fill: " Bhanuprakash Modem
2023-05-18 19:15 ` Kumar, Janga Rahul
2023-05-16 16:50 ` [igt-dev] [i-g-t 09/20] tests/amdgpu: Use drm_close_driver() to close the drm fd Bhanuprakash Modem
2023-06-14 12:38 ` Kamil Konieczny
2023-05-16 16:50 ` [igt-dev] [i-g-t 10/20] tests/i915/kms_mmap_write_crc: Avoid closing the closed fd Bhanuprakash Modem
2023-05-24 8:00 ` Kamil Konieczny
2023-05-16 16:50 ` [igt-dev] [i-g-t 11/20] tests/panfrost: Use drm_close_driver() to close the drm fd Bhanuprakash Modem
2023-05-16 16:50 ` [igt-dev] [i-g-t 12/20] tests/v3d: " Bhanuprakash Modem
2023-05-16 16:50 ` [igt-dev] [i-g-t 13/20] tests/vc4: " Bhanuprakash Modem
2023-05-16 16:50 ` [igt-dev] [i-g-t 14/20] tests/vmwgfx: " Bhanuprakash Modem
2023-05-17 19:55 ` "Maaz Mombasawala (VMware)
2023-05-16 16:50 ` [igt-dev] [i-g-t 15/20] tests/kms: " Bhanuprakash Modem
2023-05-24 9:02 ` Kamil Konieczny
2023-05-16 16:50 ` [igt-dev] [i-g-t 16/20] tests/xe: " Bhanuprakash Modem
2023-05-18 19:14 ` Kumar, Janga Rahul
2023-05-16 16:50 ` [igt-dev] [i-g-t 17/20] tests/i915: " Bhanuprakash Modem
2023-05-24 8:44 ` Kamil Konieczny
2023-05-16 16:50 ` [igt-dev] [i-g-t 18/20] tests/xe/xe_debugfs: Use xe_config() helper to get the config Bhanuprakash Modem
2023-05-24 8:47 ` Kamil Konieczny
2023-05-16 16:50 ` [igt-dev] [i-g-t 19/20] tests: Drop xe_device get/put from test level Bhanuprakash Modem
2023-05-24 7:58 ` Kamil Konieczny
2023-05-16 16:50 ` [igt-dev] [i-g-t 20/20] Revert "lib/igt_kms: Cache xe_device info for kms tests" Bhanuprakash Modem
2023-05-24 8:03 ` Kamil Konieczny
2023-05-16 18:45 ` [igt-dev] ✓ Fi.CI.BAT: success for XE test cleanup to handle xe_device (rev4) Patchwork
2023-05-17 3:51 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2023-05-19 15:52 ` [igt-dev] ✓ Fi.CI.BAT: success for XE test cleanup to handle xe_device (rev5) Patchwork
2023-05-19 18:09 ` [igt-dev] ✓ Fi.CI.IGT: " 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=20230516165058.4047595-3-bhanuprakash.modem@intel.com \
--to=bhanuprakash.modem@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=janga.rahul.kumar@intel.com \
--cc=kamil.konieczny@linux.intel.com \
/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 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.