From: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
To: igt-dev@lists.freedesktop.org
Subject: [igt-dev] [PATCH i-g-t 10/23] i915/perf: Use gt in perf tests and lib
Date: Mon, 22 Aug 2022 23:56:44 +0000 [thread overview]
Message-ID: <20220822235657.280702-11-umesh.nerlige.ramappa@intel.com> (raw)
In-Reply-To: <20220822235657.280702-1-umesh.nerlige.ramappa@intel.com>
Enable perf tests to use gt information for sysfs attributes.
Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
lib/i915/perf.c | 36 ++++++++++++++++++++++++++++++++++--
tests/i915/perf.c | 27 ++++++++++++++++++++-------
2 files changed, 54 insertions(+), 9 deletions(-)
diff --git a/lib/i915/perf.c b/lib/i915/perf.c
index 7349a460..3f131aaa 100644
--- a/lib/i915/perf.c
+++ b/lib/i915/perf.c
@@ -409,6 +409,35 @@ open_master_sysfs_dir(int drm_fd)
return sysfs;
}
+typedef enum {
+ RPS_MIN_FREQ_MHZ,
+ RPS_MAX_FREQ_MHZ,
+
+ RPS_MAX_ATTR,
+} intel_sysfs_attr_id;
+
+static const char *intel_sysfs_attr_name[2][RPS_MAX_ATTR] =
+{
+ {
+ "gt_min_freq_mhz",
+ "gt_max_freq_mhz",
+ },
+ {
+ "gt/gt0/rps_min_freq_mhz",
+ "gt/gt0/rps_max_freq_mhz",
+ },
+};
+
+static const char *
+intel_sysfs_attr_id_to_name(int sysfs_dirfd, intel_sysfs_attr_id id)
+{
+ assert(id < RPS_MAX_ATTR);
+
+ return !faccessat(sysfs_dirfd, "gt", O_RDONLY, 0) ?
+ intel_sysfs_attr_name[1][id] :
+ intel_sysfs_attr_name[0][id];
+}
+
struct intel_perf *
intel_perf_for_fd(int drm_fd)
{
@@ -424,8 +453,11 @@ intel_perf_for_fd(int drm_fd)
if (sysfs_dir_fd < 0)
return NULL;
- if (!read_sysfs(sysfs_dir_fd, "gt_min_freq_mhz", >_min_freq) ||
- !read_sysfs(sysfs_dir_fd, "gt_max_freq_mhz", >_max_freq)) {
+#define read_sysfs_rps(fd, id, value) \
+ read_sysfs(fd, intel_sysfs_attr_id_to_name(fd, id), value)
+
+ if (!read_sysfs_rps(sysfs_dir_fd, RPS_MIN_FREQ_MHZ, >_min_freq) ||
+ !read_sysfs_rps(sysfs_dir_fd, RPS_MAX_FREQ_MHZ, >_max_freq)) {
close(sysfs_dir_fd);
return NULL;
}
diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index c120c898..89aa4931 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -347,11 +347,11 @@ try_sysfs_read_u64(const char *path, uint64_t *val)
}
static unsigned long
-sysfs_read(const char *path)
+sysfs_read(enum i915_attr_id id)
{
unsigned long value;
- igt_assert(igt_sysfs_scanf(sysfs, path, "%lu", &value) == 1);
+ igt_assert(igt_sysfs_rps_scanf(sysfs, id, "%lu", &value) == 1);
return value;
}
@@ -4234,7 +4234,7 @@ gen12_test_single_ctx_render_target_writes_a_counter(void)
static unsigned long rc6_residency_ms(void)
{
- return sysfs_read("power/rc6_residency_ms");
+ return sysfs_read(RC6_RESIDENCY_MS);
}
static void
@@ -4257,7 +4257,7 @@ test_rc6_disable(void)
unsigned long rc6_start, rc6_end, rc6_enabled;
rc6_enabled = 0;
- igt_sysfs_scanf(sysfs, "power/rc6_enable", "%lu", &rc6_enabled);
+ igt_sysfs_rps_scanf(sysfs, RC6_ENABLE, "%lu", &rc6_enabled);
igt_require(rc6_enabled);
/* Verify rc6 is functional by measuring residency while idle */
@@ -4894,6 +4894,19 @@ done:
return ref_count;
}
+static int perf_sysfs_open(int i915)
+{
+ int dirfd, gt;
+
+ /* use the first available sysfs interface */
+ for_each_sysfs_gt_dirfd(i915, dirfd, gt)
+ break;
+
+ igt_assert(dirfd != -1);
+
+ return dirfd;
+}
+
/* check that an open i915 perf stream holds a reference on the drm i915 module
* including in the corner case where the original drm fd has been closed.
*/
@@ -4929,7 +4942,7 @@ test_i915_ref_count(void)
drm_fd = __drm_open_driver(DRIVER_INTEL);
igt_require_intel(drm_fd);
devid = intel_get_drm_devid(drm_fd);
- sysfs = igt_sysfs_open(drm_fd);
+ sysfs = perf_sysfs_open(drm_fd);
/* Note: these global variables are only initialized after calling
* init_sys_info()...
@@ -5031,14 +5044,14 @@ igt_main
igt_require_gem(drm_fd);
devid = intel_get_drm_devid(drm_fd);
- sysfs = igt_sysfs_open(drm_fd);
+ sysfs = perf_sysfs_open(drm_fd);
igt_require(init_sys_info());
write_u64_file("/proc/sys/dev/i915/perf_stream_paranoid", 1);
write_u64_file("/proc/sys/dev/i915/oa_max_sample_rate", 100000);
- gt_max_freq_mhz = sysfs_read("gt_boost_freq_mhz");
+ gt_max_freq_mhz = sysfs_read(RPS_RP0_FREQ_MHZ);
render_copy = igt_get_render_copyfunc(devid);
igt_require_f(render_copy, "no render-copy function\n");
--
2.25.1
next prev parent reply other threads:[~2022-08-22 23:57 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-08-22 23:56 [igt-dev] [PATCH i-g-t 00/23] Add DG2 OA test Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 01/23] i915/perf: Check regularly if we are done reading reports Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 02/23] i915/perf: Fix OA short_reads test Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 03/23] i915/perf: Check return value from getparam Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 04/23] i915/perf: Limit sseu-config tests for gen11 Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 05/23] i915/perf: Bump timestamp tolerance for DG1 Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 06/23] i915/perf: Account for OA sampling interval in polling test Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 07/23] i915/perf: Add support for 64-bit counters Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 08/23] i915/perf: Define OA report types Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 09/23] i915/perf: Use ARRAY_SIZE consistently for num_properties Umesh Nerlige Ramappa
2022-08-22 23:56 ` Umesh Nerlige Ramappa [this message]
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 11/23] i915/perf: Explicitly state rendercopy needs for a test Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 12/23] i915/perf: Skip tests that use rendercopy Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 13/23] i915/perf: Add OA formats for DG2 Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 14/23] i915/perf: Add a test for non-power-of-2 oa reports Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 15/23] i915/perf: Fix CS timestamp vs OA timstamp mismatch Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 16/23] i915/perf: Treat ticks as 64 bit Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 17/23] i915/perf: Treat timestamp as 64 bit value Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 18/23] i915/perf: Fix DG2 A0 report header Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 19/23] i915/perf: Wait longer for rc6 residency in DG2 Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 20/23] lib/i915/perf: implement report accumulation for new format Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 21/23] lib/i915/perf: fixup conversion script for XEHPSDV Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 22/23] lib/i915/perf: make warning message more helpful Umesh Nerlige Ramappa
2022-08-22 23:56 ` [igt-dev] [PATCH i-g-t 23/23] lib/i915/perf: Add DG2 metrics Umesh Nerlige Ramappa
2022-08-24 21:34 ` [igt-dev] ✓ Fi.CI.BAT: success for Add DG2 OA test (rev4) Patchwork
2022-08-26 16:38 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
2022-08-29 7:56 ` [igt-dev] [PATCH i-g-t 00/23] Add DG2 OA test Kamil Konieczny
-- strict thread matches above, loose matches on Subject: below --
2022-08-23 18:30 Umesh Nerlige Ramappa
2022-08-23 18:30 ` [igt-dev] [PATCH i-g-t 10/23] i915/perf: Use gt in perf tests and lib Umesh Nerlige Ramappa
2022-09-06 13:13 ` Lionel Landwerlin
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=20220822235657.280702-11-umesh.nerlige.ramappa@intel.com \
--to=umesh.nerlige.ramappa@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