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 | __u64 info[]; | 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 | * struct drm_xe_query_gts - describe GTs | 379 | * struct drm_xe_query_gts - describe GTs |
| 339 | * | 380 | * |
| @@ -344,30 +385,10 @@ struct drm_xe_query_config { · 4 unmodified lines | |||
| 344 | struct drm_xe_query_gts { | 385 | struct drm_xe_query_gts { |
| 345 | /** @num_gt: number of GTs returned in gts */ | 386 | /** @num_gt: number of GTs returned in gts */ |
| 346 | __u32 num_gt; | 387 | __u32 num_gt; |
| 347 | |||
| 348 | /** @pad: MBZ */ | 388 | /** @pad: MBZ */ |
| 349 | __u32 pad; | 389 | __u32 pad; |
| 350 | 390 | /** @gts: The GT list returned for this device */ | |
| 351 | /** | 391 | struct drm_xe_query_gt gts[]; |
| 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[]; | ||
| 371 | }; | 392 | }; |
| 372 | 393 | ||
| 373 | /** | 394 | /** |