* [igt-dev] [PATCH v2 0/4] Handle GT and tile seperation in IGT
@ 2023-06-23 11:49 Himal Prasad Ghimiray
2023-06-23 11:49 ` [igt-dev] [PATCH v2 1/4] lib/igt_sysfs: Add support to query number of tiles Himal Prasad Ghimiray
` (5 more replies)
0 siblings, 6 replies; 19+ messages in thread
From: Himal Prasad Ghimiray @ 2023-06-23 11:49 UTC (permalink / raw)
To: igt-dev; +Cc: Upadhyay
With seperation of GT and tiles in KMD, we will have sysfs entries
for properties associated with tile and gtX sysfs parent will be moving
under tileX. This series provides helper functions for accessing tile
associated sysfs entries and gt specific sysfs under respective tile.
series addresses gt related sysfs path change for xe_guc_pc.c test case
and introduces new test to verify addr_range for each vram.
Cc: Francois Dugast <francois.dugast@intel.com>
Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com>
Cc: Upadhyay <tejas.upadhyay@intel.com>
Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com>
Himal Prasad Ghimiray (4):
lib/igt_sysfs: Add support to query number of tiles
lib/igt_sysfs: Handling gt related sysfs uapi changes
tests/xe/xe_guc_pc: Change the sysfs paths
tests/xe/xe_sysfs_tile_prop: adds new test to verify per tile vram
addr_range
lib/igt_sysfs.c | 30 +++++
lib/igt_sysfs.h | 14 +++
tests/meson.build | 1 +
tests/xe/xe_guc_pc.c | 202 +++++++++++++++++-----------------
tests/xe/xe_sysfs_tile_prop.c | 67 +++++++++++
5 files changed, 214 insertions(+), 100 deletions(-)
create mode 100644 tests/xe/xe_sysfs_tile_prop.c
--
2.25.1
^ permalink raw reply [flat|nested] 19+ messages in thread* [igt-dev] [PATCH v2 1/4] lib/igt_sysfs: Add support to query number of tiles 2023-06-23 11:49 [igt-dev] [PATCH v2 0/4] Handle GT and tile seperation in IGT Himal Prasad Ghimiray @ 2023-06-23 11:49 ` Himal Prasad Ghimiray 2023-06-26 10:24 ` Upadhyay, Tejas 2023-06-23 11:49 ` [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes Himal Prasad Ghimiray ` (4 subsequent siblings) 5 siblings, 1 reply; 19+ messages in thread From: Himal Prasad Ghimiray @ 2023-06-23 11:49 UTC (permalink / raw) To: igt-dev; +Cc: Upadhyay With tile and GT seperation in KMD, we need to know number of tiles supported by platform. We will need to access tile associated properties from IGT. Hence adding iterator for all supported tiles. v2: - Calculate number of tiles once within iterator. (Rahul) - Use snprintf instead of sprintf. Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> Cc: Upadhyay <tejas.upadhyay@intel.com> Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> --- lib/igt_sysfs.c | 30 ++++++++++++++++++++++++++++++ lib/igt_sysfs.h | 8 ++++++++ 2 files changed, 38 insertions(+) diff --git a/lib/igt_sysfs.c b/lib/igt_sysfs.c index 35a4faa9..495b0288 100644 --- a/lib/igt_sysfs.c +++ b/lib/igt_sysfs.c @@ -287,6 +287,36 @@ int igt_sysfs_get_num_gt(int device) return num_gts; } +/** + * igt_sysfs_get_num_tiles: + * @device: fd of the device + * + * Reads number of tiles sysfs entries. + * Asserts for at least one tile entry. + * + * Returns: Number of tiles. + */ +int igt_sysfs_get_num_tiles(int device) +{ + int num_tiles; + char sysfs[48]; + char tiledir[96]; + + num_tiles =0; + if (!igt_sysfs_path(device, sysfs, sizeof(sysfs))) + return -1; + + do { + igt_assert(snprintf(tiledir, sizeof(tiledir), "%s/device/tile%d", + sysfs, num_tiles) < sizeof(tiledir)); + num_tiles++; + } while (!access(tiledir, F_OK)); + + num_tiles--; + igt_assert_f(num_tiles > 0, "No tiles sysfs entry is found."); + return num_tiles; +} + /** * igt_sysfs_write: * @dir: directory for the device from igt_sysfs_open() diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h index 978b6906..de2c9a86 100644 --- a/lib/igt_sysfs.h +++ b/lib/igt_sysfs.h @@ -38,6 +38,11 @@ (dirfd__ = igt_sysfs_gt_open(i915__, gt__)) != -1; \ close(dirfd__), gt__++) +#define for_each_sysfs_tile_dirfd(xe__, tile__, tile_cnt__) \ + for (tile__ = 0, tile_cnt__ = igt_sysfs_get_num_tiles(xe__); \ + tile__ < tile_cnt__; \ + ++tile__) + #define i915_for_each_gt for_each_sysfs_gt_dirfd #define igt_sysfs_rps_write(dir, id, data, len) \ @@ -73,6 +78,8 @@ #define igt_sysfs_rps_set_boolean(dir, id, value) \ igt_sysfs_set_boolean(dir, igt_sysfs_dir_id_to_name(dir, id), value) +#define xe_for_each_tile for_each_sysfs_tile_dirfd + enum i915_attr_id { RPS_ACT_FREQ_MHZ, RPS_CUR_FREQ_MHZ, @@ -97,6 +104,7 @@ int igt_sysfs_open(int device); char *igt_sysfs_gt_path(int device, int gt, char *path, int pathlen); int igt_sysfs_gt_open(int device, int gt); int igt_sysfs_get_num_gt(int device); +int igt_sysfs_get_num_tiles(int device); bool igt_sysfs_has_attr(int dir, const char *attr); const char *igt_sysfs_dir_id_to_name(int dir, enum i915_attr_id id); const char *igt_sysfs_path_id_to_name(const char *path, enum i915_attr_id id); -- 2.25.1 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 1/4] lib/igt_sysfs: Add support to query number of tiles 2023-06-23 11:49 ` [igt-dev] [PATCH v2 1/4] lib/igt_sysfs: Add support to query number of tiles Himal Prasad Ghimiray @ 2023-06-26 10:24 ` Upadhyay, Tejas 2023-06-26 20:24 ` Dixit, Ashutosh 0 siblings, 1 reply; 19+ messages in thread From: Upadhyay, Tejas @ 2023-06-26 10:24 UTC (permalink / raw) To: Ghimiray, Himal Prasad, igt-dev@lists.freedesktop.org > -----Original Message----- > From: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > Sent: Friday, June 23, 2023 5:20 PM > To: igt-dev@lists.freedesktop.org > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; Iddamsetty, > Aravind <aravind.iddamsetty@intel.com>; Upadhyay, Tejas > <tejas.upadhyay@intel.com>; Kumar, Janga Rahul > <janga.rahul.kumar@intel.com> > Subject: [PATCH v2 1/4] lib/igt_sysfs: Add support to query number of tiles > > With tile and GT seperation in KMD, we need to know number of tiles > supported by platform. > We will need to access tile associated properties from IGT. > Hence adding iterator for all supported tiles. > > v2: > - Calculate number of tiles once within iterator. (Rahul) > - Use snprintf instead of sprintf. > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > Cc: Upadhyay <tejas.upadhyay@intel.com> > Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> > Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> > --- > lib/igt_sysfs.c | 30 ++++++++++++++++++++++++++++++ lib/igt_sysfs.h | 8 > ++++++++ > 2 files changed, 38 insertions(+) > > diff --git a/lib/igt_sysfs.c b/lib/igt_sysfs.c index 35a4faa9..495b0288 100644 > --- a/lib/igt_sysfs.c > +++ b/lib/igt_sysfs.c > @@ -287,6 +287,36 @@ int igt_sysfs_get_num_gt(int device) > return num_gts; > } > > +/** > + * igt_sysfs_get_num_tiles: > + * @device: fd of the device > + * > + * Reads number of tiles sysfs entries. > + * Asserts for at least one tile entry. > + * > + * Returns: Number of tiles. > + */ > +int igt_sysfs_get_num_tiles(int device) { > + int num_tiles; > + char sysfs[48]; > + char tiledir[96]; > + > + num_tiles =0; > + if (!igt_sysfs_path(device, sysfs, sizeof(sysfs))) > + return -1; > + > + do { > + igt_assert(snprintf(tiledir, sizeof(tiledir), "%s/device/tile%d", > + sysfs, num_tiles) < sizeof(tiledir)); I feel this is not best way to count tiles, as because of some reason if we don't create tile sysfs dir , wrong number of tiles will be detected and then logic to follow for_each_gt/tile. But for now as we don't have anything supporting in kernel right now to give tile info we can rely on this. Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> > + num_tiles++; > + } while (!access(tiledir, F_OK)); > + > + num_tiles--; > + igt_assert_f(num_tiles > 0, "No tiles sysfs entry is found."); > + return num_tiles; > +} > + > /** > * igt_sysfs_write: > * @dir: directory for the device from igt_sysfs_open() diff --git > a/lib/igt_sysfs.h b/lib/igt_sysfs.h index 978b6906..de2c9a86 100644 > --- a/lib/igt_sysfs.h > +++ b/lib/igt_sysfs.h > @@ -38,6 +38,11 @@ > (dirfd__ = igt_sysfs_gt_open(i915__, gt__)) != -1; \ > close(dirfd__), gt__++) > > +#define for_each_sysfs_tile_dirfd(xe__, tile__, tile_cnt__) \ > + for (tile__ = 0, tile_cnt__ = igt_sysfs_get_num_tiles(xe__); \ > + tile__ < tile_cnt__; \ > + ++tile__) > + > #define i915_for_each_gt for_each_sysfs_gt_dirfd > > #define igt_sysfs_rps_write(dir, id, data, len) \ @@ -73,6 +78,8 @@ #define > igt_sysfs_rps_set_boolean(dir, id, value) \ > igt_sysfs_set_boolean(dir, igt_sysfs_dir_id_to_name(dir, id), value) > > +#define xe_for_each_tile for_each_sysfs_tile_dirfd > + > enum i915_attr_id { > RPS_ACT_FREQ_MHZ, > RPS_CUR_FREQ_MHZ, > @@ -97,6 +104,7 @@ int igt_sysfs_open(int device); char > *igt_sysfs_gt_path(int device, int gt, char *path, int pathlen); int > igt_sysfs_gt_open(int device, int gt); int igt_sysfs_get_num_gt(int device); > +int igt_sysfs_get_num_tiles(int device); > bool igt_sysfs_has_attr(int dir, const char *attr); const char > *igt_sysfs_dir_id_to_name(int dir, enum i915_attr_id id); const char > *igt_sysfs_path_id_to_name(const char *path, enum i915_attr_id id); > -- > 2.25.1 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 1/4] lib/igt_sysfs: Add support to query number of tiles 2023-06-26 10:24 ` Upadhyay, Tejas @ 2023-06-26 20:24 ` Dixit, Ashutosh 0 siblings, 0 replies; 19+ messages in thread From: Dixit, Ashutosh @ 2023-06-26 20:24 UTC (permalink / raw) To: Upadhyay, Tejas; +Cc: igt-dev@lists.freedesktop.org On Mon, 26 Jun 2023 03:24:05 -0700, Upadhyay, Tejas wrote: > > > -----Original Message----- > > From: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > > Sent: Friday, June 23, 2023 5:20 PM > > To: igt-dev@lists.freedesktop.org > > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; Iddamsetty, > > Aravind <aravind.iddamsetty@intel.com>; Upadhyay, Tejas > > <tejas.upadhyay@intel.com>; Kumar, Janga Rahul > > <janga.rahul.kumar@intel.com> > > Subject: [PATCH v2 1/4] lib/igt_sysfs: Add support to query number of tiles > > > > With tile and GT seperation in KMD, we need to know number of tiles > > supported by platform. > > We will need to access tile associated properties from IGT. > > Hence adding iterator for all supported tiles. > > > > v2: > > - Calculate number of tiles once within iterator. (Rahul) > > - Use snprintf instead of sprintf. > > > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > > Cc: Upadhyay <tejas.upadhyay@intel.com> > > Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> > > Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> > > --- > > lib/igt_sysfs.c | 30 ++++++++++++++++++++++++++++++ lib/igt_sysfs.h | 8 > > ++++++++ > > 2 files changed, 38 insertions(+) > > > > diff --git a/lib/igt_sysfs.c b/lib/igt_sysfs.c index 35a4faa9..495b0288 100644 > > --- a/lib/igt_sysfs.c > > +++ b/lib/igt_sysfs.c > > @@ -287,6 +287,36 @@ int igt_sysfs_get_num_gt(int device) > > return num_gts; > > } > > > > +/** > > + * igt_sysfs_get_num_tiles: > > + * @device: fd of the device > > + * > > + * Reads number of tiles sysfs entries. > > + * Asserts for at least one tile entry. > > + * > > + * Returns: Number of tiles. > > + */ > > +int igt_sysfs_get_num_tiles(int device) { > > + int num_tiles; > > + char sysfs[48]; > > + char tiledir[96]; > > + > > + num_tiles =0; > > + if (!igt_sysfs_path(device, sysfs, sizeof(sysfs))) > > + return -1; > > + > > + do { > > + igt_assert(snprintf(tiledir, sizeof(tiledir), "%s/device/tile%d", > > + sysfs, num_tiles) < sizeof(tiledir)); > > I feel this is not best way to count tiles, as because of some reason if > we don't create tile sysfs dir , wrong number of tiles will be detected > and then logic to follow for_each_gt/tile. But for now as we don't have > anything supporting in kernel right now to give tile info we can rely on > this. > > Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> I don't see the point of adding temporary solutions like this. Why not add XE_QUERY_CONFIG_TILE_COUNT under drm_xe_query_config in the kernel? > > > + num_tiles++; > > + } while (!access(tiledir, F_OK)); > > + > > + num_tiles--; > > + igt_assert_f(num_tiles > 0, "No tiles sysfs entry is found."); > > + return num_tiles; > > +} > > + > > /** > > * igt_sysfs_write: > > * @dir: directory for the device from igt_sysfs_open() diff --git > > a/lib/igt_sysfs.h b/lib/igt_sysfs.h index 978b6906..de2c9a86 100644 > > --- a/lib/igt_sysfs.h > > +++ b/lib/igt_sysfs.h > > @@ -38,6 +38,11 @@ > > (dirfd__ = igt_sysfs_gt_open(i915__, gt__)) != -1; \ > > close(dirfd__), gt__++) > > > > +#define for_each_sysfs_tile_dirfd(xe__, tile__, tile_cnt__) \ > > + for (tile__ = 0, tile_cnt__ = igt_sysfs_get_num_tiles(xe__); \ > > + tile__ < tile_cnt__; \ > > + ++tile__) Where is dirfd here which should be a fd to an open sysfs directory as in for_each_sysfs_gt_dirfd? > > + > > #define i915_for_each_gt for_each_sysfs_gt_dirfd > > > > #define igt_sysfs_rps_write(dir, id, data, len) \ @@ -73,6 +78,8 @@ #define > > igt_sysfs_rps_set_boolean(dir, id, value) \ > > igt_sysfs_set_boolean(dir, igt_sysfs_dir_id_to_name(dir, id), value) > > > > +#define xe_for_each_tile for_each_sysfs_tile_dirfd > > + > > enum i915_attr_id { > > RPS_ACT_FREQ_MHZ, > > RPS_CUR_FREQ_MHZ, > > @@ -97,6 +104,7 @@ int igt_sysfs_open(int device); char > > *igt_sysfs_gt_path(int device, int gt, char *path, int pathlen); int > > igt_sysfs_gt_open(int device, int gt); int igt_sysfs_get_num_gt(int device); > > +int igt_sysfs_get_num_tiles(int device); > > bool igt_sysfs_has_attr(int dir, const char *attr); const char > > *igt_sysfs_dir_id_to_name(int dir, enum i915_attr_id id); const char > > *igt_sysfs_path_id_to_name(const char *path, enum i915_attr_id id); > > -- > > 2.25.1 > ^ permalink raw reply [flat|nested] 19+ messages in thread
* [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes 2023-06-23 11:49 [igt-dev] [PATCH v2 0/4] Handle GT and tile seperation in IGT Himal Prasad Ghimiray 2023-06-23 11:49 ` [igt-dev] [PATCH v2 1/4] lib/igt_sysfs: Add support to query number of tiles Himal Prasad Ghimiray @ 2023-06-23 11:49 ` Himal Prasad Ghimiray 2023-06-26 10:48 ` Upadhyay, Tejas 2023-06-23 11:49 ` [igt-dev] [PATCH v2 3/4] tests/xe/xe_guc_pc: Change the sysfs paths Himal Prasad Ghimiray ` (3 subsequent siblings) 5 siblings, 1 reply; 19+ messages in thread From: Himal Prasad Ghimiray @ 2023-06-23 11:49 UTC (permalink / raw) To: igt-dev; +Cc: Upadhyay Patch https://patchwork.freedesktop.org/series/118927/ is moving gt sysfs parent under tile folder. With the above patch path for sysfs changes: from: /sys/class/drm/cardX/device/gtN/ to : /sys/class/drm/cardX/device/tileN/gtN Adding xe_for_each_gt_under_each_tile macro to access new path. v2: - Calculate number of tiles once within iterator. (Rahul) Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> Cc: Upadhyay <tejas.upadhyay@intel.com> Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> Cc: Francois Dugast <francois.dugast@intel.com> Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> Cc: Matt Roper <matthew.d.roper@intel.com> Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> --- lib/igt_sysfs.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h index de2c9a86..42bf2741 100644 --- a/lib/igt_sysfs.h +++ b/lib/igt_sysfs.h @@ -80,6 +80,12 @@ #define xe_for_each_tile for_each_sysfs_tile_dirfd +/* FIXME: Need to revisit if GT indexing under TILE changes from KMD */ +#define xe_for_each_gt_under_each_tile(xe__, gt__, tile__, tile_cnt__) \ + for (gt__ = 0, tile__ = 0, tile_cnt__ = igt_sysfs_get_num_tiles(xe__) ; \ + gt__ < xe_number_gt(xe__); \ + (xe_number_gt(xe__) == tile_cnt__) ? ++gt__, ++tile__ : ++gt__) + enum i915_attr_id { RPS_ACT_FREQ_MHZ, RPS_CUR_FREQ_MHZ, -- 2.25.1 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes 2023-06-23 11:49 ` [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes Himal Prasad Ghimiray @ 2023-06-26 10:48 ` Upadhyay, Tejas 2023-06-26 22:34 ` Dixit, Ashutosh 0 siblings, 1 reply; 19+ messages in thread From: Upadhyay, Tejas @ 2023-06-26 10:48 UTC (permalink / raw) To: Ghimiray, Himal Prasad, igt-dev@lists.freedesktop.org > -----Original Message----- > From: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > Sent: Friday, June 23, 2023 5:20 PM > To: igt-dev@lists.freedesktop.org > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; Iddamsetty, > Aravind <aravind.iddamsetty@intel.com>; Upadhyay, Tejas > <tejas.upadhyay@intel.com>; Kumar, Janga Rahul > <janga.rahul.kumar@intel.com>; Dugast, Francois > <francois.dugast@intel.com>; Dixit, Ashutosh <ashutosh.dixit@intel.com>; > Roper, Matthew D <matthew.d.roper@intel.com> > Subject: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes > > Patch https://patchwork.freedesktop.org/series/118927/ > is moving gt sysfs parent under tile folder. > > With the above patch path for sysfs changes: > from: /sys/class/drm/cardX/device/gtN/ > to : /sys/class/drm/cardX/device/tileN/gtN > > Adding xe_for_each_gt_under_each_tile macro to access new path. > > v2: > - Calculate number of tiles once within iterator. (Rahul) > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > Cc: Upadhyay <tejas.upadhyay@intel.com> > Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> > Cc: Francois Dugast <francois.dugast@intel.com> > Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> > Cc: Matt Roper <matthew.d.roper@intel.com> > Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> > --- > lib/igt_sysfs.h | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h index de2c9a86..42bf2741 100644 > --- a/lib/igt_sysfs.h > +++ b/lib/igt_sysfs.h > @@ -80,6 +80,12 @@ > > #define xe_for_each_tile for_each_sysfs_tile_dirfd > > +/* FIXME: Need to revisit if GT indexing under TILE changes from KMD */ > +#define xe_for_each_gt_under_each_tile(xe__, gt__, tile__, tile_cnt__) \ > + for (gt__ = 0, tile__ = 0, tile_cnt__ = igt_sysfs_get_num_tiles(xe__) ; \ > + gt__ < xe_number_gt(xe__); \ > + (xe_number_gt(xe__) == tile_cnt__) ? ++gt__, ++tile__ : ++gt__) > + This is with consideration of indexing and also considering equal (or all GT counts are on one tile) GT counts on each tile. Consider case when 2GTs on 1 tile and 1 GT on other tile. But for all current platforms we have it should work, need to revisit when any of those scenario comes. Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> > enum i915_attr_id { > RPS_ACT_FREQ_MHZ, > RPS_CUR_FREQ_MHZ, > -- > 2.25.1 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes 2023-06-26 10:48 ` Upadhyay, Tejas @ 2023-06-26 22:34 ` Dixit, Ashutosh 2023-06-27 4:22 ` Ghimiray, Himal Prasad 0 siblings, 1 reply; 19+ messages in thread From: Dixit, Ashutosh @ 2023-06-26 22:34 UTC (permalink / raw) To: Upadhyay, Tejas; +Cc: igt-dev@lists.freedesktop.org On Mon, 26 Jun 2023 03:48:16 -0700, Upadhyay, Tejas wrote: > > > -----Original Message----- > > From: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > > Sent: Friday, June 23, 2023 5:20 PM > > To: igt-dev@lists.freedesktop.org > > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; Iddamsetty, > > Aravind <aravind.iddamsetty@intel.com>; Upadhyay, Tejas > > <tejas.upadhyay@intel.com>; Kumar, Janga Rahul > > <janga.rahul.kumar@intel.com>; Dugast, Francois > > <francois.dugast@intel.com>; Dixit, Ashutosh <ashutosh.dixit@intel.com>; > > Roper, Matthew D <matthew.d.roper@intel.com> > > Subject: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes > > > > Patch https://patchwork.freedesktop.org/series/118927/ > > is moving gt sysfs parent under tile folder. > > > > With the above patch path for sysfs changes: > > from: /sys/class/drm/cardX/device/gtN/ > > to : /sys/class/drm/cardX/device/tileN/gtN > > > > Adding xe_for_each_gt_under_each_tile macro to access new path. > > > > v2: > > - Calculate number of tiles once within iterator. (Rahul) > > > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > > Cc: Upadhyay <tejas.upadhyay@intel.com> > > Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> > > Cc: Francois Dugast <francois.dugast@intel.com> > > Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> > > Cc: Matt Roper <matthew.d.roper@intel.com> > > Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> > > --- > > lib/igt_sysfs.h | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h index de2c9a86..42bf2741 100644 > > --- a/lib/igt_sysfs.h > > +++ b/lib/igt_sysfs.h > > @@ -80,6 +80,12 @@ > > > > #define xe_for_each_tile for_each_sysfs_tile_dirfd > > > > +/* FIXME: Need to revisit if GT indexing under TILE changes from KMD */ > > +#define xe_for_each_gt_under_each_tile(xe__, gt__, tile__, tile_cnt__) \ > > + for (gt__ = 0, tile__ = 0, tile_cnt__ = igt_sysfs_get_num_tiles(xe__) ; \ > > + gt__ < xe_number_gt(xe__); \ > > + (xe_number_gt(xe__) == tile_cnt__) ? ++gt__, ++tile__ : ++gt__) > > + > > This is with consideration of indexing and also considering equal (or all > GT counts are on one tile) GT counts on each tile. Consider case when > 2GTs on 1 tile and 1 GT on other tile. But for all current platforms we > have it should work, need to revisit when any of those scenario comes. Yes because of this like tile info should be properly exposed from the xe kmd query api. Or we could do the sysfs as we did on i915. For the above how about a shorter name like "xe_for_each_tile_and_gt"? Also I would change the order of tile__ and gt__ arguments since that is more logical, gt's are under tiles. Also I don't think tile_cnt__ should be in the macro args, we could just do this: #define xe_for_each_tile_and_gt(xe__, , tile__, gt__) \ for (gt__ = 0, tile__ = 0; \ gt__ < xe_number_gt(xe__); \ (xe_number_gt(xe__) == igt_sysfs_get_num_tiles(xe__) ? ++gt__, ++tile__ : ++gt__) So that is possible, but why are we comparing num_gt with num_tiles? So no idea what's going on here. It should be num gt's per tile if they are all the same :/ > > Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> > > > enum i915_attr_id { > > RPS_ACT_FREQ_MHZ, > > RPS_CUR_FREQ_MHZ, > > -- > > 2.25.1 > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes 2023-06-26 22:34 ` Dixit, Ashutosh @ 2023-06-27 4:22 ` Ghimiray, Himal Prasad 2023-06-27 6:02 ` Dixit, Ashutosh 0 siblings, 1 reply; 19+ messages in thread From: Ghimiray, Himal Prasad @ 2023-06-27 4:22 UTC (permalink / raw) To: Dixit, Ashutosh, Upadhyay, Tejas; +Cc: igt-dev@lists.freedesktop.org Hi Ashutosh, > -----Original Message----- > From: Dixit, Ashutosh <ashutosh.dixit@intel.com> > Sent: 27 June 2023 04:04 > To: Upadhyay, Tejas <tejas.upadhyay@intel.com> > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; igt- > dev@lists.freedesktop.org; Iddamsetty, Aravind > <aravind.iddamsetty@intel.com>; Kumar, Janga Rahul > <janga.rahul.kumar@intel.com>; Dugast, Francois > <francois.dugast@intel.com>; Roper, Matthew D > <matthew.d.roper@intel.com> > Subject: Re: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi > changes > > On Mon, 26 Jun 2023 03:48:16 -0700, Upadhyay, Tejas wrote: > > > > > -----Original Message----- > > > From: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > > > Sent: Friday, June 23, 2023 5:20 PM > > > To: igt-dev@lists.freedesktop.org > > > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; > > > Iddamsetty, Aravind <aravind.iddamsetty@intel.com>; Upadhyay, Tejas > > > <tejas.upadhyay@intel.com>; Kumar, Janga Rahul > > > <janga.rahul.kumar@intel.com>; Dugast, Francois > > > <francois.dugast@intel.com>; Dixit, Ashutosh > > > <ashutosh.dixit@intel.com>; Roper, Matthew D > > > <matthew.d.roper@intel.com> > > > Subject: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs > > > uapi changes > > > > > > Patch https://patchwork.freedesktop.org/series/118927/ > > > is moving gt sysfs parent under tile folder. > > > > > > With the above patch path for sysfs changes: > > > from: /sys/class/drm/cardX/device/gtN/ to : > > > /sys/class/drm/cardX/device/tileN/gtN > > > > > > Adding xe_for_each_gt_under_each_tile macro to access new path. > > > > > > v2: > > > - Calculate number of tiles once within iterator. (Rahul) > > > > > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > > > Cc: Upadhyay <tejas.upadhyay@intel.com> > > > Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> > > > Cc: Francois Dugast <francois.dugast@intel.com> > > > Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> > > > Cc: Matt Roper <matthew.d.roper@intel.com> > > > Signed-off-by: Himal Prasad Ghimiray > > > <himal.prasad.ghimiray@intel.com> > > > --- > > > lib/igt_sysfs.h | 6 ++++++ > > > 1 file changed, 6 insertions(+) > > > > > > diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h index > > > de2c9a86..42bf2741 100644 > > > --- a/lib/igt_sysfs.h > > > +++ b/lib/igt_sysfs.h > > > @@ -80,6 +80,12 @@ > > > > > > #define xe_for_each_tile for_each_sysfs_tile_dirfd > > > > > > +/* FIXME: Need to revisit if GT indexing under TILE changes from > > > +KMD */ #define xe_for_each_gt_under_each_tile(xe__, gt__, tile__, > tile_cnt__) \ > > > + for (gt__ = 0, tile__ = 0, tile_cnt__ = igt_sysfs_get_num_tiles(xe__) ; > \ > > > + gt__ < xe_number_gt(xe__); \ > > > + (xe_number_gt(xe__) == tile_cnt__) ? ++gt__, ++tile__ : > > > +++gt__) > > > + > > > > This is with consideration of indexing and also considering equal (or > > all GT counts are on one tile) GT counts on each tile. Consider case > > when 2GTs on 1 tile and 1 GT on other tile. But for all current > > platforms we have it should work, need to revisit when any of those > scenario comes. > > Yes because of this like tile info should be properly exposed from the xe kmd > query api. Or we could do the sysfs as we did on i915. Agreed. > > For the above how about a shorter name like "xe_for_each_tile_and_gt"? > > Also I would change the order of tile__ and gt__ arguments since that is > more logical, gt's are under tiles. To me xe_for_each_gt_under_each_tile more appropriate in comparison to xe_for_each_tile_and_gt. Purpose here is to iterate all gt specific sysfs entries under each tile. > > Also I don't think tile_cnt__ should be in the macro args, we could just do > this: > > #define xe_for_each_tile_and_gt(xe__, , tile__, gt__) \ > for (gt__ = 0, tile__ = 0; \ > gt__ < xe_number_gt(xe__); \ > (xe_number_gt(xe__) == igt_sysfs_get_num_tiles(xe__) ? > ++gt__, ++tile__ : ++gt__) In rev1. I had used this implementation. But problem is igt_sysfs_get_num_tiles(xe__) will be calculated for each iteration and want to avoid it. > > So that is possible, but why are we comparing num_gt with num_tiles? So no > idea what's going on here. It should be num gt's per tile if they are all the > same :/ Patch https://patchwork.freedesktop.org/series/118927/ is moving Gt specific sysfs entries into tile. from: /sys/class/drm/cardX/device/gtN/sysfsX to : /sys/class/drm/cardX/device/tileN/gtN/sysfsX Agreed KMD should we exposing the number of gt's per tile. But as of now we don't have such queries. But we are certain that none of the platform supports multitile and multigt per tile so above check ensures. If number of gt's are equal to number of tiles then sysfs should be read in above order. If number of gt is not equal to number of tiles Which will be case in MTL , gt0 and gt1 should be under tile0 only. Usage of this iterator can be seen from https://patchwork.freedesktop.org/patch/543998/?series=119801&rev=1 BR Himal > > > > > Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> > > > > > enum i915_attr_id { > > > RPS_ACT_FREQ_MHZ, > > > RPS_CUR_FREQ_MHZ, > > > -- > > > 2.25.1 > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes 2023-06-27 4:22 ` Ghimiray, Himal Prasad @ 2023-06-27 6:02 ` Dixit, Ashutosh 2023-06-27 7:06 ` Ghimiray, Himal Prasad 0 siblings, 1 reply; 19+ messages in thread From: Dixit, Ashutosh @ 2023-06-27 6:02 UTC (permalink / raw) To: Ghimiray, Himal Prasad; +Cc: Upadhyay, Tejas, igt-dev@lists.freedesktop.org On Mon, 26 Jun 2023 21:22:33 -0700, Ghimiray, Himal Prasad wrote: > > Hi Ashutosh, Hi Himal, > > > -----Original Message----- > > From: Dixit, Ashutosh <ashutosh.dixit@intel.com> > > Sent: 27 June 2023 04:04 > > To: Upadhyay, Tejas <tejas.upadhyay@intel.com> > > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; igt- > > dev@lists.freedesktop.org; Iddamsetty, Aravind > > <aravind.iddamsetty@intel.com>; Kumar, Janga Rahul > > <janga.rahul.kumar@intel.com>; Dugast, Francois > > <francois.dugast@intel.com>; Roper, Matthew D > > <matthew.d.roper@intel.com> > > Subject: Re: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi > > changes > > > > On Mon, 26 Jun 2023 03:48:16 -0700, Upadhyay, Tejas wrote: > > > > > > > -----Original Message----- > > > > From: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > > > > Sent: Friday, June 23, 2023 5:20 PM > > > > To: igt-dev@lists.freedesktop.org > > > > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; > > > > Iddamsetty, Aravind <aravind.iddamsetty@intel.com>; Upadhyay, Tejas > > > > <tejas.upadhyay@intel.com>; Kumar, Janga Rahul > > > > <janga.rahul.kumar@intel.com>; Dugast, Francois > > > > <francois.dugast@intel.com>; Dixit, Ashutosh > > > > <ashutosh.dixit@intel.com>; Roper, Matthew D > > > > <matthew.d.roper@intel.com> > > > > Subject: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs > > > > uapi changes > > > > > > > > Patch https://patchwork.freedesktop.org/series/118927/ > > > > is moving gt sysfs parent under tile folder. > > > > > > > > With the above patch path for sysfs changes: > > > > from: /sys/class/drm/cardX/device/gtN/ to : > > > > /sys/class/drm/cardX/device/tileN/gtN > > > > > > > > Adding xe_for_each_gt_under_each_tile macro to access new path. > > > > > > > > v2: > > > > - Calculate number of tiles once within iterator. (Rahul) > > > > > > > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > > > > Cc: Upadhyay <tejas.upadhyay@intel.com> > > > > Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> > > > > Cc: Francois Dugast <francois.dugast@intel.com> > > > > Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> > > > > Cc: Matt Roper <matthew.d.roper@intel.com> > > > > Signed-off-by: Himal Prasad Ghimiray > > > > <himal.prasad.ghimiray@intel.com> > > > > --- > > > > lib/igt_sysfs.h | 6 ++++++ > > > > 1 file changed, 6 insertions(+) > > > > > > > > diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h index > > > > de2c9a86..42bf2741 100644 > > > > --- a/lib/igt_sysfs.h > > > > +++ b/lib/igt_sysfs.h > > > > @@ -80,6 +80,12 @@ > > > > > > > > #define xe_for_each_tile for_each_sysfs_tile_dirfd > > > > > > > > +/* FIXME: Need to revisit if GT indexing under TILE changes from > > > > +KMD */ #define xe_for_each_gt_under_each_tile(xe__, gt__, tile__, > > tile_cnt__) \ > > > > + for (gt__ = 0, tile__ = 0, tile_cnt__ = igt_sysfs_get_num_tiles(xe__) ; > > \ > > > > + gt__ < xe_number_gt(xe__); \ > > > > + (xe_number_gt(xe__) == tile_cnt__) ? ++gt__, ++tile__ : > > > > +++gt__) > > > > + > > > > > > This is with consideration of indexing and also considering equal (or > > > all GT counts are on one tile) GT counts on each tile. Consider case > > > when 2GTs on 1 tile and 1 GT on other tile. But for all current > > > platforms we have it should work, need to revisit when any of those > > scenario comes. > > > > Yes because of this like tile info should be properly exposed from the xe kmd > > query api. Or we could do the sysfs as we did on i915. > Agreed. > > > > For the above how about a shorter name like "xe_for_each_tile_and_gt"? > > > > Also I would change the order of tile__ and gt__ arguments since that is > > more logical, gt's are under tiles. This is a nit but anyway what about this? > To me xe_for_each_gt_under_each_tile more appropriate in comparison to > xe_for_each_tile_and_gt. Purpose here is to iterate all gt specific sysfs entries under each tile. > > > > Also I don't think tile_cnt__ should be in the macro args, we could just do > > this: > > > > #define xe_for_each_tile_and_gt(xe__, , tile__, gt__) \ > > for (gt__ = 0, tile__ = 0; \ > > gt__ < xe_number_gt(xe__); \ > > (xe_number_gt(xe__) == igt_sysfs_get_num_tiles(xe__) ? > > ++gt__, ++tile__ : ++gt__) > > In rev1. I had used this implementation. But problem is igt_sysfs_get_num_tiles(xe__) > will be calculated for each iteration and want to avoid it. As far as I see it, the compiler should optimize any such repetitions. We can even add num_tiles to 'struct xe_device' in xe_device_get() (as if it's obtained from the kernel), similar to xe_number_gt(). > > > > So that is possible, but why are we comparing num_gt with num_tiles? So > > no idea what's going on here. It should be num gt's per tile if they > > are all the same :/ > > Patch https://patchwork.freedesktop.org/series/118927/ is moving > Gt specific sysfs entries into tile. > from: /sys/class/drm/cardX/device/gtN/sysfsX to : /sys/class/drm/cardX/device/tileN/gtN/sysfsX > > Agreed KMD should we exposing the number of gt's per tile. But as of now we don't have such queries. > But we are certain that none of the platform supports multitile and multigt per tile so above check ensures. > If number of gt's are equal to number of tiles then sysfs should be read in above order. If number of gt is not equal to number of tiles > Which will be case in MTL , gt0 and gt1 should be under tile0 only. So the code only works for 'num_tiles == 1' or 'num_tiles == num_gt' (1 gt per tile), correct? At the minimum we should probably add this assert in the init section of the for loop. The correct way to do it is of course to traverse the tile/gt directory tree which would be able to handle general tile/gt combinations. Anyway I'll let other people decide whether what we have here is ok or not to merge. Regards, Ashutosh > Usage of this iterator can be seen from https://patchwork.freedesktop.org/patch/543998/?series=119801&rev=1 > > BR > Himal > > > > > > > > > > Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> > > > > > > > enum i915_attr_id { > > > > RPS_ACT_FREQ_MHZ, > > > > RPS_CUR_FREQ_MHZ, > > > > -- > > > > 2.25.1 > > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes 2023-06-27 6:02 ` Dixit, Ashutosh @ 2023-06-27 7:06 ` Ghimiray, Himal Prasad 2023-07-01 17:44 ` Dixit, Ashutosh 0 siblings, 1 reply; 19+ messages in thread From: Ghimiray, Himal Prasad @ 2023-06-27 7:06 UTC (permalink / raw) To: Dixit, Ashutosh; +Cc: Upadhyay, Tejas, igt-dev@lists.freedesktop.org Hi Ashutosh, > -----Original Message----- > From: Dixit, Ashutosh <ashutosh.dixit@intel.com> > Sent: 27 June 2023 11:33 > To: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > Cc: Upadhyay, Tejas <tejas.upadhyay@intel.com>; igt- > dev@lists.freedesktop.org; Iddamsetty, Aravind > <aravind.iddamsetty@intel.com>; Kumar, Janga Rahul > <janga.rahul.kumar@intel.com>; Dugast, Francois > <francois.dugast@intel.com>; Roper, Matthew D > <matthew.d.roper@intel.com> > Subject: Re: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi > changes > > On Mon, 26 Jun 2023 21:22:33 -0700, Ghimiray, Himal Prasad wrote: > > > > Hi Ashutosh, > > Hi Himal, > > > > > > -----Original Message----- > > > From: Dixit, Ashutosh <ashutosh.dixit@intel.com> > > > Sent: 27 June 2023 04:04 > > > To: Upadhyay, Tejas <tejas.upadhyay@intel.com> > > > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; igt- > > > dev@lists.freedesktop.org; Iddamsetty, Aravind > > > <aravind.iddamsetty@intel.com>; Kumar, Janga Rahul > > > <janga.rahul.kumar@intel.com>; Dugast, Francois > > > <francois.dugast@intel.com>; Roper, Matthew D > > > <matthew.d.roper@intel.com> > > > Subject: Re: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs > > > uapi changes > > > > > > On Mon, 26 Jun 2023 03:48:16 -0700, Upadhyay, Tejas wrote: > > > > > > > > > -----Original Message----- > > > > > From: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > > > > > Sent: Friday, June 23, 2023 5:20 PM > > > > > To: igt-dev@lists.freedesktop.org > > > > > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; > > > > > Iddamsetty, Aravind <aravind.iddamsetty@intel.com>; Upadhyay, > > > > > Tejas <tejas.upadhyay@intel.com>; Kumar, Janga Rahul > > > > > <janga.rahul.kumar@intel.com>; Dugast, Francois > > > > > <francois.dugast@intel.com>; Dixit, Ashutosh > > > > > <ashutosh.dixit@intel.com>; Roper, Matthew D > > > > > <matthew.d.roper@intel.com> > > > > > Subject: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs > > > > > uapi changes > > > > > > > > > > Patch https://patchwork.freedesktop.org/series/118927/ > > > > > is moving gt sysfs parent under tile folder. > > > > > > > > > > With the above patch path for sysfs changes: > > > > > from: /sys/class/drm/cardX/device/gtN/ to : > > > > > /sys/class/drm/cardX/device/tileN/gtN > > > > > > > > > > Adding xe_for_each_gt_under_each_tile macro to access new path. > > > > > > > > > > v2: > > > > > - Calculate number of tiles once within iterator. (Rahul) > > > > > > > > > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > > > > > Cc: Upadhyay <tejas.upadhyay@intel.com> > > > > > Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> > > > > > Cc: Francois Dugast <francois.dugast@intel.com> > > > > > Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> > > > > > Cc: Matt Roper <matthew.d.roper@intel.com> > > > > > Signed-off-by: Himal Prasad Ghimiray > > > > > <himal.prasad.ghimiray@intel.com> > > > > > --- > > > > > lib/igt_sysfs.h | 6 ++++++ > > > > > 1 file changed, 6 insertions(+) > > > > > > > > > > diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h index > > > > > de2c9a86..42bf2741 100644 > > > > > --- a/lib/igt_sysfs.h > > > > > +++ b/lib/igt_sysfs.h > > > > > @@ -80,6 +80,12 @@ > > > > > > > > > > #define xe_for_each_tile for_each_sysfs_tile_dirfd > > > > > > > > > > +/* FIXME: Need to revisit if GT indexing under TILE changes > > > > > +from KMD */ #define xe_for_each_gt_under_each_tile(xe__, gt__, > > > > > +tile__, > > > tile_cnt__) \ > > > > > + for (gt__ = 0, tile__ = 0, tile_cnt__ = > > > > > +igt_sysfs_get_num_tiles(xe__) ; > > > \ > > > > > + gt__ < xe_number_gt(xe__); \ > > > > > + (xe_number_gt(xe__) == tile_cnt__) ? ++gt__, ++tile__ : > > > > > +++gt__) > > > > > + > > > > > > > > This is with consideration of indexing and also considering equal > > > > (or all GT counts are on one tile) GT counts on each tile. > > > > Consider case when 2GTs on 1 tile and 1 GT on other tile. But for > > > > all current platforms we have it should work, need to revisit when > > > > any of those > > > scenario comes. > > > > > > Yes because of this like tile info should be properly exposed from > > > the xe kmd query api. Or we could do the sysfs as we did on i915. > > Agreed. > > > > > > For the above how about a shorter name like > "xe_for_each_tile_and_gt"? > > > > > > Also I would change the order of tile__ and gt__ arguments since > > > that is more logical, gt's are under tiles. > > This is a nit but anyway what about this? Sorry I missed it earlier. What you suggested is logical and more appropriate. Will change the order of arguments. > > > To me xe_for_each_gt_under_each_tile more appropriate in comparison > > to xe_for_each_tile_and_gt. Purpose here is to iterate all gt specific sysfs > entries under each tile. > > > > > > Also I don't think tile_cnt__ should be in the macro args, we could > > > just do > > > this: > > > > > > #define xe_for_each_tile_and_gt(xe__, , tile__, gt__) \ > > > for (gt__ = 0, tile__ = 0; \ > > > gt__ < xe_number_gt(xe__); \ > > > (xe_number_gt(xe__) == igt_sysfs_get_num_tiles(xe__) ? > > > ++gt__, ++tile__ : ++gt__) > > > > In rev1. I had used this implementation. But problem is > > igt_sysfs_get_num_tiles(xe__) will be calculated for each iteration and > want to avoid it. > > As far as I see it, the compiler should optimize any such repetitions. We can > even add num_tiles to 'struct xe_device' in xe_device_get() (as if it's > obtained from the kernel), similar to xe_number_gt(). In that case, my preference would be using (xe_number_gt(xe__) == igt_sysfs_get_num_tiles(xe__) Instead of populating num_tiles in struct xe_device because other members of the structure are being intitialized on the basis of ioctl call. Please confirm what will be more appropriate. > > > > > > > So that is possible, but why are we comparing num_gt with num_tiles? > > > So no idea what's going on here. It should be num gt's per tile if > > > they are all the same :/ > > > > Patch https://patchwork.freedesktop.org/series/118927/ is moving Gt > > specific sysfs entries into tile. > > from: /sys/class/drm/cardX/device/gtN/sysfsX to : > > /sys/class/drm/cardX/device/tileN/gtN/sysfsX > > > > Agreed KMD should we exposing the number of gt's per tile. But as of now > we don't have such queries. > > But we are certain that none of the platform supports multitile and multigt > per tile so above check ensures. > > If number of gt's are equal to number of tiles then sysfs should be > > read in above order. If number of gt is not equal to number of tiles Which > will be case in MTL , gt0 and gt1 should be under tile0 only. > > So the code only works for 'num_tiles == 1' or 'num_tiles == num_gt' (1 gt > per tile), correct? At the minimum we should probably add this assert in the > init section of the for loop. Correct, as of now code only caters multitile and multigt exclusively. Will need to enhance in case of future platform supporting both. AFAIK adding assert/comparison in init section of for loop is not possible. And I can't make it multiple statement macro because that will break in case of handling iterator in if-else condition. > > The correct way to do it is of course to traverse the tile/gt directory tree > which would be able to handle general tile/gt combinations. > The issue with this approach is for multi tile the gt indexing is same as tile indexing. Tile0/gt0 and tile1/gt1. Multiple loop with extra conditions will be overkill and confusing to handle the scenario. 1) First determine number of gt's_per_tile writing the logic as finding number of tiles. 2) For(each_tile) for(each_gt) run loop till total numbers of gt's because indexing doesn't start with 0. [ skip all other index's apart from index same as tile] > Anyway I'll let other people decide whether what we have here is ok or not > to merge. > > Regards, > Ashutosh > > > > Usage of this iterator can be seen from > > https://patchwork.freedesktop.org/patch/543998/?series=119801&rev=1 > > > > BR > > Himal > > > > > > > > > > > > > > > Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> > > > > > > > > > enum i915_attr_id { > > > > > RPS_ACT_FREQ_MHZ, > > > > > RPS_CUR_FREQ_MHZ, > > > > > -- > > > > > 2.25.1 > > > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes 2023-06-27 7:06 ` Ghimiray, Himal Prasad @ 2023-07-01 17:44 ` Dixit, Ashutosh 2023-07-04 5:42 ` Ghimiray, Himal Prasad 0 siblings, 1 reply; 19+ messages in thread From: Dixit, Ashutosh @ 2023-07-01 17:44 UTC (permalink / raw) To: Ghimiray, Himal Prasad; +Cc: Upadhyay, Tejas, igt-dev@lists.freedesktop.org On Tue, 27 Jun 2023 00:06:01 -0700, Ghimiray, Himal Prasad wrote: > Hi Himal, Please send igt patches with [PATCH i-g-t] subjectPrefix. Set subjectPrefix in .git/config e.g. Below too. > > -----Original Message----- > > From: Dixit, Ashutosh <ashutosh.dixit@intel.com> > > Sent: 27 June 2023 11:33 > > To: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > > Cc: Upadhyay, Tejas <tejas.upadhyay@intel.com>; igt- > > dev@lists.freedesktop.org; Iddamsetty, Aravind > > <aravind.iddamsetty@intel.com>; Kumar, Janga Rahul > > <janga.rahul.kumar@intel.com>; Dugast, Francois > > <francois.dugast@intel.com>; Roper, Matthew D > > <matthew.d.roper@intel.com> > > Subject: Re: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi > > changes > > > > On Mon, 26 Jun 2023 21:22:33 -0700, Ghimiray, Himal Prasad wrote: > > > > > > Hi Ashutosh, > > > > Hi Himal, > > > > > > > > > -----Original Message----- > > > > From: Dixit, Ashutosh <ashutosh.dixit@intel.com> > > > > Sent: 27 June 2023 04:04 > > > > To: Upadhyay, Tejas <tejas.upadhyay@intel.com> > > > > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; igt- > > > > dev@lists.freedesktop.org; Iddamsetty, Aravind > > > > <aravind.iddamsetty@intel.com>; Kumar, Janga Rahul > > > > <janga.rahul.kumar@intel.com>; Dugast, Francois > > > > <francois.dugast@intel.com>; Roper, Matthew D > > > > <matthew.d.roper@intel.com> > > > > Subject: Re: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs > > > > uapi changes > > > > > > > > On Mon, 26 Jun 2023 03:48:16 -0700, Upadhyay, Tejas wrote: > > > > > > > > > > > -----Original Message----- > > > > > > From: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > > > > > > Sent: Friday, June 23, 2023 5:20 PM > > > > > > To: igt-dev@lists.freedesktop.org > > > > > > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; > > > > > > Iddamsetty, Aravind <aravind.iddamsetty@intel.com>; Upadhyay, > > > > > > Tejas <tejas.upadhyay@intel.com>; Kumar, Janga Rahul > > > > > > <janga.rahul.kumar@intel.com>; Dugast, Francois > > > > > > <francois.dugast@intel.com>; Dixit, Ashutosh > > > > > > <ashutosh.dixit@intel.com>; Roper, Matthew D > > > > > > <matthew.d.roper@intel.com> > > > > > > Subject: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs > > > > > > uapi changes > > > > > > > > > > > > Patch https://patchwork.freedesktop.org/series/118927/ > > > > > > is moving gt sysfs parent under tile folder. > > > > > > > > > > > > With the above patch path for sysfs changes: > > > > > > from: /sys/class/drm/cardX/device/gtN/ to : > > > > > > /sys/class/drm/cardX/device/tileN/gtN > > > > > > > > > > > > Adding xe_for_each_gt_under_each_tile macro to access new path. > > > > > > > > > > > > v2: > > > > > > - Calculate number of tiles once within iterator. (Rahul) > > > > > > > > > > > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > > > > > > Cc: Upadhyay <tejas.upadhyay@intel.com> > > > > > > Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> > > > > > > Cc: Francois Dugast <francois.dugast@intel.com> > > > > > > Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> > > > > > > Cc: Matt Roper <matthew.d.roper@intel.com> > > > > > > Signed-off-by: Himal Prasad Ghimiray > > > > > > <himal.prasad.ghimiray@intel.com> > > > > > > --- > > > > > > lib/igt_sysfs.h | 6 ++++++ > > > > > > 1 file changed, 6 insertions(+) > > > > > > > > > > > > diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h index > > > > > > de2c9a86..42bf2741 100644 > > > > > > --- a/lib/igt_sysfs.h > > > > > > +++ b/lib/igt_sysfs.h > > > > > > @@ -80,6 +80,12 @@ > > > > > > > > > > > > #define xe_for_each_tile for_each_sysfs_tile_dirfd > > > > > > > > > > > > +/* FIXME: Need to revisit if GT indexing under TILE changes > > > > > > +from KMD */ #define xe_for_each_gt_under_each_tile(xe__, gt__, > > > > > > +tile__, > > > > tile_cnt__) \ > > > > > > + for (gt__ = 0, tile__ = 0, tile_cnt__ = > > > > > > +igt_sysfs_get_num_tiles(xe__) ; > > > > \ > > > > > > + gt__ < xe_number_gt(xe__); \ > > > > > > + (xe_number_gt(xe__) == tile_cnt__) ? ++gt__, ++tile__ : > > > > > > +++gt__) > > > > > > + > > > > > > > > > > This is with consideration of indexing and also considering equal > > > > > (or all GT counts are on one tile) GT counts on each tile. > > > > > Consider case when 2GTs on 1 tile and 1 GT on other tile. But for > > > > > all current platforms we have it should work, need to revisit when > > > > > any of those > > > > scenario comes. > > > > > > > > Yes because of this like tile info should be properly exposed from > > > > the xe kmd query api. Or we could do the sysfs as we did on i915. > > > Agreed. > > > > > > > > For the above how about a shorter name like > > "xe_for_each_tile_and_gt"? > > > > > > > > Also I would change the order of tile__ and gt__ arguments since > > > > that is more logical, gt's are under tiles. > > > > This is a nit but anyway what about this? > Sorry I missed it earlier. What you suggested is logical and more appropriate. > Will change the order of arguments. > > > > > To me xe_for_each_gt_under_each_tile more appropriate in comparison > > > to xe_for_each_tile_and_gt. Purpose here is to iterate all gt specific sysfs > > entries under each tile. > > > > > > > > Also I don't think tile_cnt__ should be in the macro args, we could > > > > just do > > > > this: > > > > > > > > #define xe_for_each_tile_and_gt(xe__, , tile__, gt__) \ > > > > for (gt__ = 0, tile__ = 0; \ > > > > gt__ < xe_number_gt(xe__); \ > > > > (xe_number_gt(xe__) == igt_sysfs_get_num_tiles(xe__) ? > > > > ++gt__, ++tile__ : ++gt__) > > > > > > In rev1. I had used this implementation. But problem is > > > igt_sysfs_get_num_tiles(xe__) will be calculated for each iteration and > > want to avoid it. > > > > As far as I see it, the compiler should optimize any such repetitions. We can > > even add num_tiles to 'struct xe_device' in xe_device_get() (as if it's > > obtained from the kernel), similar to xe_number_gt(). > In that case, my preference would be using (xe_number_gt(xe__) == igt_sysfs_get_num_tiles(xe__) > Instead of populating num_tiles in struct xe_device because other members of the structure are being intitialized > on the basis of ioctl call. > Please confirm what will be more appropriate. igt_sysfs_get_num_tiles is fine. > > > > > > > > > > > So that is possible, but why are we comparing num_gt with num_tiles? > > > > So no idea what's going on here. It should be num gt's per tile if > > > > they are all the same :/ > > > > > > Patch https://patchwork.freedesktop.org/series/118927/ is moving Gt > > > specific sysfs entries into tile. > > > from: /sys/class/drm/cardX/device/gtN/sysfsX to : > > > /sys/class/drm/cardX/device/tileN/gtN/sysfsX > > > > > > Agreed KMD should we exposing the number of gt's per tile. But as of now > > we don't have such queries. > > > But we are certain that none of the platform supports multitile and multigt > > per tile so above check ensures. > > > If number of gt's are equal to number of tiles then sysfs should be > > > read in above order. If number of gt is not equal to number of tiles Which > > will be case in MTL , gt0 and gt1 should be under tile0 only. > > > > So the code only works for 'num_tiles == 1' or 'num_tiles == num_gt' (1 gt > > per tile), correct? At the minimum we should probably add this assert in the > > init section of the for loop. > Correct, as of now code only caters multitile and multigt exclusively. > Will need to enhance in case of future platform supporting both. > AFAIK adding assert/comparison in init section of for loop is not possible. Why is it not possible? Isn't there a compound statement (statements separated by commas) already in the init section of the loop? E.g. doesn't the following work? #define xe_for_each_tile_and_gt(xe__, , tile__, gt__) \ for (int num_tiles__ = igt_sysfs_get_num_tiles(xe__), igt_assert((num_tiles__ == 1) || num_tiles__ == xe_number_gt(xe__)), gt__ = 0, tile__ = 0; \ gt__ < xe_number_gt(xe__); \ (xe_number_gt(xe__) == num_tiles__ ? ++gt__, ++tile__ : ++gt__) Also seems to the solve igt_sysfs_get_num_tiles(xe__) being called in each iteration. If this is somehow not possible (I haven't tried it), please document clearly above the macro that the macro only works for 'num_tiles == 1' or 'num_tiles == num_gt'. > And I can't make it multiple statement macro because that will break in case of handling > iterator in if-else condition. > > > > The correct way to do it is of course to traverse the tile/gt directory tree > > which would be able to handle general tile/gt combinations. > > > The issue with this approach is for multi tile the gt indexing is same as tile indexing. > Tile0/gt0 and tile1/gt1. Multiple loop with extra conditions will be overkill and confusing to handle > the scenario. > 1) First determine number of gt's_per_tile writing the logic as finding number of tiles. > 2) For(each_tile) > for(each_gt) run loop till total numbers of gt's because indexing doesn't start with 0. [ skip all other index's apart from index same as tile] > > > > Anyway I'll let other people decide whether what we have here is ok or not > > to merge. > > > > Regards, > > Ashutosh > > > > > > > Usage of this iterator can be seen from > > > https://patchwork.freedesktop.org/patch/543998/?series=119801&rev=1 > > > > > > BR > > > Himal > > > > > > > > > > > > > > > > > > > > Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> > > > > > > > > > > > enum i915_attr_id { > > > > > > RPS_ACT_FREQ_MHZ, > > > > > > RPS_CUR_FREQ_MHZ, > > > > > > -- > > > > > > 2.25.1 > > > > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes 2023-07-01 17:44 ` Dixit, Ashutosh @ 2023-07-04 5:42 ` Ghimiray, Himal Prasad 0 siblings, 0 replies; 19+ messages in thread From: Ghimiray, Himal Prasad @ 2023-07-04 5:42 UTC (permalink / raw) To: Dixit, Ashutosh; +Cc: Upadhyay, Tejas, igt-dev@lists.freedesktop.org Hi Ashutosh, > -----Original Message----- > From: Dixit, Ashutosh <ashutosh.dixit@intel.com> > Sent: 01 July 2023 23:15 > To: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > Cc: Upadhyay, Tejas <tejas.upadhyay@intel.com>; igt- > dev@lists.freedesktop.org; Iddamsetty, Aravind > <aravind.iddamsetty@intel.com>; Kumar, Janga Rahul > <janga.rahul.kumar@intel.com>; Dugast, Francois > <francois.dugast@intel.com>; Roper, Matthew D > <matthew.d.roper@intel.com> > Subject: Re: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi > changes > > On Tue, 27 Jun 2023 00:06:01 -0700, Ghimiray, Himal Prasad wrote: > > > > Hi Himal, > > Please send igt patches with [PATCH i-g-t] subjectPrefix. Set subjectPrefix in > .git/config e.g. > > Below too. > > > > -----Original Message----- > > > From: Dixit, Ashutosh <ashutosh.dixit@intel.com> > > > Sent: 27 June 2023 11:33 > > > To: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > > > Cc: Upadhyay, Tejas <tejas.upadhyay@intel.com>; igt- > > > dev@lists.freedesktop.org; Iddamsetty, Aravind > > > <aravind.iddamsetty@intel.com>; Kumar, Janga Rahul > > > <janga.rahul.kumar@intel.com>; Dugast, Francois > > > <francois.dugast@intel.com>; Roper, Matthew D > > > <matthew.d.roper@intel.com> > > > Subject: Re: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs > > > uapi changes > > > > > > On Mon, 26 Jun 2023 21:22:33 -0700, Ghimiray, Himal Prasad wrote: > > > > > > > > Hi Ashutosh, > > > > > > Hi Himal, > > > > > > > > > > > > -----Original Message----- > > > > > From: Dixit, Ashutosh <ashutosh.dixit@intel.com> > > > > > Sent: 27 June 2023 04:04 > > > > > To: Upadhyay, Tejas <tejas.upadhyay@intel.com> > > > > > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; > > > > > igt- dev@lists.freedesktop.org; Iddamsetty, Aravind > > > > > <aravind.iddamsetty@intel.com>; Kumar, Janga Rahul > > > > > <janga.rahul.kumar@intel.com>; Dugast, Francois > > > > > <francois.dugast@intel.com>; Roper, Matthew D > > > > > <matthew.d.roper@intel.com> > > > > > Subject: Re: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related > > > > > sysfs uapi changes > > > > > > > > > > On Mon, 26 Jun 2023 03:48:16 -0700, Upadhyay, Tejas wrote: > > > > > > > > > > > > > -----Original Message----- > > > > > > > From: Ghimiray, Himal Prasad > > > > > > > <himal.prasad.ghimiray@intel.com> > > > > > > > Sent: Friday, June 23, 2023 5:20 PM > > > > > > > To: igt-dev@lists.freedesktop.org > > > > > > > Cc: Ghimiray, Himal Prasad > > > > > > > <himal.prasad.ghimiray@intel.com>; > > > > > > > Iddamsetty, Aravind <aravind.iddamsetty@intel.com>; > > > > > > > Upadhyay, Tejas <tejas.upadhyay@intel.com>; Kumar, Janga > > > > > > > Rahul <janga.rahul.kumar@intel.com>; Dugast, Francois > > > > > > > <francois.dugast@intel.com>; Dixit, Ashutosh > > > > > > > <ashutosh.dixit@intel.com>; Roper, Matthew D > > > > > > > <matthew.d.roper@intel.com> > > > > > > > Subject: [PATCH v2 2/4] lib/igt_sysfs: Handling gt related > > > > > > > sysfs uapi changes > > > > > > > > > > > > > > Patch https://patchwork.freedesktop.org/series/118927/ > > > > > > > is moving gt sysfs parent under tile folder. > > > > > > > > > > > > > > With the above patch path for sysfs changes: > > > > > > > from: /sys/class/drm/cardX/device/gtN/ to : > > > > > > > /sys/class/drm/cardX/device/tileN/gtN > > > > > > > > > > > > > > Adding xe_for_each_gt_under_each_tile macro to access new > path. > > > > > > > > > > > > > > v2: > > > > > > > - Calculate number of tiles once within iterator. (Rahul) > > > > > > > > > > > > > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > > > > > > > Cc: Upadhyay <tejas.upadhyay@intel.com> > > > > > > > Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> > > > > > > > Cc: Francois Dugast <francois.dugast@intel.com> > > > > > > > Cc: Ashutosh Dixit <ashutosh.dixit@intel.com> > > > > > > > Cc: Matt Roper <matthew.d.roper@intel.com> > > > > > > > Signed-off-by: Himal Prasad Ghimiray > > > > > > > <himal.prasad.ghimiray@intel.com> > > > > > > > --- > > > > > > > lib/igt_sysfs.h | 6 ++++++ > > > > > > > 1 file changed, 6 insertions(+) > > > > > > > > > > > > > > diff --git a/lib/igt_sysfs.h b/lib/igt_sysfs.h index > > > > > > > de2c9a86..42bf2741 100644 > > > > > > > --- a/lib/igt_sysfs.h > > > > > > > +++ b/lib/igt_sysfs.h > > > > > > > @@ -80,6 +80,12 @@ > > > > > > > > > > > > > > #define xe_for_each_tile for_each_sysfs_tile_dirfd > > > > > > > > > > > > > > +/* FIXME: Need to revisit if GT indexing under TILE changes > > > > > > > +from KMD */ #define xe_for_each_gt_under_each_tile(xe__, > > > > > > > +gt__, tile__, > > > > > tile_cnt__) \ > > > > > > > + for (gt__ = 0, tile__ = 0, tile_cnt__ = > > > > > > > +igt_sysfs_get_num_tiles(xe__) ; > > > > > \ > > > > > > > + gt__ < xe_number_gt(xe__); \ > > > > > > > + (xe_number_gt(xe__) == tile_cnt__) ? ++gt__, ++tile__ : > > > > > > > +++gt__) > > > > > > > + > > > > > > > > > > > > This is with consideration of indexing and also considering > > > > > > equal (or all GT counts are on one tile) GT counts on each tile. > > > > > > Consider case when 2GTs on 1 tile and 1 GT on other tile. But > > > > > > for all current platforms we have it should work, need to > > > > > > revisit when any of those > > > > > scenario comes. > > > > > > > > > > Yes because of this like tile info should be properly exposed > > > > > from the xe kmd query api. Or we could do the sysfs as we did on > i915. > > > > Agreed. > > > > > > > > > > For the above how about a shorter name like > > > "xe_for_each_tile_and_gt"? > > > > > > > > > > Also I would change the order of tile__ and gt__ arguments since > > > > > that is more logical, gt's are under tiles. > > > > > > This is a nit but anyway what about this? > > Sorry I missed it earlier. What you suggested is logical and more > appropriate. > > Will change the order of arguments. > > > > > > > To me xe_for_each_gt_under_each_tile more appropriate in > > > > comparison to xe_for_each_tile_and_gt. Purpose here is to iterate > > > > all gt specific sysfs > > > entries under each tile. > > > > > > > > > > Also I don't think tile_cnt__ should be in the macro args, we > > > > > could just do > > > > > this: > > > > > > > > > > #define xe_for_each_tile_and_gt(xe__, , tile__, gt__) \ > > > > > for (gt__ = 0, tile__ = 0; \ > > > > > gt__ < xe_number_gt(xe__); \ > > > > > (xe_number_gt(xe__) == igt_sysfs_get_num_tiles(xe__) ? > > > > > ++gt__, ++tile__ : ++gt__) > > > > > > > > In rev1. I had used this implementation. But problem is > > > > igt_sysfs_get_num_tiles(xe__) will be calculated for each > > > > iteration and > > > want to avoid it. > > > > > > As far as I see it, the compiler should optimize any such > > > repetitions. We can even add num_tiles to 'struct xe_device' in > > > xe_device_get() (as if it's obtained from the kernel), similar to > xe_number_gt(). > > In that case, my preference would be using (xe_number_gt(xe__) == > > igt_sysfs_get_num_tiles(xe__) Instead of populating num_tiles in > > struct xe_device because other members of the structure are being > intitialized on the basis of ioctl call. > > Please confirm what will be more appropriate. > > igt_sysfs_get_num_tiles is fine. > > > > > > > > > > > > > > > > So that is possible, but why are we comparing num_gt with > num_tiles? > > > > > So no idea what's going on here. It should be num gt's per tile > > > > > if they are all the same :/ > > > > > > > > Patch https://patchwork.freedesktop.org/series/118927/ is moving > > > > Gt specific sysfs entries into tile. > > > > from: /sys/class/drm/cardX/device/gtN/sysfsX to : > > > > /sys/class/drm/cardX/device/tileN/gtN/sysfsX > > > > > > > > Agreed KMD should we exposing the number of gt's per tile. But as > > > > of now > > > we don't have such queries. > > > > But we are certain that none of the platform supports multitile > > > > and multigt > > > per tile so above check ensures. > > > > If number of gt's are equal to number of tiles then sysfs should > > > > be read in above order. If number of gt is not equal to number of > > > > tiles Which > > > will be case in MTL , gt0 and gt1 should be under tile0 only. > > > > > > So the code only works for 'num_tiles == 1' or 'num_tiles == num_gt' > > > (1 gt per tile), correct? At the minimum we should probably add this > > > assert in the init section of the for loop. > > Correct, as of now code only caters multitile and multigt exclusively. > > Will need to enhance in case of future platform supporting both. > > AFAIK adding assert/comparison in init section of for loop is not possible. > > Why is it not possible? Isn't there a compound statement (statements > separated by commas) already in the init section of the loop? > > E.g. doesn't the following work? > > #define xe_for_each_tile_and_gt(xe__, , tile__, gt__) \ > for (int num_tiles__ = igt_sysfs_get_num_tiles(xe__), > igt_assert((num_tiles__ == 1) || num_tiles__ == > xe_number_gt(xe__)), > gt__ = 0, tile__ = 0; \ > gt__ < xe_number_gt(xe__); \ > (xe_number_gt(xe__) == num_tiles__ ? ++gt__, ++tile__ : ++gt__) > > Also seems to the solve igt_sysfs_get_num_tiles(xe__) being called in each > iteration. As I already mentioned. Above code is wrong. Declaring num_tiles as int in initialization will lead to shadowing of gt__ and tile__being passed from caller. second igt_assert((num_tiles__ == 1) || num_tiles__ ==> xe_number_gt(xe__)) is comparison and function call in initialization statement which is also wrong. The compound statement being written in initialization are all initialization of same variable type. For example: Int a,b,c; a= 0, b = 1 , c = find_c(x); is valid but int a, b, c ; int d = 0, a = 0, b = 1, c = find_c(x), func(xyz); is invalid BR Himal > > If this is somehow not possible (I haven't tried it), please document clearly > above the macro that the macro only works for 'num_tiles == 1' or 'num_tiles > == num_gt'. > > > And I can't make it multiple statement macro because that will break > > in case of handling iterator in if-else condition. > > > > > > The correct way to do it is of course to traverse the tile/gt > > > directory tree which would be able to handle general tile/gt > combinations. > > > > > The issue with this approach is for multi tile the gt indexing is same as tile > indexing. > > Tile0/gt0 and tile1/gt1. Multiple loop with extra conditions will be > > overkill and confusing to handle the scenario. > > 1) First determine number of gt's_per_tile writing the logic as finding > number of tiles. > > 2) For(each_tile) > > for(each_gt) run loop till total numbers of gt's because > > indexing doesn't start with 0. [ skip all other index's apart from > > index same as tile] > > > > > > > Anyway I'll let other people decide whether what we have here is ok > > > or not to merge. > > > > > > Regards, > > > Ashutosh > > > > > > > > > > Usage of this iterator can be seen from > > > > > https://patchwork.freedesktop.org/patch/543998/?series=119801&rev= > > > > 1 > > > > > > > > BR > > > > Himal > > > > > > > > > > > > > > > > > > > > > > > > > Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> > > > > > > > > > > > > > enum i915_attr_id { > > > > > > > RPS_ACT_FREQ_MHZ, > > > > > > > RPS_CUR_FREQ_MHZ, > > > > > > > -- > > > > > > > 2.25.1 > > > > > > ^ permalink raw reply [flat|nested] 19+ messages in thread
* [igt-dev] [PATCH v2 3/4] tests/xe/xe_guc_pc: Change the sysfs paths 2023-06-23 11:49 [igt-dev] [PATCH v2 0/4] Handle GT and tile seperation in IGT Himal Prasad Ghimiray 2023-06-23 11:49 ` [igt-dev] [PATCH v2 1/4] lib/igt_sysfs: Add support to query number of tiles Himal Prasad Ghimiray 2023-06-23 11:49 ` [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes Himal Prasad Ghimiray @ 2023-06-23 11:49 ` Himal Prasad Ghimiray 2023-06-26 10:49 ` Upadhyay, Tejas 2023-06-23 11:49 ` [igt-dev] [PATCH v2 4/4] tests/xe/xe_sysfs_tile_prop: adds new test to verify per tile vram addr_range Himal Prasad Ghimiray ` (2 subsequent siblings) 5 siblings, 1 reply; 19+ messages in thread From: Himal Prasad Ghimiray @ 2023-06-23 11:49 UTC (permalink / raw) To: igt-dev; +Cc: Upadhyay, Badal Nilawar Changes to access sysfs entries under tile directory. Access freq sysfs from /sys/class/drm/cardX/device/tileN/gtN path. v2: - Use snprintf instead of sprintf and check error. - Describe what changes are done. (Kamil) Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> Cc: Upadhyay <tejas.upadhyay@intel.com> Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> Cc: Badal Nilawar <badal.nilawar@intel.com> Cc: Riana Tauro <riana.tauro@intel.com> Cc: Anshuman Gupta <anshuman.gupta@intel.com> Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> --- tests/xe/xe_guc_pc.c | 202 ++++++++++++++++++++++--------------------- 1 file changed, 102 insertions(+), 100 deletions(-) diff --git a/tests/xe/xe_guc_pc.c b/tests/xe/xe_guc_pc.c index 5c71ae14..825b2c5b 100644 --- a/tests/xe/xe_guc_pc.c +++ b/tests/xe/xe_guc_pc.c @@ -133,23 +133,25 @@ static void exec_basic(int fd, struct drm_xe_engine_class_instance *eci, xe_vm_destroy(fd, vm); } -static int set_freq(int sysfs, int gt_id, const char *freq_name, uint32_t freq) +static int set_freq(int sysfs, int tile_id, int gt_id, const char *freq_name, uint32_t freq) { int ret = -EAGAIN; char path[32]; - sprintf(path, "device/gt%d/freq_%s", gt_id, freq_name); + igt_assert(snprintf(path, sizeof(path), "device/tile%d/gt%d/freq_%s", + tile_id, gt_id, freq_name) < sizeof(path)); while (ret == -EAGAIN) ret = igt_sysfs_printf(sysfs, path, "%u", freq); return ret; } -static uint32_t get_freq(int sysfs, int gt_id, const char *freq_name) +static uint32_t get_freq(int sysfs, int tile_id, int gt_id, const char *freq_name) { uint32_t freq; int err = -EAGAIN; char path[32]; - sprintf(path, "device/gt%d/freq_%s", gt_id, freq_name); + igt_assert(snprintf(path, sizeof(path), "device/tile%d/gt%d/freq_%s", + tile_id, gt_id, freq_name) < sizeof(path)); while (err == -EAGAIN) err = igt_sysfs_scanf(sysfs, path, "%u", &freq); return freq; @@ -162,37 +164,37 @@ static uint32_t get_freq(int sysfs, int gt_id, const char *freq_name) * Run type: BAT */ -static void test_freq_basic_api(int sysfs, int gt_id) +static void test_freq_basic_api(int sysfs, int tile_id, int gt_id) { - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); - uint32_t rpe = get_freq(sysfs, gt_id, "rpe"); - uint32_t rp0 = get_freq(sysfs, gt_id, "rp0"); + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); + uint32_t rpe = get_freq(sysfs, tile_id, gt_id, "rpe"); + uint32_t rp0 = get_freq(sysfs, tile_id, gt_id, "rp0"); /* * Negative bound tests * RPn is the floor * RP0 is the ceiling */ - igt_assert(set_freq(sysfs, gt_id, "min", rpn - 1) < 0); - igt_assert(set_freq(sysfs, gt_id, "min", rp0 + 1) < 0); - igt_assert(set_freq(sysfs, gt_id, "max", rpn - 1) < 0); - igt_assert(set_freq(sysfs, gt_id, "max", rp0 + 1) < 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpn - 1) < 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rp0 + 1) < 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpn - 1) < 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rp0 + 1) < 0); /* Assert min requests are respected from rp0 to rpn */ - igt_assert(set_freq(sysfs, gt_id, "min", rp0) > 0); - igt_assert(get_freq(sysfs, gt_id, "min") == rp0); - igt_assert(set_freq(sysfs, gt_id, "min", rpe) > 0); - igt_assert(get_freq(sysfs, gt_id, "min") == rpe); - igt_assert(set_freq(sysfs, gt_id, "min", rpn) > 0); - igt_assert(get_freq(sysfs, gt_id, "min") == rpn); + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rp0) > 0); + igt_assert(get_freq(sysfs, tile_id, gt_id, "min") == rp0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpe) > 0); + igt_assert(get_freq(sysfs, tile_id, gt_id, "min") == rpe); + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpn) > 0); + igt_assert(get_freq(sysfs, tile_id, gt_id, "min") == rpn); /* Assert max requests are respected from rpn to rp0 */ - igt_assert(set_freq(sysfs, gt_id, "max", rpn) > 0); - igt_assert(get_freq(sysfs, gt_id, "max") == rpn); - igt_assert(set_freq(sysfs, gt_id, "max", rpe) > 0); - igt_assert(get_freq(sysfs, gt_id, "max") == rpe); - igt_assert(set_freq(sysfs, gt_id, "max", rp0) > 0); - igt_assert(get_freq(sysfs, gt_id, "max") == rp0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpn) > 0); + igt_assert(get_freq(sysfs, tile_id, gt_id, "max") == rpn); + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpe) > 0); + igt_assert(get_freq(sysfs, tile_id, gt_id, "max") == rpe); + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rp0) > 0); + igt_assert(get_freq(sysfs, tile_id, gt_id, "max") == rp0); } /** @@ -206,11 +208,11 @@ static void test_freq_basic_api(int sysfs, int gt_id) * TODO: change ``'Run type' == FULL`` to a better category */ -static void test_freq_fixed(int sysfs, int gt_id) +static void test_freq_fixed(int sysfs, int tile_id, int gt_id) { - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); - uint32_t rpe = get_freq(sysfs, gt_id, "rpe"); - uint32_t rp0 = get_freq(sysfs, gt_id, "rp0"); + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); + uint32_t rpe = get_freq(sysfs, tile_id, gt_id, "rpe"); + uint32_t rp0 = get_freq(sysfs, tile_id, gt_id, "rp0"); igt_debug("Starting testing fixed request\n"); @@ -219,27 +221,27 @@ static void test_freq_fixed(int sysfs, int gt_id) * Then we check if hardware is actually operating at the desired freq * And let's do this for all the 3 known Render Performance (RP) values. */ - igt_assert(set_freq(sysfs, gt_id, "min", rpn) > 0); - igt_assert(set_freq(sysfs, gt_id, "max", rpn) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpn) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpn) > 0); usleep(ACT_FREQ_LATENCY_US); - igt_assert(get_freq(sysfs, gt_id, "cur") == rpn); - igt_assert(get_freq(sysfs, gt_id, "act") == rpn); + igt_assert(get_freq(sysfs, tile_id, gt_id, "cur") == rpn); + igt_assert(get_freq(sysfs, tile_id, gt_id, "act") == rpn); - igt_assert(set_freq(sysfs, gt_id, "min", rpe) > 0); - igt_assert(set_freq(sysfs, gt_id, "max", rpe) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpe) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpe) > 0); usleep(ACT_FREQ_LATENCY_US); - igt_assert(get_freq(sysfs, gt_id, "cur") == rpe); - igt_assert(get_freq(sysfs, gt_id, "act") == rpe); + igt_assert(get_freq(sysfs, tile_id, gt_id, "cur") == rpe); + igt_assert(get_freq(sysfs, tile_id, gt_id, "act") == rpe); - igt_assert(set_freq(sysfs, gt_id, "min", rp0) > 0); - igt_assert(set_freq(sysfs, gt_id, "max", rp0) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rp0) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rp0) > 0); usleep(ACT_FREQ_LATENCY_US); /* * It is unlikely that PCODE will *always* respect any request above RPe * So for this level let's only check if GuC PC is doing its job * and respecting our request, by propagating it to the hardware. */ - igt_assert(get_freq(sysfs, gt_id, "cur") == rp0); + igt_assert(get_freq(sysfs, tile_id, gt_id, "cur") == rp0); igt_debug("Finished testing fixed request\n"); } @@ -255,20 +257,20 @@ static void test_freq_fixed(int sysfs, int gt_id) * TODO: change ``'Run type' == FULL`` to a better category */ -static void test_freq_range(int sysfs, int gt_id) +static void test_freq_range(int sysfs, int tile_id, int gt_id) { - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); - uint32_t rpe = get_freq(sysfs, gt_id, "rpe"); + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); + uint32_t rpe = get_freq(sysfs, tile_id, gt_id, "rpe"); uint32_t cur, act; igt_debug("Starting testing range request\n"); - igt_assert(set_freq(sysfs, gt_id, "min", rpn) > 0); - igt_assert(set_freq(sysfs, gt_id, "max", rpe) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpn) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpe) > 0); usleep(ACT_FREQ_LATENCY_US); - cur = get_freq(sysfs, gt_id, "cur"); + cur = get_freq(sysfs, tile_id, gt_id, "cur"); igt_assert(rpn <= cur && cur <= rpe); - act = get_freq(sysfs, gt_id, "act"); + act = get_freq(sysfs, tile_id, gt_id, "act"); igt_assert(rpn <= act && act <= rpe); igt_debug("Finished testing range request\n"); @@ -281,20 +283,20 @@ static void test_freq_range(int sysfs, int gt_id) * TODO: change ``'Run type' == FULL`` to a better category */ -static void test_freq_low_max(int sysfs, int gt_id) +static void test_freq_low_max(int sysfs, int tile_id, int gt_id) { - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); - uint32_t rpe = get_freq(sysfs, gt_id, "rpe"); + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); + uint32_t rpe = get_freq(sysfs, tile_id, gt_id, "rpe"); /* * When max request < min request, max is ignored and min works like * a fixed one. Let's assert this assumption */ - igt_assert(set_freq(sysfs, gt_id, "min", rpe) > 0); - igt_assert(set_freq(sysfs, gt_id, "max", rpn) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpe) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpn) > 0); usleep(ACT_FREQ_LATENCY_US); - igt_assert(get_freq(sysfs, gt_id, "cur") == rpe); - igt_assert(get_freq(sysfs, gt_id, "act") == rpe); + igt_assert(get_freq(sysfs, tile_id, gt_id, "cur") == rpe); + igt_assert(get_freq(sysfs, tile_id, gt_id, "act") == rpe); } /** @@ -304,20 +306,20 @@ static void test_freq_low_max(int sysfs, int gt_id) * TODO: change ``'Run type' == FULL`` to a better category */ -static void test_suspend(int sysfs, int gt_id) +static void test_suspend(int sysfs, int tile_id, int gt_id) { - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); - igt_assert(set_freq(sysfs, gt_id, "min", rpn) > 0); - igt_assert(set_freq(sysfs, gt_id, "max", rpn) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpn) > 0); + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpn) > 0); usleep(ACT_FREQ_LATENCY_US); - igt_assert(get_freq(sysfs, gt_id, "cur") == rpn); + igt_assert(get_freq(sysfs, tile_id, gt_id, "cur") == rpn); igt_system_suspend_autoresume(SUSPEND_STATE_S3, SUSPEND_TEST_NONE); - igt_assert(get_freq(sysfs, gt_id, "min") == rpn); - igt_assert(get_freq(sysfs, gt_id, "max") == rpn); + igt_assert(get_freq(sysfs, tile_id, gt_id, "min") == rpn); + igt_assert(get_freq(sysfs, tile_id, gt_id, "max") == rpn); } /** @@ -332,24 +334,24 @@ static void test_suspend(int sysfs, int gt_id) * TODO: change ``'Run type' == FULL`` to a better category */ -static void test_reset(int fd, int sysfs, int gt_id, int cycles) +static void test_reset(int fd, int sysfs, int tile_id, int gt_id, int cycles) { - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); for (int i = 0; i < cycles; i++) { - igt_assert_f(set_freq(sysfs, gt_id, "min", rpn) > 0, + igt_assert_f(set_freq(sysfs, tile_id, gt_id, "min", rpn) > 0, "Failed after %d good cycles\n", i); - igt_assert_f(set_freq(sysfs, gt_id, "max", rpn) > 0, + igt_assert_f(set_freq(sysfs, tile_id, gt_id, "max", rpn) > 0, "Failed after %d good cycles\n", i); usleep(ACT_FREQ_LATENCY_US); - igt_assert_f(get_freq(sysfs, gt_id, "cur") == rpn, + igt_assert_f(get_freq(sysfs, tile_id, gt_id, "cur") == rpn, "Failed after %d good cycles\n", i); xe_force_gt_reset(fd, gt_id); - igt_assert_f(get_freq(sysfs, gt_id, "min") == rpn, + igt_assert_f(get_freq(sysfs, tile_id, gt_id, "min") == rpn, "Failed after %d good cycles\n", i); - igt_assert_f(get_freq(sysfs, gt_id, "max") == rpn, + igt_assert_f(get_freq(sysfs, tile_id, gt_id, "max") == rpn, "Failed after %d good cycles\n", i); } } @@ -365,11 +367,11 @@ static void test_reset(int fd, int sysfs, int gt_id, int cycles) * Run type: BAT */ -static bool in_rc6(int sysfs, int gt_id) +static bool in_rc6(int sysfs, int tile_id, int gt_id) { - char path[32]; + char path[40]; char rc[8]; - sprintf(path, "device/gt%d/rc_status", gt_id); + sprintf(path, "device/tile%d/gt%d/rc_status", tile_id, gt_id); if (igt_sysfs_scanf(sysfs, path, "%s", rc) < 0) return false; return strcmp(rc, "rc6") == 0; @@ -379,7 +381,7 @@ igt_main { struct drm_xe_engine_class_instance *hwe; int fd; - int gt; + int gt, tile, total_tiles; static int sysfs = -1; int ncpus = sysconf(_SC_NPROCESSORS_ONLN); uint32_t stash_min; @@ -392,24 +394,24 @@ igt_main sysfs = igt_sysfs_open(fd); igt_assert(sysfs != -1); - /* The defaults are the same. Stashing the gt0 is enough */ - stash_min = get_freq(sysfs, 0, "min"); - stash_max = get_freq(sysfs, 0, "max"); + /* The defaults are the same. Stashing the gt0 in tile0 is enough */ + stash_min = get_freq(sysfs, 0, 0, "min"); + stash_max = get_freq(sysfs, 0, 0, "max"); } igt_subtest("freq_basic_api") { - xe_for_each_gt(fd, gt) - test_freq_basic_api(sysfs, gt); + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) + test_freq_basic_api(sysfs, tile, gt); } igt_subtest("freq_fixed_idle") { - xe_for_each_gt(fd, gt) { - test_freq_fixed(sysfs, gt); + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { + test_freq_fixed(sysfs, tile, gt); } } igt_subtest("freq_fixed_exec") { - xe_for_each_gt(fd, gt) { + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { xe_for_each_hw_engine(fd, hwe) igt_fork(child, ncpus) { igt_debug("Execution Started\n"); @@ -417,19 +419,19 @@ igt_main igt_debug("Execution Finished\n"); } /* While exec in threads above, let's check the freq */ - test_freq_fixed(sysfs, gt); + test_freq_fixed(sysfs, tile, gt); igt_waitchildren(); } } igt_subtest("freq_range_idle") { - xe_for_each_gt(fd, gt) { - test_freq_range(sysfs, gt); + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { + test_freq_range(sysfs, tile, gt); } } igt_subtest("freq_range_exec") { - xe_for_each_gt(fd, gt) { + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { xe_for_each_hw_engine(fd, hwe) igt_fork(child, ncpus) { igt_debug("Execution Started\n"); @@ -437,46 +439,46 @@ igt_main igt_debug("Execution Finished\n"); } /* While exec in threads above, let's check the freq */ - test_freq_range(sysfs, gt); + test_freq_range(sysfs, tile, gt); igt_waitchildren(); } } igt_subtest("freq_low_max") { - xe_for_each_gt(fd, gt) { - test_freq_low_max(sysfs, gt); + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { + test_freq_low_max(sysfs, tile, gt); } } igt_subtest("freq_suspend") { - xe_for_each_gt(fd, gt) { - test_suspend(sysfs, gt); + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { + test_suspend(sysfs, tile, gt); } } igt_subtest("freq_reset") { - xe_for_each_gt(fd, gt) { - test_reset(fd, sysfs, gt, 1); + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { + test_reset(fd, sysfs, tile, gt, 1); } } igt_subtest("freq_reset_multiple") { - xe_for_each_gt(fd, gt) { - test_reset(fd, sysfs, gt, 50); + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { + test_reset(fd, sysfs, tile, gt, 50); } } igt_subtest("rc6_on_idle") { igt_require(!IS_PONTEVECCHIO(xe_dev_id(fd))); - xe_for_each_gt(fd, gt) { - assert(igt_wait(in_rc6(sysfs, gt), 1000, 1)); + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { + assert(igt_wait(in_rc6(sysfs, tile, gt), 1000, 1)); } } igt_subtest("rc0_on_exec") { igt_require(!IS_PONTEVECCHIO(xe_dev_id(fd))); - xe_for_each_gt(fd, gt) { - assert(igt_wait(in_rc6(sysfs, gt), 1000, 1)); + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { + assert(igt_wait(in_rc6(sysfs, tile, gt), 1000, 1)); xe_for_each_hw_engine(fd, hwe) igt_fork(child, ncpus) { igt_debug("Execution Started\n"); @@ -484,15 +486,15 @@ igt_main igt_debug("Execution Finished\n"); } /* While exec in threads above, let's check rc_status */ - assert(igt_wait(!in_rc6(sysfs, gt), 1000, 1)); + assert(igt_wait(!in_rc6(sysfs, tile, gt), 1000, 1)); igt_waitchildren(); } } igt_fixture { - xe_for_each_gt(fd, gt) { - set_freq(sysfs, gt, "min", stash_min); - set_freq(sysfs, gt, "max", stash_max); + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { + set_freq(sysfs, tile, gt, "min", stash_min); + set_freq(sysfs, tile, gt, "max", stash_max); } close(sysfs); xe_device_put(fd); -- 2.25.1 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 3/4] tests/xe/xe_guc_pc: Change the sysfs paths 2023-06-23 11:49 ` [igt-dev] [PATCH v2 3/4] tests/xe/xe_guc_pc: Change the sysfs paths Himal Prasad Ghimiray @ 2023-06-26 10:49 ` Upadhyay, Tejas 0 siblings, 0 replies; 19+ messages in thread From: Upadhyay, Tejas @ 2023-06-26 10:49 UTC (permalink / raw) To: Ghimiray, Himal Prasad, igt-dev@lists.freedesktop.org; +Cc: Nilawar, Badal > -----Original Message----- > From: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > Sent: Friday, June 23, 2023 5:20 PM > To: igt-dev@lists.freedesktop.org > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; Iddamsetty, > Aravind <aravind.iddamsetty@intel.com>; Upadhyay, Tejas > <tejas.upadhyay@intel.com>; Kamil Konieczny > <kamil.konieczny@linux.intel.com>; Nilawar, Badal > <badal.nilawar@intel.com>; Tauro, Riana <riana.tauro@intel.com>; Gupta, > Anshuman <anshuman.gupta@intel.com> > Subject: [PATCH v2 3/4] tests/xe/xe_guc_pc: Change the sysfs paths > > Changes to access sysfs entries under tile directory. > Access freq sysfs from /sys/class/drm/cardX/device/tileN/gtN > path. > > v2: > - Use snprintf instead of sprintf and check error. > - Describe what changes are done. (Kamil) > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > Cc: Upadhyay <tejas.upadhyay@intel.com> > Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com> > Cc: Badal Nilawar <badal.nilawar@intel.com> > Cc: Riana Tauro <riana.tauro@intel.com> > Cc: Anshuman Gupta <anshuman.gupta@intel.com> > Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> > --- > tests/xe/xe_guc_pc.c | 202 ++++++++++++++++++++++--------------------- > 1 file changed, 102 insertions(+), 100 deletions(-) > > diff --git a/tests/xe/xe_guc_pc.c b/tests/xe/xe_guc_pc.c index > 5c71ae14..825b2c5b 100644 > --- a/tests/xe/xe_guc_pc.c > +++ b/tests/xe/xe_guc_pc.c > @@ -133,23 +133,25 @@ static void exec_basic(int fd, struct > drm_xe_engine_class_instance *eci, > xe_vm_destroy(fd, vm); > } > > -static int set_freq(int sysfs, int gt_id, const char *freq_name, uint32_t freq) > +static int set_freq(int sysfs, int tile_id, int gt_id, const char > +*freq_name, uint32_t freq) > { > int ret = -EAGAIN; > char path[32]; > > - sprintf(path, "device/gt%d/freq_%s", gt_id, freq_name); > + igt_assert(snprintf(path, sizeof(path), "device/tile%d/gt%d/freq_%s", > + tile_id, gt_id, freq_name) < sizeof(path)); > while (ret == -EAGAIN) > ret = igt_sysfs_printf(sysfs, path, "%u", freq); > return ret; > } > > -static uint32_t get_freq(int sysfs, int gt_id, const char *freq_name) > +static uint32_t get_freq(int sysfs, int tile_id, int gt_id, const char > +*freq_name) > { > uint32_t freq; > int err = -EAGAIN; > char path[32]; > - sprintf(path, "device/gt%d/freq_%s", gt_id, freq_name); > + igt_assert(snprintf(path, sizeof(path), "device/tile%d/gt%d/freq_%s", > + tile_id, gt_id, freq_name) < sizeof(path)); > while (err == -EAGAIN) > err = igt_sysfs_scanf(sysfs, path, "%u", &freq); > return freq; > @@ -162,37 +164,37 @@ static uint32_t get_freq(int sysfs, int gt_id, const > char *freq_name) > * Run type: BAT > */ > > -static void test_freq_basic_api(int sysfs, int gt_id) > +static void test_freq_basic_api(int sysfs, int tile_id, int gt_id) > { > - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); > - uint32_t rpe = get_freq(sysfs, gt_id, "rpe"); > - uint32_t rp0 = get_freq(sysfs, gt_id, "rp0"); > + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); > + uint32_t rpe = get_freq(sysfs, tile_id, gt_id, "rpe"); > + uint32_t rp0 = get_freq(sysfs, tile_id, gt_id, "rp0"); > > /* > * Negative bound tests > * RPn is the floor > * RP0 is the ceiling > */ > - igt_assert(set_freq(sysfs, gt_id, "min", rpn - 1) < 0); > - igt_assert(set_freq(sysfs, gt_id, "min", rp0 + 1) < 0); > - igt_assert(set_freq(sysfs, gt_id, "max", rpn - 1) < 0); > - igt_assert(set_freq(sysfs, gt_id, "max", rp0 + 1) < 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpn - 1) < 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rp0 + 1) < 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpn - 1) < 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rp0 + 1) < 0); > > /* Assert min requests are respected from rp0 to rpn */ > - igt_assert(set_freq(sysfs, gt_id, "min", rp0) > 0); > - igt_assert(get_freq(sysfs, gt_id, "min") == rp0); > - igt_assert(set_freq(sysfs, gt_id, "min", rpe) > 0); > - igt_assert(get_freq(sysfs, gt_id, "min") == rpe); > - igt_assert(set_freq(sysfs, gt_id, "min", rpn) > 0); > - igt_assert(get_freq(sysfs, gt_id, "min") == rpn); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rp0) > 0); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "min") == rp0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpe) > 0); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "min") == rpe); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpn) > 0); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "min") == rpn); > > /* Assert max requests are respected from rpn to rp0 */ > - igt_assert(set_freq(sysfs, gt_id, "max", rpn) > 0); > - igt_assert(get_freq(sysfs, gt_id, "max") == rpn); > - igt_assert(set_freq(sysfs, gt_id, "max", rpe) > 0); > - igt_assert(get_freq(sysfs, gt_id, "max") == rpe); > - igt_assert(set_freq(sysfs, gt_id, "max", rp0) > 0); > - igt_assert(get_freq(sysfs, gt_id, "max") == rp0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpn) > 0); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "max") == rpn); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpe) > 0); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "max") == rpe); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rp0) > 0); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "max") == rp0); > } > > /** > @@ -206,11 +208,11 @@ static void test_freq_basic_api(int sysfs, int gt_id) > * TODO: change ``'Run type' == FULL`` to a better category > */ > > -static void test_freq_fixed(int sysfs, int gt_id) > +static void test_freq_fixed(int sysfs, int tile_id, int gt_id) > { > - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); > - uint32_t rpe = get_freq(sysfs, gt_id, "rpe"); > - uint32_t rp0 = get_freq(sysfs, gt_id, "rp0"); > + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); > + uint32_t rpe = get_freq(sysfs, tile_id, gt_id, "rpe"); > + uint32_t rp0 = get_freq(sysfs, tile_id, gt_id, "rp0"); > > igt_debug("Starting testing fixed request\n"); > > @@ -219,27 +221,27 @@ static void test_freq_fixed(int sysfs, int gt_id) > * Then we check if hardware is actually operating at the desired freq > * And let's do this for all the 3 known Render Performance (RP) > values. > */ > - igt_assert(set_freq(sysfs, gt_id, "min", rpn) > 0); > - igt_assert(set_freq(sysfs, gt_id, "max", rpn) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpn) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpn) > 0); > usleep(ACT_FREQ_LATENCY_US); > - igt_assert(get_freq(sysfs, gt_id, "cur") == rpn); > - igt_assert(get_freq(sysfs, gt_id, "act") == rpn); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "cur") == rpn); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "act") == rpn); > > - igt_assert(set_freq(sysfs, gt_id, "min", rpe) > 0); > - igt_assert(set_freq(sysfs, gt_id, "max", rpe) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpe) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpe) > 0); > usleep(ACT_FREQ_LATENCY_US); > - igt_assert(get_freq(sysfs, gt_id, "cur") == rpe); > - igt_assert(get_freq(sysfs, gt_id, "act") == rpe); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "cur") == rpe); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "act") == rpe); > > - igt_assert(set_freq(sysfs, gt_id, "min", rp0) > 0); > - igt_assert(set_freq(sysfs, gt_id, "max", rp0) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rp0) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rp0) > 0); > usleep(ACT_FREQ_LATENCY_US); > /* > * It is unlikely that PCODE will *always* respect any request above > RPe > * So for this level let's only check if GuC PC is doing its job > * and respecting our request, by propagating it to the hardware. > */ > - igt_assert(get_freq(sysfs, gt_id, "cur") == rp0); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "cur") == rp0); > > igt_debug("Finished testing fixed request\n"); } @@ -255,20 +257,20 > @@ static void test_freq_fixed(int sysfs, int gt_id) > * TODO: change ``'Run type' == FULL`` to a better category > */ > > -static void test_freq_range(int sysfs, int gt_id) > +static void test_freq_range(int sysfs, int tile_id, int gt_id) > { > - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); > - uint32_t rpe = get_freq(sysfs, gt_id, "rpe"); > + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); > + uint32_t rpe = get_freq(sysfs, tile_id, gt_id, "rpe"); > uint32_t cur, act; > > igt_debug("Starting testing range request\n"); > > - igt_assert(set_freq(sysfs, gt_id, "min", rpn) > 0); > - igt_assert(set_freq(sysfs, gt_id, "max", rpe) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpn) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpe) > 0); > usleep(ACT_FREQ_LATENCY_US); > - cur = get_freq(sysfs, gt_id, "cur"); > + cur = get_freq(sysfs, tile_id, gt_id, "cur"); > igt_assert(rpn <= cur && cur <= rpe); > - act = get_freq(sysfs, gt_id, "act"); > + act = get_freq(sysfs, tile_id, gt_id, "act"); > igt_assert(rpn <= act && act <= rpe); > > igt_debug("Finished testing range request\n"); @@ -281,20 +283,20 > @@ static void test_freq_range(int sysfs, int gt_id) > * TODO: change ``'Run type' == FULL`` to a better category > */ > > -static void test_freq_low_max(int sysfs, int gt_id) > +static void test_freq_low_max(int sysfs, int tile_id, int gt_id) > { > - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); > - uint32_t rpe = get_freq(sysfs, gt_id, "rpe"); > + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); > + uint32_t rpe = get_freq(sysfs, tile_id, gt_id, "rpe"); > > /* > * When max request < min request, max is ignored and min works > like > * a fixed one. Let's assert this assumption > */ > - igt_assert(set_freq(sysfs, gt_id, "min", rpe) > 0); > - igt_assert(set_freq(sysfs, gt_id, "max", rpn) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpe) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpn) > 0); > usleep(ACT_FREQ_LATENCY_US); > - igt_assert(get_freq(sysfs, gt_id, "cur") == rpe); > - igt_assert(get_freq(sysfs, gt_id, "act") == rpe); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "cur") == rpe); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "act") == rpe); > } > > /** > @@ -304,20 +306,20 @@ static void test_freq_low_max(int sysfs, int gt_id) > * TODO: change ``'Run type' == FULL`` to a better category > */ > > -static void test_suspend(int sysfs, int gt_id) > +static void test_suspend(int sysfs, int tile_id, int gt_id) > { > - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); > + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); > > - igt_assert(set_freq(sysfs, gt_id, "min", rpn) > 0); > - igt_assert(set_freq(sysfs, gt_id, "max", rpn) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "min", rpn) > 0); > + igt_assert(set_freq(sysfs, tile_id, gt_id, "max", rpn) > 0); > usleep(ACT_FREQ_LATENCY_US); > - igt_assert(get_freq(sysfs, gt_id, "cur") == rpn); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "cur") == rpn); > > igt_system_suspend_autoresume(SUSPEND_STATE_S3, > SUSPEND_TEST_NONE); > > - igt_assert(get_freq(sysfs, gt_id, "min") == rpn); > - igt_assert(get_freq(sysfs, gt_id, "max") == rpn); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "min") == rpn); > + igt_assert(get_freq(sysfs, tile_id, gt_id, "max") == rpn); > } > > /** > @@ -332,24 +334,24 @@ static void test_suspend(int sysfs, int gt_id) > * TODO: change ``'Run type' == FULL`` to a better category > */ > > -static void test_reset(int fd, int sysfs, int gt_id, int cycles) > +static void test_reset(int fd, int sysfs, int tile_id, int gt_id, int > +cycles) > { > - uint32_t rpn = get_freq(sysfs, gt_id, "rpn"); > + uint32_t rpn = get_freq(sysfs, tile_id, gt_id, "rpn"); > > for (int i = 0; i < cycles; i++) { > - igt_assert_f(set_freq(sysfs, gt_id, "min", rpn) > 0, > + igt_assert_f(set_freq(sysfs, tile_id, gt_id, "min", rpn) > 0, > "Failed after %d good cycles\n", i); > - igt_assert_f(set_freq(sysfs, gt_id, "max", rpn) > 0, > + igt_assert_f(set_freq(sysfs, tile_id, gt_id, "max", rpn) > 0, > "Failed after %d good cycles\n", i); > usleep(ACT_FREQ_LATENCY_US); > - igt_assert_f(get_freq(sysfs, gt_id, "cur") == rpn, > + igt_assert_f(get_freq(sysfs, tile_id, gt_id, "cur") == rpn, > "Failed after %d good cycles\n", i); > > xe_force_gt_reset(fd, gt_id); > > - igt_assert_f(get_freq(sysfs, gt_id, "min") == rpn, > + igt_assert_f(get_freq(sysfs, tile_id, gt_id, "min") == rpn, > "Failed after %d good cycles\n", i); > - igt_assert_f(get_freq(sysfs, gt_id, "max") == rpn, > + igt_assert_f(get_freq(sysfs, tile_id, gt_id, "max") == rpn, > "Failed after %d good cycles\n", i); > } > } > @@ -365,11 +367,11 @@ static void test_reset(int fd, int sysfs, int gt_id, int > cycles) > * Run type: BAT > */ > > -static bool in_rc6(int sysfs, int gt_id) > +static bool in_rc6(int sysfs, int tile_id, int gt_id) > { > - char path[32]; > + char path[40]; > char rc[8]; > - sprintf(path, "device/gt%d/rc_status", gt_id); > + sprintf(path, "device/tile%d/gt%d/rc_status", tile_id, gt_id); > if (igt_sysfs_scanf(sysfs, path, "%s", rc) < 0) > return false; > return strcmp(rc, "rc6") == 0; > @@ -379,7 +381,7 @@ igt_main > { > struct drm_xe_engine_class_instance *hwe; > int fd; > - int gt; > + int gt, tile, total_tiles; > static int sysfs = -1; > int ncpus = sysconf(_SC_NPROCESSORS_ONLN); > uint32_t stash_min; > @@ -392,24 +394,24 @@ igt_main > sysfs = igt_sysfs_open(fd); > igt_assert(sysfs != -1); > > - /* The defaults are the same. Stashing the gt0 is enough */ > - stash_min = get_freq(sysfs, 0, "min"); > - stash_max = get_freq(sysfs, 0, "max"); > + /* The defaults are the same. Stashing the gt0 in tile0 is > enough */ > + stash_min = get_freq(sysfs, 0, 0, "min"); > + stash_max = get_freq(sysfs, 0, 0, "max"); > } > > igt_subtest("freq_basic_api") { > - xe_for_each_gt(fd, gt) > - test_freq_basic_api(sysfs, gt); > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) > + test_freq_basic_api(sysfs, tile, gt); > } > > igt_subtest("freq_fixed_idle") { > - xe_for_each_gt(fd, gt) { > - test_freq_fixed(sysfs, gt); > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { > + test_freq_fixed(sysfs, tile, gt); > } > } > > igt_subtest("freq_fixed_exec") { > - xe_for_each_gt(fd, gt) { > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { > xe_for_each_hw_engine(fd, hwe) > igt_fork(child, ncpus) { > igt_debug("Execution Started\n"); > @@ -417,19 +419,19 @@ igt_main > igt_debug("Execution Finished\n"); > } > /* While exec in threads above, let's check the freq */ > - test_freq_fixed(sysfs, gt); > + test_freq_fixed(sysfs, tile, gt); > igt_waitchildren(); > } > } > > igt_subtest("freq_range_idle") { > - xe_for_each_gt(fd, gt) { > - test_freq_range(sysfs, gt); > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { > + test_freq_range(sysfs, tile, gt); > } > } > > igt_subtest("freq_range_exec") { > - xe_for_each_gt(fd, gt) { > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { > xe_for_each_hw_engine(fd, hwe) > igt_fork(child, ncpus) { > igt_debug("Execution Started\n"); > @@ -437,46 +439,46 @@ igt_main > igt_debug("Execution Finished\n"); > } > /* While exec in threads above, let's check the freq */ > - test_freq_range(sysfs, gt); > + test_freq_range(sysfs, tile, gt); > igt_waitchildren(); > } > } > > igt_subtest("freq_low_max") { > - xe_for_each_gt(fd, gt) { > - test_freq_low_max(sysfs, gt); > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { > + test_freq_low_max(sysfs, tile, gt); > } > } > > igt_subtest("freq_suspend") { > - xe_for_each_gt(fd, gt) { > - test_suspend(sysfs, gt); > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { > + test_suspend(sysfs, tile, gt); > } > } > > igt_subtest("freq_reset") { > - xe_for_each_gt(fd, gt) { > - test_reset(fd, sysfs, gt, 1); > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { > + test_reset(fd, sysfs, tile, gt, 1); > } > } > > igt_subtest("freq_reset_multiple") { > - xe_for_each_gt(fd, gt) { > - test_reset(fd, sysfs, gt, 50); > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { > + test_reset(fd, sysfs, tile, gt, 50); > } > } > > igt_subtest("rc6_on_idle") { > igt_require(!IS_PONTEVECCHIO(xe_dev_id(fd))); > - xe_for_each_gt(fd, gt) { > - assert(igt_wait(in_rc6(sysfs, gt), 1000, 1)); > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { > + assert(igt_wait(in_rc6(sysfs, tile, gt), 1000, 1)); > } > } > > igt_subtest("rc0_on_exec") { > igt_require(!IS_PONTEVECCHIO(xe_dev_id(fd))); > - xe_for_each_gt(fd, gt) { > - assert(igt_wait(in_rc6(sysfs, gt), 1000, 1)); > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { > + assert(igt_wait(in_rc6(sysfs, tile, gt), 1000, 1)); > xe_for_each_hw_engine(fd, hwe) > igt_fork(child, ncpus) { > igt_debug("Execution Started\n"); > @@ -484,15 +486,15 @@ igt_main > igt_debug("Execution Finished\n"); > } > /* While exec in threads above, let's check rc_status > */ > - assert(igt_wait(!in_rc6(sysfs, gt), 1000, 1)); > + assert(igt_wait(!in_rc6(sysfs, tile, gt), 1000, 1)); > igt_waitchildren(); > } > } > > igt_fixture { > - xe_for_each_gt(fd, gt) { > - set_freq(sysfs, gt, "min", stash_min); > - set_freq(sysfs, gt, "max", stash_max); > + xe_for_each_gt_under_each_tile(fd, gt, tile, total_tiles) { > + set_freq(sysfs, tile, gt, "min", stash_min); > + set_freq(sysfs, tile, gt, "max", stash_max); This is needed to address regressions, when KMD patch merges. Thanks. Reviewed-by: Tejas Upadhyay <tejas.upadhyay@intel.com> > } > close(sysfs); > xe_device_put(fd); > -- > 2.25.1 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [igt-dev] [PATCH v2 4/4] tests/xe/xe_sysfs_tile_prop: adds new test to verify per tile vram addr_range 2023-06-23 11:49 [igt-dev] [PATCH v2 0/4] Handle GT and tile seperation in IGT Himal Prasad Ghimiray ` (2 preceding siblings ...) 2023-06-23 11:49 ` [igt-dev] [PATCH v2 3/4] tests/xe/xe_guc_pc: Change the sysfs paths Himal Prasad Ghimiray @ 2023-06-23 11:49 ` Himal Prasad Ghimiray 2023-06-26 10:59 ` Upadhyay, Tejas 2023-06-23 12:44 ` [igt-dev] ✓ Fi.CI.BAT: success for Handle GT and tile seperation in IGT Patchwork 2023-06-23 18:13 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 5 siblings, 1 reply; 19+ messages in thread From: Himal Prasad Ghimiray @ 2023-06-23 11:49 UTC (permalink / raw) To: igt-dev; +Cc: Upadhyay For each tile the test reads the sysfs entry physical_vram_size_bytes and compares the value with vram size exposed from query ioctl. v2: - Change sysfs entry name. (Tejas) - Change test name to xe_sysfs_tile_prop. (Rahul) Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> Cc: Upadhyay <tejas.upadhyay@intel.com> Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> --- tests/meson.build | 1 + tests/xe/xe_sysfs_tile_prop.c | 67 +++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 tests/xe/xe_sysfs_tile_prop.c diff --git a/tests/meson.build b/tests/meson.build index 61dcc076..569f1d22 100644 --- a/tests/meson.build +++ b/tests/meson.build @@ -267,6 +267,7 @@ xe_progs = [ 'xe_pm', 'xe_prime_self_import', 'xe_query', + 'xe_sysfs_tile_prop', 'xe_vm', 'xe_waitfence', ] diff --git a/tests/xe/xe_sysfs_tile_prop.c b/tests/xe/xe_sysfs_tile_prop.c new file mode 100644 index 00000000..f205970f --- /dev/null +++ b/tests/xe/xe_sysfs_tile_prop.c @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: MIT +/* + * Copyright © 2023 Intel Corporation + */ + +/** + * TEST: Verify addr_range of each tiles + * SUBTEST: addr_range + * Description: + * Read sysfs entry for addr_range and compare with + * calculated addr_range. addr_range should be sum + * vram size and stolen memory. + */ + +#include <string.h> +#include <sys/time.h> + +#include "igt.h" +#include "igt_sysfs.h" + +#include "xe_drm.h" +#include "xe/xe_ioctl.h" +#include "xe/xe_query.h" + +static void test_vram_addr_range(int sysfs, int tile_num, u64 vram_size) +{ + int err = -EAGAIN; + u64 addr_range; + char path[40]; + + igt_assert(snprintf(path, sizeof(path), "device/tile%d/physical_vram_size_bytes", + tile_num) < sizeof(path)); + while (err == -EAGAIN) + err = igt_sysfs_scanf(sysfs, path, "%lx", &addr_range); + + igt_assert_lt(vram_size, addr_range); +} + +igt_main +{ + int fd; + int tile, total_tiles; + static int sysfs = -1; + u64 vram_size; + + igt_fixture { + fd = drm_open_driver(DRIVER_XE); + xe_device_get(fd); + + sysfs = igt_sysfs_open(fd); + igt_assert(sysfs != -1); + } + + igt_subtest("addr_range") { + igt_require(xe_has_vram(fd)); + xe_for_each_tile(fd, tile, total_tiles) { + vram_size = xe_vram_size(fd, tile); + test_vram_addr_range(sysfs, tile, vram_size); + } + } + + igt_fixture { + close(sysfs); + xe_device_put(fd); + close(fd); + } +} -- 2.25.1 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 4/4] tests/xe/xe_sysfs_tile_prop: adds new test to verify per tile vram addr_range 2023-06-23 11:49 ` [igt-dev] [PATCH v2 4/4] tests/xe/xe_sysfs_tile_prop: adds new test to verify per tile vram addr_range Himal Prasad Ghimiray @ 2023-06-26 10:59 ` Upadhyay, Tejas 2023-06-26 11:20 ` Ghimiray, Himal Prasad 0 siblings, 1 reply; 19+ messages in thread From: Upadhyay, Tejas @ 2023-06-26 10:59 UTC (permalink / raw) To: Ghimiray, Himal Prasad, igt-dev@lists.freedesktop.org > -----Original Message----- > From: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > Sent: Friday, June 23, 2023 5:20 PM > To: igt-dev@lists.freedesktop.org > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; Iddamsetty, > Aravind <aravind.iddamsetty@intel.com>; Upadhyay, Tejas > <tejas.upadhyay@intel.com>; Kumar, Janga Rahul > <janga.rahul.kumar@intel.com> > Subject: [PATCH v2 4/4] tests/xe/xe_sysfs_tile_prop: adds new test to verify > per tile vram addr_range > > For each tile the test reads the sysfs entry physical_vram_size_bytes and > compares the value with vram size exposed from query ioctl. > > v2: > - Change sysfs entry name. (Tejas) > - Change test name to xe_sysfs_tile_prop. (Rahul) > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > Cc: Upadhyay <tejas.upadhyay@intel.com> > Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> > Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> > --- > tests/meson.build | 1 + > tests/xe/xe_sysfs_tile_prop.c | 67 +++++++++++++++++++++++++++++++++++ > 2 files changed, 68 insertions(+) > create mode 100644 tests/xe/xe_sysfs_tile_prop.c > > diff --git a/tests/meson.build b/tests/meson.build index 61dcc076..569f1d22 > 100644 > --- a/tests/meson.build > +++ b/tests/meson.build > @@ -267,6 +267,7 @@ xe_progs = [ > 'xe_pm', > 'xe_prime_self_import', > 'xe_query', > + 'xe_sysfs_tile_prop', > 'xe_vm', > 'xe_waitfence', > ] > diff --git a/tests/xe/xe_sysfs_tile_prop.c b/tests/xe/xe_sysfs_tile_prop.c new > file mode 100644 index 00000000..f205970f > --- /dev/null > +++ b/tests/xe/xe_sysfs_tile_prop.c > @@ -0,0 +1,67 @@ > +// SPDX-License-Identifier: MIT > +/* > + * Copyright © 2023 Intel Corporation > + */ > + > +/** > + * TEST: Verify addr_range of each tiles > + * SUBTEST: addr_range > + * Description: > + * Read sysfs entry for addr_range and compare with > + * calculated addr_range. addr_range should be sum > + * vram size and stolen memory. > + */ > + > +#include <string.h> > +#include <sys/time.h> > + > +#include "igt.h" > +#include "igt_sysfs.h" > + > +#include "xe_drm.h" > +#include "xe/xe_ioctl.h" > +#include "xe/xe_query.h" > + > +static void test_vram_addr_range(int sysfs, int tile_num, u64 > +vram_size) { > + int err = -EAGAIN; Can we skip init here! > + u64 addr_range; May be you want to update this variable name now to match . > + char path[40]; Better to use already defined path length or define instead of hardcode. > + > + igt_assert(snprintf(path, sizeof(path), > "device/tile%d/physical_vram_size_bytes", > + tile_num) < sizeof(path)); > + while (err == -EAGAIN) And then use do while here. I don’t see value in checking err at first here. Or am I missing something here! > + err = igt_sysfs_scanf(sysfs, path, "%lx", &addr_range); > + > + igt_assert_lt(vram_size, addr_range); Ok, vram_size here would be without stolen can we add vram_size with stolen and check here? Thanks, Tejas > +} > + > +igt_main > +{ > + int fd; > + int tile, total_tiles; > + static int sysfs = -1; > + u64 vram_size; > + > + igt_fixture { > + fd = drm_open_driver(DRIVER_XE); > + xe_device_get(fd); > + > + sysfs = igt_sysfs_open(fd); > + igt_assert(sysfs != -1); > + } > + > + igt_subtest("addr_range") { > + igt_require(xe_has_vram(fd)); > + xe_for_each_tile(fd, tile, total_tiles) { > + vram_size = xe_vram_size(fd, tile); > + test_vram_addr_range(sysfs, tile, vram_size); > + } > + } > + > + igt_fixture { > + close(sysfs); > + xe_device_put(fd); > + close(fd); > + } > +} > -- > 2.25.1 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [igt-dev] [PATCH v2 4/4] tests/xe/xe_sysfs_tile_prop: adds new test to verify per tile vram addr_range 2023-06-26 10:59 ` Upadhyay, Tejas @ 2023-06-26 11:20 ` Ghimiray, Himal Prasad 0 siblings, 0 replies; 19+ messages in thread From: Ghimiray, Himal Prasad @ 2023-06-26 11:20 UTC (permalink / raw) To: Upadhyay, Tejas, igt-dev@lists.freedesktop.org > -----Original Message----- > From: Upadhyay, Tejas <tejas.upadhyay@intel.com> > Sent: 26 June 2023 16:30 > To: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; igt- > dev@lists.freedesktop.org > Cc: Iddamsetty, Aravind <aravind.iddamsetty@intel.com>; Kumar, Janga > Rahul <janga.rahul.kumar@intel.com> > Subject: RE: [PATCH v2 4/4] tests/xe/xe_sysfs_tile_prop: adds new test to > verify per tile vram addr_range > > > > > -----Original Message----- > > From: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com> > > Sent: Friday, June 23, 2023 5:20 PM > > To: igt-dev@lists.freedesktop.org > > Cc: Ghimiray, Himal Prasad <himal.prasad.ghimiray@intel.com>; > > Iddamsetty, Aravind <aravind.iddamsetty@intel.com>; Upadhyay, Tejas > > <tejas.upadhyay@intel.com>; Kumar, Janga Rahul > > <janga.rahul.kumar@intel.com> > > Subject: [PATCH v2 4/4] tests/xe/xe_sysfs_tile_prop: adds new test to > > verify per tile vram addr_range > > > > For each tile the test reads the sysfs entry physical_vram_size_bytes > > and compares the value with vram size exposed from query ioctl. > > > > v2: > > - Change sysfs entry name. (Tejas) > > - Change test name to xe_sysfs_tile_prop. (Rahul) > > > > Cc: Aravind Iddamsetty <aravind.iddamsetty@intel.com> > > Cc: Upadhyay <tejas.upadhyay@intel.com> > > Cc: Janga Rahul Kumar <janga.rahul.kumar@intel.com> > > Signed-off-by: Himal Prasad Ghimiray <himal.prasad.ghimiray@intel.com> > > --- > > tests/meson.build | 1 + > > tests/xe/xe_sysfs_tile_prop.c | 67 > > +++++++++++++++++++++++++++++++++++ > > 2 files changed, 68 insertions(+) > > create mode 100644 tests/xe/xe_sysfs_tile_prop.c > > > > diff --git a/tests/meson.build b/tests/meson.build index > > 61dcc076..569f1d22 > > 100644 > > --- a/tests/meson.build > > +++ b/tests/meson.build > > @@ -267,6 +267,7 @@ xe_progs = [ > > 'xe_pm', > > 'xe_prime_self_import', > > 'xe_query', > > + 'xe_sysfs_tile_prop', > > 'xe_vm', > > 'xe_waitfence', > > ] > > diff --git a/tests/xe/xe_sysfs_tile_prop.c > > b/tests/xe/xe_sysfs_tile_prop.c new file mode 100644 index > > 00000000..f205970f > > --- /dev/null > > +++ b/tests/xe/xe_sysfs_tile_prop.c > > @@ -0,0 +1,67 @@ > > +// SPDX-License-Identifier: MIT > > +/* > > + * Copyright © 2023 Intel Corporation */ > > + > > +/** > > + * TEST: Verify addr_range of each tiles > > + * SUBTEST: addr_range > > + * Description: > > + * Read sysfs entry for addr_range and compare with > > + * calculated addr_range. addr_range should be sum > > + * vram size and stolen memory. > > + */ > > + > > +#include <string.h> > > +#include <sys/time.h> > > + > > +#include "igt.h" > > +#include "igt_sysfs.h" > > + > > +#include "xe_drm.h" > > +#include "xe/xe_ioctl.h" > > +#include "xe/xe_query.h" > > + > > +static void test_vram_addr_range(int sysfs, int tile_num, u64 > > +vram_size) { > > + int err = -EAGAIN; > > Can we skip init here! > > > + u64 addr_range; > > May be you want to update this variable name now to match . Ok. sure > > > + char path[40]; > > Better to use already defined path length or define instead of hardcode. > > > + > > + igt_assert(snprintf(path, sizeof(path), > > "device/tile%d/physical_vram_size_bytes", > > + tile_num) < sizeof(path)); > > + while (err == -EAGAIN) > > And then use do while here. I don’t see value in checking err at first here. Or > am I missing something here! Yes not required. Will address > > > + err = igt_sysfs_scanf(sysfs, path, "%lx", &addr_range); > > + > > + igt_assert_lt(vram_size, addr_range); > > Ok, vram_size here would be without stolen can we add vram_size with > stolen and check here? Stolen reported by debugfs is only usable stolen and it is being reported only for root tile. So probably using stolen for comparison doesn't make sense. Wll update the description in test. > > Thanks, > Tejas > > +} > > + > > +igt_main > > +{ > > + int fd; > > + int tile, total_tiles; > > + static int sysfs = -1; > > + u64 vram_size; > > + > > + igt_fixture { > > + fd = drm_open_driver(DRIVER_XE); > > + xe_device_get(fd); > > + > > + sysfs = igt_sysfs_open(fd); > > + igt_assert(sysfs != -1); > > + } > > + > > + igt_subtest("addr_range") { > > + igt_require(xe_has_vram(fd)); > > + xe_for_each_tile(fd, tile, total_tiles) { > > + vram_size = xe_vram_size(fd, tile); > > + test_vram_addr_range(sysfs, tile, vram_size); > > + } > > + } > > + > > + igt_fixture { > > + close(sysfs); > > + xe_device_put(fd); > > + close(fd); > > + } > > +} > > -- > > 2.25.1 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for Handle GT and tile seperation in IGT 2023-06-23 11:49 [igt-dev] [PATCH v2 0/4] Handle GT and tile seperation in IGT Himal Prasad Ghimiray ` (3 preceding siblings ...) 2023-06-23 11:49 ` [igt-dev] [PATCH v2 4/4] tests/xe/xe_sysfs_tile_prop: adds new test to verify per tile vram addr_range Himal Prasad Ghimiray @ 2023-06-23 12:44 ` Patchwork 2023-06-23 18:13 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork 5 siblings, 0 replies; 19+ messages in thread From: Patchwork @ 2023-06-23 12:44 UTC (permalink / raw) To: Ghimiray, Himal Prasad; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 8124 bytes --] == Series Details == Series: Handle GT and tile seperation in IGT URL : https://patchwork.freedesktop.org/series/119801/ State : success == Summary == CI Bug Log - changes from CI_DRM_13312 -> IGTPW_9247 ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/index.html Participating hosts (41 -> 40) ------------------------------ Missing (1): fi-snb-2520m Known issues ------------ Here are the changes found in IGTPW_9247 that come from known issues: ### IGT changes ### #### Issues hit #### * igt@debugfs_test@basic-hwmon: - bat-adlp-11: NOTRUN -> [SKIP][1] ([i915#7456]) [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-adlp-11/igt@debugfs_test@basic-hwmon.html * igt@gem_tiled_pread_basic: - bat-adlp-11: NOTRUN -> [SKIP][2] ([i915#3282]) [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-adlp-11/igt@gem_tiled_pread_basic.html * igt@i915_selftest@live@gt_mocs: - bat-mtlp-8: [PASS][3] -> [DMESG-FAIL][4] ([i915#7059]) [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/bat-mtlp-8/igt@i915_selftest@live@gt_mocs.html [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-mtlp-8/igt@i915_selftest@live@gt_mocs.html - bat-mtlp-6: [PASS][5] -> [DMESG-FAIL][6] ([i915#7059]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-mtlp-6/igt@i915_selftest@live@gt_mocs.html * igt@i915_selftest@live@slpc: - bat-mtlp-6: [PASS][7] -> [DMESG-WARN][8] ([i915#6367]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/bat-mtlp-6/igt@i915_selftest@live@slpc.html [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-mtlp-6/igt@i915_selftest@live@slpc.html - bat-rpls-2: NOTRUN -> [DMESG-WARN][9] ([i915#6367]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-rpls-2/igt@i915_selftest@live@slpc.html * igt@i915_suspend@basic-s2idle-without-i915: - bat-rpls-2: NOTRUN -> [ABORT][10] ([i915#6687] / [i915#8668]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-rpls-2/igt@i915_suspend@basic-s2idle-without-i915.html * igt@kms_chamelium_frames@hdmi-crc-fast: - bat-adlp-11: NOTRUN -> [SKIP][11] ([i915#7828]) +7 similar issues [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-adlp-11/igt@kms_chamelium_frames@hdmi-crc-fast.html * igt@kms_chamelium_hpd@common-hpd-after-suspend: - bat-adlm-1: NOTRUN -> [SKIP][12] ([i915#7828]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-adlm-1/igt@kms_chamelium_hpd@common-hpd-after-suspend.html * igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy: - bat-adlp-11: NOTRUN -> [SKIP][13] ([i915#4103]) +1 similar issue [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-adlp-11/igt@kms_cursor_legacy@basic-busy-flip-before-cursor-legacy.html * igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size: - bat-adlp-11: NOTRUN -> [ABORT][14] ([i915#4423]) [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-adlp-11/igt@kms_cursor_legacy@basic-flip-before-cursor-varying-size.html * igt@kms_pipe_crc_basic@suspend-read-crc: - bat-adlm-1: NOTRUN -> [SKIP][15] ([i915#1845]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-adlm-1/igt@kms_pipe_crc_basic@suspend-read-crc.html #### Possible fixes #### * igt@dmabuf@all-tests@dma_fence: - bat-adlm-1: [DMESG-FAIL][16] ([i915#8189]) -> [PASS][17] [16]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/bat-adlm-1/igt@dmabuf@all-tests@dma_fence.html [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-adlm-1/igt@dmabuf@all-tests@dma_fence.html * igt@dmabuf@all-tests@sanitycheck: - bat-adlm-1: [ABORT][18] ([i915#8423]) -> [PASS][19] [18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/bat-adlm-1/igt@dmabuf@all-tests@sanitycheck.html [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-adlm-1/igt@dmabuf@all-tests@sanitycheck.html * igt@gem_exec_suspend@basic-s0@smem: - fi-rkl-11600: [FAIL][20] ([fdo#103375] / [i915#8011]) -> [PASS][21] [20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/fi-rkl-11600/igt@gem_exec_suspend@basic-s0@smem.html [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/fi-rkl-11600/igt@gem_exec_suspend@basic-s0@smem.html * igt@i915_module_load@load: - bat-adlp-11: [ABORT][22] ([i915#4423]) -> [PASS][23] [22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/bat-adlp-11/igt@i915_module_load@load.html [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-adlp-11/igt@i915_module_load@load.html * igt@i915_selftest@live@gt_heartbeat: - fi-apl-guc: [DMESG-FAIL][24] ([i915#5334]) -> [PASS][25] [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_selftest@live@migrate: - bat-mtlp-8: [DMESG-FAIL][26] ([i915#7699]) -> [PASS][27] [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/bat-mtlp-8/igt@i915_selftest@live@migrate.html [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-mtlp-8/igt@i915_selftest@live@migrate.html * igt@i915_selftest@live@requests: - bat-mtlp-8: [DMESG-FAIL][28] ([i915#8497]) -> [PASS][29] [28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/bat-mtlp-8/igt@i915_selftest@live@requests.html [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-mtlp-8/igt@i915_selftest@live@requests.html - bat-rpls-2: [ABORT][30] ([i915#4983] / [i915#7913]) -> [PASS][31] [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/bat-rpls-2/igt@i915_selftest@live@requests.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/bat-rpls-2/igt@i915_selftest@live@requests.html [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423 [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367 [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687 [i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059 [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456 [i915#7699]: https://gitlab.freedesktop.org/drm/intel/issues/7699 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913 [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011 [i915#8189]: https://gitlab.freedesktop.org/drm/intel/issues/8189 [i915#8423]: https://gitlab.freedesktop.org/drm/intel/issues/8423 [i915#8497]: https://gitlab.freedesktop.org/drm/intel/issues/8497 [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7347 -> IGTPW_9247 CI-20190529: 20190529 CI_DRM_13312: 08d15de81b3b0db3c9046d2556c10b9f136cc90f @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_9247: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/index.html IGT_7347: 621c2d3115d40a1ba0b53668413ea21edf03a5ff @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git Testlist changes ---------------- +igt@xe_sysfs_tile_prop@addr_range == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/index.html [-- Attachment #2: Type: text/html, Size: 9463 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for Handle GT and tile seperation in IGT 2023-06-23 11:49 [igt-dev] [PATCH v2 0/4] Handle GT and tile seperation in IGT Himal Prasad Ghimiray ` (4 preceding siblings ...) 2023-06-23 12:44 ` [igt-dev] ✓ Fi.CI.BAT: success for Handle GT and tile seperation in IGT Patchwork @ 2023-06-23 18:13 ` Patchwork 5 siblings, 0 replies; 19+ messages in thread From: Patchwork @ 2023-06-23 18:13 UTC (permalink / raw) To: Ghimiray, Himal Prasad; +Cc: igt-dev [-- Attachment #1: Type: text/plain, Size: 44650 bytes --] == Series Details == Series: Handle GT and tile seperation in IGT URL : https://patchwork.freedesktop.org/series/119801/ State : success == Summary == CI Bug Log - changes from CI_DRM_13312_full -> IGTPW_9247_full ==================================================== Summary ------- **SUCCESS** No regressions found. External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/index.html Participating hosts (9 -> 8) ------------------------------ Missing (1): shard-tglu0 Possible new issues ------------------- Here are the unknown changes that may have been introduced in IGTPW_9247_full: ### IGT changes ### #### Suppressed #### The following results come from untrusted machines, tests, or statuses. They do not affect the overall result. * igt@i915_pm_rc6_residency@rc6-fence: - {shard-dg2}: [PASS][1] -> [FAIL][2] +1 similar issue [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-dg2-3/igt@i915_pm_rc6_residency@rc6-fence.html [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-dg2-6/igt@i915_pm_rc6_residency@rc6-fence.html * igt@kms_content_protection@atomic-dpms@pipe-a-dp-2: - {shard-dg2}: NOTRUN -> [TIMEOUT][3] [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-dg2-12/igt@kms_content_protection@atomic-dpms@pipe-a-dp-2.html New tests --------- New tests have been introduced between CI_DRM_13312_full and IGTPW_9247_full: ### New IGT tests (4) ### * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-75@pipe-b-dp-2: - Statuses : 1 pass(s) - Exec time: [0.0] s * igt@kms_plane_scaling@plane-downscale-with-modifiers-factor-0-75@pipe-c-dp-2: - Statuses : 1 pass(s) - Exec time: [0.0] s * igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-75@pipe-b-dp-2: - Statuses : 1 pass(s) - Exec time: [0.0] s * igt@kms_plane_scaling@plane-downscale-with-rotation-factor-0-75@pipe-c-dp-2: - Statuses : 1 pass(s) - Exec time: [0.0] s Known issues ------------ Here are the changes found in IGTPW_9247_full that come from known issues: ### IGT changes ### #### Issues hit #### * igt@device_reset@unbind-cold-reset-rebind: - shard-tglu: NOTRUN -> [SKIP][4] ([i915#7701]) [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-10/igt@device_reset@unbind-cold-reset-rebind.html * igt@feature_discovery@display-4x: - shard-tglu: NOTRUN -> [SKIP][5] ([i915#1839]) [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-7/igt@feature_discovery@display-4x.html * igt@gem_bad_reloc@negative-reloc-lut: - shard-rkl: NOTRUN -> [SKIP][6] ([i915#3281]) +2 similar issues [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-1/igt@gem_bad_reloc@negative-reloc-lut.html * igt@gem_ccs@ctrl-surf-copy: - shard-tglu: NOTRUN -> [SKIP][7] ([i915#3555] / [i915#4579] / [i915#5325]) [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-6/igt@gem_ccs@ctrl-surf-copy.html * igt@gem_ccs@suspend-resume: - shard-rkl: NOTRUN -> [SKIP][8] ([i915#4579] / [i915#5325]) [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@gem_ccs@suspend-resume.html - shard-tglu: NOTRUN -> [SKIP][9] ([i915#4579] / [i915#5325]) [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-9/igt@gem_ccs@suspend-resume.html * igt@gem_ctx_exec@basic-nohangcheck: - shard-rkl: [PASS][10] -> [FAIL][11] ([i915#6268]) [10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-rkl-6/igt@gem_ctx_exec@basic-nohangcheck.html [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@gem_ctx_exec@basic-nohangcheck.html * igt@gem_exec_balancer@parallel-balancer: - shard-rkl: NOTRUN -> [SKIP][12] ([i915#4525]) [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-1/igt@gem_exec_balancer@parallel-balancer.html * igt@gem_exec_fair@basic-none@bcs0: - shard-rkl: [PASS][13] -> [FAIL][14] ([i915#2842]) +2 similar issues [13]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-rkl-2/igt@gem_exec_fair@basic-none@bcs0.html [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-6/igt@gem_exec_fair@basic-none@bcs0.html * igt@gem_huc_copy@huc-copy: - shard-glk: NOTRUN -> [SKIP][15] ([fdo#109271] / [i915#2190]) [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-glk2/igt@gem_huc_copy@huc-copy.html * igt@gem_lmem_swapping@massive: - shard-rkl: NOTRUN -> [SKIP][16] ([i915#4613]) +1 similar issue [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-1/igt@gem_lmem_swapping@massive.html * igt@gem_lmem_swapping@smem-oom: - shard-tglu: NOTRUN -> [SKIP][17] ([i915#4613]) +3 similar issues [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-9/igt@gem_lmem_swapping@smem-oom.html * igt@gem_pxp@create-valid-protected-context: - shard-rkl: NOTRUN -> [SKIP][18] ([i915#4270]) +1 similar issue [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-1/igt@gem_pxp@create-valid-protected-context.html * igt@gem_pxp@reject-modify-context-protection-on: - shard-tglu: NOTRUN -> [SKIP][19] ([i915#4270]) +3 similar issues [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-4/igt@gem_pxp@reject-modify-context-protection-on.html * igt@gem_set_tiling_vs_pwrite: - shard-rkl: NOTRUN -> [SKIP][20] ([i915#3282]) +4 similar issues [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@gem_set_tiling_vs_pwrite.html * igt@gem_softpin@evict-snoop: - shard-rkl: NOTRUN -> [SKIP][21] ([fdo#109312]) [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@gem_softpin@evict-snoop.html - shard-tglu: NOTRUN -> [SKIP][22] ([fdo#109312]) [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-5/igt@gem_softpin@evict-snoop.html * igt@gem_userptr_blits@dmabuf-sync: - shard-tglu: NOTRUN -> [SKIP][23] ([i915#3323]) [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-7/igt@gem_userptr_blits@dmabuf-sync.html * igt@gem_userptr_blits@readonly-pwrite-unsync: - shard-tglu: NOTRUN -> [SKIP][24] ([i915#3297]) [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-7/igt@gem_userptr_blits@readonly-pwrite-unsync.html * igt@gen9_exec_parse@allowed-single: - shard-rkl: NOTRUN -> [SKIP][25] ([i915#2527]) [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@gen9_exec_parse@allowed-single.html * igt@gen9_exec_parse@bb-secure: - shard-tglu: NOTRUN -> [SKIP][26] ([i915#2527] / [i915#2856]) +2 similar issues [26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-10/igt@gen9_exec_parse@bb-secure.html * igt@i915_pm_backlight@bad-brightness: - shard-rkl: NOTRUN -> [SKIP][27] ([i915#7561]) [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-4/igt@i915_pm_backlight@bad-brightness.html - shard-tglu: NOTRUN -> [SKIP][28] ([i915#7561]) [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-8/igt@i915_pm_backlight@bad-brightness.html * igt@i915_pm_dc@dc5-psr: - shard-rkl: NOTRUN -> [SKIP][29] ([i915#658]) [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-1/igt@i915_pm_dc@dc5-psr.html * igt@i915_pm_dc@dc6-dpms: - shard-tglu: [PASS][30] -> [FAIL][31] ([i915#3989] / [i915#454]) [30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-tglu-4/igt@i915_pm_dc@dc6-dpms.html [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-8/igt@i915_pm_dc@dc6-dpms.html * igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a: - shard-rkl: [PASS][32] -> [SKIP][33] ([i915#1937] / [i915#4579]) [32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-rkl-7/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@i915_pm_lpsp@kms-lpsp@kms-lpsp-hdmi-a.html * igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait: - shard-rkl: NOTRUN -> [SKIP][34] ([i915#1397]) [34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html - shard-tglu: NOTRUN -> [SKIP][35] ([fdo#111644] / [i915#1397]) [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-5/igt@i915_pm_rpm@modeset-non-lpsp-stress-no-wait.html * igt@i915_pm_rpm@modeset-pc8-residency-stress: - shard-tglu: NOTRUN -> [SKIP][36] ([fdo#109506]) [36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-2/igt@i915_pm_rpm@modeset-pc8-residency-stress.html * igt@i915_query@query-topology-unsupported: - shard-tglu: NOTRUN -> [SKIP][37] ([fdo#109302]) [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-3/igt@i915_query@query-topology-unsupported.html * igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y-rc_ccs: - shard-rkl: NOTRUN -> [SKIP][38] ([i915#8502]) +3 similar issues [38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@kms_async_flips@async-flip-with-page-flip-events@pipe-b-hdmi-a-1-y-rc_ccs.html * igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip: - shard-tglu: NOTRUN -> [SKIP][39] ([fdo#111615] / [i915#5286]) +3 similar issues [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-5/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html - shard-rkl: NOTRUN -> [SKIP][40] ([i915#5286]) [40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@kms_big_fb@4-tiled-max-hw-stride-32bpp-rotate-0-async-flip.html * igt@kms_big_fb@linear-16bpp-rotate-270: - shard-tglu: NOTRUN -> [SKIP][41] ([fdo#111614]) +4 similar issues [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-10/igt@kms_big_fb@linear-16bpp-rotate-270.html * igt@kms_big_fb@x-tiled-32bpp-rotate-270: - shard-rkl: NOTRUN -> [SKIP][42] ([fdo#111614] / [i915#3638]) +1 similar issue [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-1/igt@kms_big_fb@x-tiled-32bpp-rotate-270.html * igt@kms_big_fb@yf-tiled-64bpp-rotate-180: - shard-glk: NOTRUN -> [SKIP][43] ([fdo#109271]) +46 similar issues [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-glk1/igt@kms_big_fb@yf-tiled-64bpp-rotate-180.html * igt@kms_big_fb@yf-tiled-addfb-size-overflow: - shard-rkl: NOTRUN -> [SKIP][44] ([fdo#111615]) [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@kms_big_fb@yf-tiled-addfb-size-overflow.html * igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip: - shard-tglu: NOTRUN -> [SKIP][45] ([fdo#111615]) +5 similar issues [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-4/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html - shard-rkl: NOTRUN -> [SKIP][46] ([fdo#110723]) [46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-4/igt@kms_big_fb@yf-tiled-max-hw-stride-32bpp-rotate-180-hflip-async-flip.html * igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_mtl_mc_ccs: - shard-rkl: NOTRUN -> [SKIP][47] ([i915#5354] / [i915#6095]) +7 similar issues [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@kms_ccs@pipe-a-bad-pixel-format-4_tiled_mtl_mc_ccs.html * igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs: - shard-tglu: NOTRUN -> [SKIP][48] ([i915#3689] / [i915#5354] / [i915#6095]) +9 similar issues [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-4/igt@kms_ccs@pipe-a-bad-pixel-format-y_tiled_ccs.html * igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs: - shard-glk: NOTRUN -> [SKIP][49] ([fdo#109271] / [i915#3886]) +4 similar issues [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-glk2/igt@kms_ccs@pipe-b-bad-pixel-format-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-b-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc: - shard-tglu: NOTRUN -> [SKIP][50] ([i915#5354] / [i915#6095]) +25 similar issues [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-4/igt@kms_ccs@pipe-b-missing-ccs-buffer-4_tiled_mtl_rc_ccs_cc.html * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_mc_ccs: - shard-tglu: NOTRUN -> [SKIP][51] ([i915#3689] / [i915#3886] / [i915#5354] / [i915#6095]) +1 similar issue [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-10/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_mc_ccs.html * igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc: - shard-rkl: NOTRUN -> [SKIP][52] ([i915#5354]) +10 similar issues [52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@kms_ccs@pipe-c-bad-rotation-90-y_tiled_gen12_rc_ccs_cc.html * igt@kms_ccs@pipe-d-crc-sprite-planes-basic-yf_tiled_ccs: - shard-tglu: NOTRUN -> [SKIP][53] ([fdo#111615] / [i915#3689] / [i915#5354] / [i915#6095]) [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-5/igt@kms_ccs@pipe-d-crc-sprite-planes-basic-yf_tiled_ccs.html * igt@kms_chamelium_color@ctm-limited-range: - shard-tglu: NOTRUN -> [SKIP][54] ([fdo#111827]) [54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-9/igt@kms_chamelium_color@ctm-limited-range.html * igt@kms_chamelium_edid@dp-edid-change-during-suspend: - shard-tglu: NOTRUN -> [SKIP][55] ([i915#7828]) +4 similar issues [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-7/igt@kms_chamelium_edid@dp-edid-change-during-suspend.html * igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode: - shard-rkl: NOTRUN -> [SKIP][56] ([i915#7828]) +1 similar issue [56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@kms_chamelium_hpd@hdmi-hpd-enable-disable-mode.html * igt@kms_content_protection@atomic-dpms: - shard-tglu: NOTRUN -> [SKIP][57] ([i915#4579] / [i915#6944] / [i915#7116] / [i915#7118]) [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-4/igt@kms_content_protection@atomic-dpms.html * igt@kms_cursor_crc@cursor-rapid-movement-32x32: - shard-rkl: NOTRUN -> [SKIP][58] ([i915#3555] / [i915#4579]) +3 similar issues [58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-6/igt@kms_cursor_crc@cursor-rapid-movement-32x32.html * igt@kms_cursor_crc@cursor-rapid-movement-512x512: - shard-tglu: NOTRUN -> [SKIP][59] ([i915#3359]) +1 similar issue [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-4/igt@kms_cursor_crc@cursor-rapid-movement-512x512.html * igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size: - shard-tglu: NOTRUN -> [SKIP][60] ([fdo#109274]) [60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-5/igt@kms_cursor_legacy@cursorb-vs-flipa-varying-size.html * igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions: - shard-tglu: NOTRUN -> [SKIP][61] ([fdo#109274] / [fdo#111767]) [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-8/igt@kms_cursor_legacy@cursorb-vs-flipb-atomic-transitions.html * igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions: - shard-glk: [PASS][62] -> [FAIL][63] ([i915#2346]) [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-glk1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html - shard-apl: [PASS][64] -> [FAIL][65] ([i915#2346]) [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-apl1/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-apl3/igt@kms_cursor_legacy@flip-vs-cursor-atomic-transitions.html * igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size: - shard-tglu: NOTRUN -> [SKIP][66] ([i915#4103]) [66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-5/igt@kms_cursor_legacy@short-busy-flip-before-cursor-atomic-transitions-varying-size.html * igt@kms_display_modes@extended-mode-basic: - shard-tglu: NOTRUN -> [SKIP][67] ([i915#4579]) [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-8/igt@kms_display_modes@extended-mode-basic.html * igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][68] ([i915#3804] / [i915#4579]) [68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@kms_dither@fb-8bpc-vs-panel-6bpc@pipe-a-hdmi-a-2.html * igt@kms_dsc@dsc-with-bpc-formats: - shard-tglu: NOTRUN -> [SKIP][69] ([i915#3840] / [i915#4579]) [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-4/igt@kms_dsc@dsc-with-bpc-formats.html * igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset: - shard-rkl: NOTRUN -> [SKIP][70] ([fdo#111825]) +2 similar issues [70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@kms_flip@2x-flip-vs-dpms-off-vs-modeset.html * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2: - shard-glk: [PASS][71] -> [FAIL][72] ([i915#79]) +1 similar issue [71]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html [72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-glk4/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html * igt@kms_flip@2x-nonexisting-fb: - shard-tglu: NOTRUN -> [SKIP][73] ([fdo#109274] / [i915#3637]) +8 similar issues [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-8/igt@kms_flip@2x-nonexisting-fb.html * igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode: - shard-rkl: NOTRUN -> [SKIP][74] ([i915#2672] / [i915#4579]) [74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html - shard-tglu: NOTRUN -> [SKIP][75] ([i915#2587] / [i915#2672] / [i915#4579]) +1 similar issue [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-5/igt@kms_flip_scaled_crc@flip-32bpp-yftileccs-to-64bpp-yftile-downscaling@pipe-a-valid-mode.html * igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling@pipe-a-valid-mode: - shard-glk: NOTRUN -> [SKIP][76] ([fdo#109271] / [i915#4579]) +4 similar issues [76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-glk1/igt@kms_flip_scaled_crc@flip-64bpp-xtile-to-32bpp-xtile-upscaling@pipe-a-valid-mode.html * igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt: - shard-rkl: NOTRUN -> [SKIP][77] ([i915#3023]) +8 similar issues [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@kms_frontbuffer_tracking@fbcpsr-1p-primscrn-spr-indfb-draw-mmap-gtt.html * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-wc: - shard-tglu: NOTRUN -> [SKIP][78] ([fdo#109280]) +23 similar issues [78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-3/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-shrfb-draw-mmap-wc.html * igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite: - shard-tglu: NOTRUN -> [SKIP][79] ([fdo#110189]) +25 similar issues [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-8/igt@kms_frontbuffer_tracking@psr-1p-primscrn-pri-shrfb-draw-pwrite.html * igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt: - shard-rkl: NOTRUN -> [SKIP][80] ([fdo#111825] / [i915#1825]) +9 similar issues [80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-4/igt@kms_frontbuffer_tracking@psr-2p-scndscrn-indfb-msflip-blt.html * igt@kms_hdr@invalid-hdr: - shard-rkl: NOTRUN -> [SKIP][81] ([i915#4579] / [i915#6953] / [i915#8228]) [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@kms_hdr@invalid-hdr.html * igt@kms_hdr@invalid-metadata-sizes: - shard-tglu: NOTRUN -> [SKIP][82] ([i915#4579] / [i915#6953] / [i915#8228]) [82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-8/igt@kms_hdr@invalid-metadata-sizes.html * igt@kms_panel_fitting@legacy: - shard-tglu: NOTRUN -> [SKIP][83] ([i915#4579] / [i915#6301]) [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-8/igt@kms_panel_fitting@legacy.html * igt@kms_plane_scaling@plane-upscale-with-modifiers-factor-0-25@pipe-a-vga-1: - shard-snb: NOTRUN -> [SKIP][84] ([fdo#109271]) +18 similar issues [84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-snb5/igt@kms_plane_scaling@plane-upscale-with-modifiers-factor-0-25@pipe-a-vga-1.html * igt@kms_plane_scaling@plane-upscale-with-modifiers-factor-0-25@pipe-b-vga-1: - shard-snb: NOTRUN -> [SKIP][85] ([fdo#109271] / [i915#4579]) +8 similar issues [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-snb5/igt@kms_plane_scaling@plane-upscale-with-modifiers-factor-0-25@pipe-b-vga-1.html * igt@kms_plane_scaling@plane-upscale-with-rotation-20x20@pipe-a-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][86] ([i915#5176]) +1 similar issue [86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@kms_plane_scaling@plane-upscale-with-rotation-20x20@pipe-a-hdmi-a-1.html * igt@kms_plane_scaling@plane-upscale-with-rotation-20x20@pipe-b-hdmi-a-1: - shard-rkl: NOTRUN -> [SKIP][87] ([i915#4579] / [i915#5176]) +1 similar issue [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@kms_plane_scaling@plane-upscale-with-rotation-20x20@pipe-b-hdmi-a-1.html * igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-a-hdmi-a-1: - shard-tglu: NOTRUN -> [SKIP][88] ([i915#5176]) +2 similar issues [88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-7/igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-a-hdmi-a-1.html * igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-d-hdmi-a-1: - shard-tglu: NOTRUN -> [SKIP][89] ([i915#4579] / [i915#5176]) [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-7/igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-d-hdmi-a-1.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-b-hdmi-a-1: - shard-tglu: NOTRUN -> [SKIP][90] ([i915#5235]) +2 similar issues [90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-8/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-b-hdmi-a-1.html * igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-d-hdmi-a-1: - shard-tglu: NOTRUN -> [SKIP][91] ([i915#4579] / [i915#5235]) [91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-8/igt@kms_plane_scaling@planes-downscale-factor-0-25-unity-scaling@pipe-d-hdmi-a-1.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-a-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][92] ([i915#5235]) +1 similar issue [92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-a-hdmi-a-2.html * igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-2: - shard-rkl: NOTRUN -> [SKIP][93] ([i915#4579] / [i915#5235]) +1 similar issue [93]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-6/igt@kms_plane_scaling@planes-upscale-20x20-downscale-factor-0-25@pipe-b-hdmi-a-2.html * igt@kms_psr2_sf@cursor-plane-update-sf: - shard-rkl: NOTRUN -> [SKIP][94] ([fdo#111068] / [i915#658]) [94]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@kms_psr2_sf@cursor-plane-update-sf.html * igt@kms_psr2_sf@plane-move-sf-dmg-area: - shard-tglu: NOTRUN -> [SKIP][95] ([fdo#111068] / [i915#658]) +1 similar issue [95]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-6/igt@kms_psr2_sf@plane-move-sf-dmg-area.html * igt@kms_psr@psr2_sprite_plane_onoff: - shard-rkl: NOTRUN -> [SKIP][96] ([i915#1072]) +1 similar issue [96]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-4/igt@kms_psr@psr2_sprite_plane_onoff.html * igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0: - shard-tglu: NOTRUN -> [SKIP][97] ([fdo#111615] / [i915#5289]) [97]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-2/igt@kms_rotation_crc@primary-yf-tiled-reflect-x-0.html * igt@kms_scaling_modes@scaling-mode-center: - shard-tglu: NOTRUN -> [SKIP][98] ([i915#3555] / [i915#4579]) +4 similar issues [98]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-5/igt@kms_scaling_modes@scaling-mode-center.html * igt@kms_tiled_display@basic-test-pattern: - shard-tglu: NOTRUN -> [SKIP][99] ([i915#8623]) +1 similar issue [99]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-2/igt@kms_tiled_display@basic-test-pattern.html * igt@kms_tiled_display@basic-test-pattern-with-chamelium: - shard-rkl: NOTRUN -> [SKIP][100] ([i915#8623]) [100]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@kms_tiled_display@basic-test-pattern-with-chamelium.html * igt@kms_vblank@pipe-d-query-idle-hang: - shard-rkl: NOTRUN -> [SKIP][101] ([i915#4070] / [i915#533] / [i915#6768]) [101]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@kms_vblank@pipe-d-query-idle-hang.html * igt@kms_writeback@writeback-check-output: - shard-glk: NOTRUN -> [SKIP][102] ([fdo#109271] / [i915#2437]) [102]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-glk1/igt@kms_writeback@writeback-check-output.html * igt@prime_vgem@coherency-gtt: - shard-tglu: NOTRUN -> [SKIP][103] ([fdo#109295] / [fdo#111656]) [103]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-5/igt@prime_vgem@coherency-gtt.html * igt@prime_vgem@fence-write-hang: - shard-tglu: NOTRUN -> [SKIP][104] ([fdo#109295]) [104]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-5/igt@prime_vgem@fence-write-hang.html * igt@v3d/v3d_job_submission@threaded-job-submission: - shard-rkl: NOTRUN -> [SKIP][105] ([fdo#109315]) +4 similar issues [105]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-2/igt@v3d/v3d_job_submission@threaded-job-submission.html * igt@v3d/v3d_submit_cl@valid-submission: - shard-tglu: NOTRUN -> [SKIP][106] ([fdo#109315] / [i915#2575]) +9 similar issues [106]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-7/igt@v3d/v3d_submit_cl@valid-submission.html * igt@vc4/vc4_perfmon@destroy-invalid-perfmon: - shard-tglu: NOTRUN -> [SKIP][107] ([i915#2575]) +5 similar issues [107]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-4/igt@vc4/vc4_perfmon@destroy-invalid-perfmon.html * igt@vc4/vc4_tiling@get-bad-handle: - shard-rkl: NOTRUN -> [SKIP][108] ([i915#7711]) +1 similar issue [108]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-6/igt@vc4/vc4_tiling@get-bad-handle.html #### Possible fixes #### * igt@drm_fdinfo@most-busy-check-all@rcs0: - shard-rkl: [FAIL][109] ([i915#7742]) -> [PASS][110] [109]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-rkl-6/igt@drm_fdinfo@most-busy-check-all@rcs0.html [110]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@drm_fdinfo@most-busy-check-all@rcs0.html * igt@gem_barrier_race@remote-request@rcs0: - shard-rkl: [ABORT][111] ([i915#7461] / [i915#8211]) -> [PASS][112] [111]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-rkl-2/igt@gem_barrier_race@remote-request@rcs0.html [112]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@gem_barrier_race@remote-request@rcs0.html - shard-tglu: [ABORT][113] ([i915#8211] / [i915#8234]) -> [PASS][114] [113]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-tglu-7/igt@gem_barrier_race@remote-request@rcs0.html [114]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-9/igt@gem_barrier_race@remote-request@rcs0.html * igt@gem_ctx_exec@basic-nohangcheck: - shard-tglu: [FAIL][115] ([i915#6268]) -> [PASS][116] [115]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-tglu-8/igt@gem_ctx_exec@basic-nohangcheck.html [116]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-10/igt@gem_ctx_exec@basic-nohangcheck.html * igt@gem_eio@wait-wedge-immediate: - {shard-dg1}: [DMESG-WARN][117] -> [PASS][118] +1 similar issue [117]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-dg1-19/igt@gem_eio@wait-wedge-immediate.html [118]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-dg1-18/igt@gem_eio@wait-wedge-immediate.html * igt@gem_exec_fair@basic-deadline: - shard-glk: [FAIL][119] ([i915#2846]) -> [PASS][120] [119]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-glk7/igt@gem_exec_fair@basic-deadline.html [120]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-glk2/igt@gem_exec_fair@basic-deadline.html * igt@gem_exec_suspend@basic-s4-devices@smem: - shard-tglu: [ABORT][121] ([i915#7975] / [i915#8213]) -> [PASS][122] [121]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-tglu-10/igt@gem_exec_suspend@basic-s4-devices@smem.html [122]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-5/igt@gem_exec_suspend@basic-s4-devices@smem.html * igt@gem_workarounds@suspend-resume-fd: - shard-tglu: [ABORT][123] ([i915#5122] / [i915#5251]) -> [PASS][124] [123]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-tglu-2/igt@gem_workarounds@suspend-resume-fd.html [124]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-7/igt@gem_workarounds@suspend-resume-fd.html * igt@i915_module_load@load: - {shard-dg1}: [SKIP][125] ([i915#6227]) -> [PASS][126] [125]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-dg1-18/igt@i915_module_load@load.html [126]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-dg1-14/igt@i915_module_load@load.html * igt@i915_pm_rc6_residency@rc6-idle@vcs0: - {shard-dg1}: [FAIL][127] ([i915#3591]) -> [PASS][128] [127]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-dg1-19/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html [128]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-dg1-19/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html * igt@i915_pm_rpm@modeset-lpsp: - shard-rkl: [SKIP][129] ([i915#1397]) -> [PASS][130] [129]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-rkl-2/igt@i915_pm_rpm@modeset-lpsp.html [130]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-7/igt@i915_pm_rpm@modeset-lpsp.html * igt@i915_pm_rpm@modeset-non-lpsp: - {shard-dg1}: [SKIP][131] ([i915#1397]) -> [PASS][132] [131]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-dg1-19/igt@i915_pm_rpm@modeset-non-lpsp.html [132]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-dg1-18/igt@i915_pm_rpm@modeset-non-lpsp.html * igt@i915_pm_rpm@modeset-non-lpsp-stress: - {shard-dg2}: [SKIP][133] ([i915#1397]) -> [PASS][134] [133]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-dg2-12/igt@i915_pm_rpm@modeset-non-lpsp-stress.html [134]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-dg2-7/igt@i915_pm_rpm@modeset-non-lpsp-stress.html * igt@i915_selftest@live@gt_heartbeat: - shard-glk: [DMESG-FAIL][135] ([i915#5334]) -> [PASS][136] [135]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-glk6/igt@i915_selftest@live@gt_heartbeat.html [136]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-glk7/igt@i915_selftest@live@gt_heartbeat.html * igt@i915_suspend@basic-s3-without-i915: - {shard-dg2}: [FAIL][137] ([fdo#103375]) -> [PASS][138] +1 similar issue [137]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-dg2-5/igt@i915_suspend@basic-s3-without-i915.html [138]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-dg2-3/igt@i915_suspend@basic-s3-without-i915.html * igt@kms_cursor_legacy@forked-move@pipe-b: - {shard-dg1}: [INCOMPLETE][139] ([i915#8011] / [i915#8347]) -> [PASS][140] [139]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-dg1-19/igt@kms_cursor_legacy@forked-move@pipe-b.html [140]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-dg1-18/igt@kms_cursor_legacy@forked-move@pipe-b.html * igt@kms_cursor_legacy@single-bo@pipe-b: - {shard-dg2}: [INCOMPLETE][141] ([i915#8011]) -> [PASS][142] [141]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-dg2-10/igt@kms_cursor_legacy@single-bo@pipe-b.html [142]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-dg2-3/igt@kms_cursor_legacy@single-bo@pipe-b.html * igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1: - shard-glk: [FAIL][143] ([i915#79]) -> [PASS][144] [143]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-glk8/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1.html [144]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-glk4/igt@kms_flip@flip-vs-expired-vblank@b-hdmi-a1.html * igt@syncobj_timeline@wait-for-submit-complex: - {shard-dg1}: [DMESG-WARN][145] ([i915#4391]) -> [PASS][146] +1 similar issue [145]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-dg1-19/igt@syncobj_timeline@wait-for-submit-complex.html [146]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-dg1-16/igt@syncobj_timeline@wait-for-submit-complex.html #### Warnings #### * igt@i915_pm_rc6_residency@rc6-idle@bcs0: - shard-tglu: [WARN][147] ([i915#2681]) -> [FAIL][148] ([i915#2681] / [i915#3591]) [147]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-tglu-3/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html [148]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-tglu-10/igt@i915_pm_rc6_residency@rc6-idle@bcs0.html * igt@kms_fbcon_fbt@psr: - shard-rkl: [SKIP][149] ([fdo#110189] / [i915#3955]) -> [SKIP][150] ([i915#3955]) [149]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_13312/shard-rkl-2/igt@kms_fbcon_fbt@psr.html [150]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/shard-rkl-4/igt@kms_fbcon_fbt@psr.html {name}: This element is suppressed. This means it is ignored when computing the status of the difference (SUCCESS, WARNING, or FAILURE). [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375 [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271 [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274 [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280 [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295 [fdo#109302]: https://bugs.freedesktop.org/show_bug.cgi?id=109302 [fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312 [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315 [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506 [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189 [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723 [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068 [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614 [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615 [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644 [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656 [fdo#111767]: https://bugs.freedesktop.org/show_bug.cgi?id=111767 [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825 [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827 [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072 [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397 [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825 [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839 [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937 [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190 [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346 [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437 [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527 [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575 [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587 [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672 [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681 [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842 [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846 [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856 [i915#3023]: https://gitlab.freedesktop.org/drm/intel/issues/3023 [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281 [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282 [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297 [i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323 [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359 [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458 [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555 [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591 [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637 [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638 [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689 [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708 [i915#3804]: https://gitlab.freedesktop.org/drm/intel/issues/3804 [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840 [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886 [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955 [i915#3989]: https://gitlab.freedesktop.org/drm/intel/issues/3989 [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070 [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077 [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078 [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083 [i915#4087]: https://gitlab.freedesktop.org/drm/intel/issues/4087 [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103 [i915#4235]: https://gitlab.freedesktop.org/drm/intel/issues/4235 [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270 [i915#4349]: https://gitlab.freedesktop.org/drm/intel/issues/4349 [i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391 [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525 [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538 [i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454 [i915#4579]: https://gitlab.freedesktop.org/drm/intel/issues/4579 [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613 [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885 [i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122 [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176 [i915#5190]: https://gitlab.freedesktop.org/drm/intel/issues/5190 [i915#5234]: https://gitlab.freedesktop.org/drm/intel/issues/5234 [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235 [i915#5251]: https://gitlab.freedesktop.org/drm/intel/issues/5251 [i915#5274]: https://gitlab.freedesktop.org/drm/intel/issues/5274 [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286 [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289 [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325 [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533 [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334 [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354 [i915#5493]: https://gitlab.freedesktop.org/drm/intel/issues/5493 [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784 [i915#6032]: https://gitlab.freedesktop.org/drm/intel/issues/6032 [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095 [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227 [i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268 [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301 [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658 [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768 [i915#6880]: https://gitlab.freedesktop.org/drm/intel/issues/6880 [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944 [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953 [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116 [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118 [i915#7162]: https://gitlab.freedesktop.org/drm/intel/issues/7162 [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461 [i915#7484]: https://gitlab.freedesktop.org/drm/intel/issues/7484 [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561 [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701 [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711 [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742 [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828 [i915#7892]: https://gitlab.freedesktop.org/drm/intel/issues/7892 [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79 [i915#7975]: https://gitlab.freedesktop.org/drm/intel/issues/7975 [i915#8011]: https://gitlab.freedesktop.org/drm/intel/issues/8011 [i915#8211]: https://gitlab.freedesktop.org/drm/intel/issues/8211 [i915#8213]: https://gitlab.freedesktop.org/drm/intel/issues/8213 [i915#8228]: https://gitlab.freedesktop.org/drm/intel/issues/8228 [i915#8234]: https://gitlab.freedesktop.org/drm/intel/issues/8234 [i915#8247]: https://gitlab.freedesktop.org/drm/intel/issues/8247 [i915#8292]: https://gitlab.freedesktop.org/drm/intel/issues/8292 [i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347 [i915#8502]: https://gitlab.freedesktop.org/drm/intel/issues/8502 [i915#8555]: https://gitlab.freedesktop.org/drm/intel/issues/8555 [i915#8623]: https://gitlab.freedesktop.org/drm/intel/issues/8623 [i915#8661]: https://gitlab.freedesktop.org/drm/intel/issues/8661 [i915#8708]: https://gitlab.freedesktop.org/drm/intel/issues/8708 [i915#8709]: https://gitlab.freedesktop.org/drm/intel/issues/8709 Build changes ------------- * CI: CI-20190529 -> None * IGT: IGT_7347 -> IGTPW_9247 * Piglit: piglit_4509 -> None CI-20190529: 20190529 CI_DRM_13312: 08d15de81b3b0db3c9046d2556c10b9f136cc90f @ git://anongit.freedesktop.org/gfx-ci/linux IGTPW_9247: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/index.html IGT_7347: 621c2d3115d40a1ba0b53668413ea21edf03a5ff @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit == Logs == For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9247/index.html [-- Attachment #2: Type: text/html, Size: 52231 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2023-07-04 5:42 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-06-23 11:49 [igt-dev] [PATCH v2 0/4] Handle GT and tile seperation in IGT Himal Prasad Ghimiray 2023-06-23 11:49 ` [igt-dev] [PATCH v2 1/4] lib/igt_sysfs: Add support to query number of tiles Himal Prasad Ghimiray 2023-06-26 10:24 ` Upadhyay, Tejas 2023-06-26 20:24 ` Dixit, Ashutosh 2023-06-23 11:49 ` [igt-dev] [PATCH v2 2/4] lib/igt_sysfs: Handling gt related sysfs uapi changes Himal Prasad Ghimiray 2023-06-26 10:48 ` Upadhyay, Tejas 2023-06-26 22:34 ` Dixit, Ashutosh 2023-06-27 4:22 ` Ghimiray, Himal Prasad 2023-06-27 6:02 ` Dixit, Ashutosh 2023-06-27 7:06 ` Ghimiray, Himal Prasad 2023-07-01 17:44 ` Dixit, Ashutosh 2023-07-04 5:42 ` Ghimiray, Himal Prasad 2023-06-23 11:49 ` [igt-dev] [PATCH v2 3/4] tests/xe/xe_guc_pc: Change the sysfs paths Himal Prasad Ghimiray 2023-06-26 10:49 ` Upadhyay, Tejas 2023-06-23 11:49 ` [igt-dev] [PATCH v2 4/4] tests/xe/xe_sysfs_tile_prop: adds new test to verify per tile vram addr_range Himal Prasad Ghimiray 2023-06-26 10:59 ` Upadhyay, Tejas 2023-06-26 11:20 ` Ghimiray, Himal Prasad 2023-06-23 12:44 ` [igt-dev] ✓ Fi.CI.BAT: success for Handle GT and tile seperation in IGT Patchwork 2023-06-23 18:13 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox