From: John Harrison <john.c.harri...@intel.com> Various UMDs need to know the L3 bank count. So a query API has been added for it. Test that query.
Signed-off-by: John Harrison <john.c.harri...@intel.com> --- include/drm-uapi/i915_drm.h | 1 + tests/i915/i915_query.c | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/include/drm-uapi/i915_drm.h b/include/drm-uapi/i915_drm.h index 5c34ab759..191820532 100644 --- a/include/drm-uapi/i915_drm.h +++ b/include/drm-uapi/i915_drm.h @@ -2234,6 +2234,7 @@ struct drm_i915_query_item { #define DRM_I915_QUERY_PERF_CONFIG 3 #define DRM_I915_QUERY_MEMORY_REGIONS 4 #define DRM_I915_QUERY_HWCONFIG_TABLE 5 +#define DRM_I915_QUERY_L3_BANK_COUNT 6 /* Must be kept compact -- no holes and well documented */ /** diff --git a/tests/i915/i915_query.c b/tests/i915/i915_query.c index eef4afb05..17948e0d8 100644 --- a/tests/i915/i915_query.c +++ b/tests/i915/i915_query.c @@ -849,6 +849,38 @@ static void query_parse_and_validate_hwconfig_table(int i915) free(data); } +static int query_engine_l3_bank_count(int fd) +{ + uint32_t *banks; + struct drm_i915_query_item size = { + .query_id = DRM_I915_QUERY_L3_BANK_COUNT, + }; + struct drm_i915_query_item query = { + .query_id = DRM_I915_QUERY_L3_BANK_COUNT, + }; + int num_counts, i; + + i915_query_items(fd, &size, 1); + igt_require(size.length > 0); + + num_counts = size.length / sizeof(*banks); + igt_info("size = %d, count = %d => %ld\n", size.length, num_counts, num_counts * sizeof(*banks)); + igt_assert(size.length == (num_counts * sizeof(*banks))); + + banks = malloc(size.length); + igt_assert(banks); + query.data_ptr = to_user_pointer(banks); + query.length = size.length; + + i915_query_items(fd, &query, 1); + igt_assert(query.length == size.length); + for (i = 0; i < num_counts; i++) + igt_info("Bank count #%d: %d\n", i, banks[i]); + + free(banks); + return 0; +} + igt_main { int fd = -1; @@ -911,6 +943,9 @@ igt_main igt_subtest("hwconfig_table") query_parse_and_validate_hwconfig_table(fd); + igt_subtest("l3_banks") + query_engine_l3_bank_count(fd); + igt_fixture { close(fd); } -- 2.25.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/intel-gfx