[igt-dev] [PATCH i-g-t v2] lib/xe_query: fix vram_memory() and vram_if_possible()
Matthew Auld
matthew.auld at intel.com
Thu Apr 6 08:21:57 UTC 2023
vram_memory() is meant to return VRAM if supported. If we call this on
igpu it should return zero. There is at least one user relying on this
in xe_mmap at vram, where we want to skip if the mask here is zero.
vram_if_possible() should account for the per GT VRAM when returning
the mask. Currently it just returns the mask for all VRAM instances.
v2 (Niranjana):
- Squash into a single patch
- Fold in the differences from the version by Matt Brost & Zbigniew
Reported-by: Gwan-gyeong Mun <gwan-gyeong.mun at intel.com>
Signed-off-by: Matthew Auld <matthew.auld at intel.com>
Cc: Niranjana Vishwanathapura <niranjana.vishwanathapura at intel.com>
Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
Cc: Matthew Brost <matthew.brost at intel.com>
---
lib/xe/xe_query.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
diff --git a/lib/xe/xe_query.c b/lib/xe/xe_query.c
index 24a258a5e..2b627a78a 100644
--- a/lib/xe/xe_query.c
+++ b/lib/xe/xe_query.c
@@ -380,7 +380,7 @@ uint64_t vram_memory(int fd, int gt)
igt_assert(xe_dev);
igt_assert(gt >= 0 && gt < xe_dev->number_gt);
- return native_region_for_gt(xe_dev->gts, gt);
+ return xe_has_vram(fd) ? native_region_for_gt(xe_dev->gts, gt) : 0;
}
/**
@@ -393,11 +393,7 @@ uint64_t vram_memory(int fd, int gt)
*/
uint64_t vram_if_possible(int fd, int gt)
{
- uint64_t regions = all_memory_regions(fd);
- uint64_t system_memory = regions & 0x1;
- uint64_t vram = regions & (~0x1);
-
- return vram ? vram : system_memory;
+ return vram_memory(fd, gt) ?: system_memory(fd);
}
/**
--
2.39.2
More information about the igt-dev
mailing list