Split drm_xe_query_gt out of the gt list one in order to better document it. No functional change at this point. Any actual change to the uapi should come in follow-up additions. v2: s/maks/mask
Showing the changes to include/uapi (1 of 1 file). Show all
Unified · Split
| @@ -334,6 +334,47 @@ struct drm_xe_query_config { · 333 unmodified lines | ||
| 334 | 334 | __u64 info[]; |
| 335 | 335 | }; |
| 336 | 336 | |
| 337 | +/** | |
| 338 | + * struct drm_xe_query_gt - describe an individual GT. | |
| 339 | + * | |
| 340 | + * To be used with drm_xe_query_gts, which will return a list with all the | |
| 341 | + * existing GT individual descriptions. | |
| 342 | + * Graphics Technology (GT) is a subset of a GPU/tile that is responsible for | |
| 343 | + * implementing graphics and/or media operations. | |
| 344 | + */ | |
| 345 | +struct drm_xe_query_gt { | |
| 346 | +#define XE_QUERY_GT_TYPE_MAIN 0 | |
| 347 | +#define XE_QUERY_GT_TYPE_REMOTE 1 | |
| 348 | +#define XE_QUERY_GT_TYPE_MEDIA 2 | |
| 349 | + /** @type: GT type: Main, Remote, or Media */ | |
| 350 | + __u16 type; | |
| 351 | + /** @instance: Instance of this GT in the GT list */ | |
| 352 | + __u16 instance; | |
| 353 | + /** @clock_freq: A clock frequency for timestamp */ | |
| 354 | + __u32 clock_freq; | |
| 355 | + /** @features: Reserved for future information about GT features */ | |
| 356 | + __u64 features; | |
| 357 | + /** | |
| 358 | + * @native_mem_regions: Bit mask of instances from | |
| 359 | + * drm_xe_query_mem_usage that lives on the same GPU/Tile and have | |
| 360 | + * direct access. | |
| 361 | + */ | |
| 362 | + __u64 native_mem_regions; | |
| 363 | + /** | |
| 364 | + * @slow_mem_regions: Bit mask of instances from | |
| 365 | + * drm_xe_query_mem_usage that this GT can indirectly access, although | |
| 366 | + * they live on a different GPU/Tile. | |
| 367 | + */ | |
| 368 | + __u64 slow_mem_regions; | |
| 369 | + /** | |
| 370 | + * @inaccessible_mem_regions: Bit mask of instances from | |
| 371 | + * drm_xe_query_mem_usage that is not accessible by this GT at all. | |
| 372 | + */ | |
| 373 | + __u64 inaccessible_mem_regions; | |
| 374 | + /** @reserved: Reserved */ | |
| 375 | + __u64 reserved[8]; | |
| 376 | +}; | |
| 377 | + | |
| 337 | 378 | /** |
| 338 | 379 | * struct drm_xe_query_gts - describe GTs |
| 339 | 380 | * |
| @@ -344,30 +385,10 @@ struct drm_xe_query_config { · 4 unmodified lines | ||
| 344 | 385 | struct drm_xe_query_gts { |
| 345 | 386 | /** @num_gt: number of GTs returned in gts */ |
| 346 | 387 | __u32 num_gt; |
| 347 | − | |
| 348 | 388 | /** @pad: MBZ */ |
| 349 | 389 | __u32 pad; |
| 350 | − | |
| 351 | − /** | |
| 352 | − * @gts: The GTs returned for this device | |
| 353 | − * | |
| 354 | − * TODO: convert drm_xe_query_gt to proper kernel-doc. | |
| 355 | − * TODO: Perhaps info about every mem region relative to this GT? e.g. | |
| 356 | − * bandwidth between this GT and remote region? | |
| 357 | − */ | |
| 358 | − struct drm_xe_query_gt { | |
| 359 | −#define XE_QUERY_GT_TYPE_MAIN 0 | |
| 360 | −#define XE_QUERY_GT_TYPE_REMOTE 1 | |
| 361 | −#define XE_QUERY_GT_TYPE_MEDIA 2 | |
| 362 | − __u16 type; | |
| 363 | − __u16 instance; | |
| 364 | − __u32 clock_freq; | |
| 365 | − __u64 features; | |
| 366 | − __u64 native_mem_regions; /* bit mask of instances from drm_xe_query_mem_usage */ | |
| 367 | − __u64 slow_mem_regions; /* bit mask of instances from drm_xe_query_mem_usage */ | |
| 368 | − __u64 inaccessible_mem_regions; /* bit mask of instances from drm_xe_query_mem_usage */ | |
| 369 | − __u64 reserved[8]; | |
| 370 | − } gts[]; | |
| 390 | + /** @gts: The GT list returned for this device */ | |
| 391 | + struct drm_xe_query_gt gts[]; | |
| 371 | 392 | }; |
| 372 | 393 | |
| 373 | 394 | /** |