[igt-dev] [PATCH v3 1/3] igt/vc4: Add a helper function to mark BOs purgeable

Boris Brezillon boris.brezillon at bootlin.com
Wed Feb 7 09:09:08 UTC 2018


From: Boris Brezillon <boris.brezillon at free-electrons.com>

v2: Rebase on get/set_tiling helpers (by anholt).

Signed-off-by: Boris Brezillon <boris.brezillon at free-electrons.com>
Signed-off-by: Eric Anholt <eric at anholt.net>
Reviewed-by: Eric Anholt <eric at anholt.net>
---
 lib/igt_vc4.c | 12 ++++++++++++
 lib/igt_vc4.h |  1 +
 2 files changed, 13 insertions(+)

diff --git a/lib/igt_vc4.c b/lib/igt_vc4.c
index 5347af8df400..238bf26bd6bb 100644
--- a/lib/igt_vc4.c
+++ b/lib/igt_vc4.c
@@ -149,3 +149,15 @@ uint64_t igt_vc4_get_tiling(int fd, uint32_t handle)
 
 	return get.modifier;
 }
+
+bool igt_vc4_purgeable_bo(int fd, int handle, bool purgeable)
+{
+	struct drm_vc4_gem_madvise arg = {
+		.handle = handle,
+		.madv = purgeable ? VC4_MADV_DONTNEED : VC4_MADV_WILLNEED,
+	};
+
+	do_ioctl(fd, DRM_IOCTL_VC4_GEM_MADVISE, &arg);
+
+	return arg.retained;
+}
diff --git a/lib/igt_vc4.h b/lib/igt_vc4.h
index d1740b93f1fc..2c016b16debd 100644
--- a/lib/igt_vc4.h
+++ b/lib/igt_vc4.h
@@ -27,6 +27,7 @@
 uint32_t igt_vc4_get_cleared_bo(int fd, size_t size, uint32_t clearval);
 int igt_vc4_create_bo(int fd, size_t size);
 void *igt_vc4_mmap_bo(int fd, uint32_t handle, uint32_t size, unsigned prot);
+bool igt_vc4_purgeable_bo(int fd, int handle, bool purgeable);
 
 void igt_vc4_set_tiling(int fd, uint32_t handle, uint64_t modifier);
 uint64_t igt_vc4_get_tiling(int fd, uint32_t handle);
-- 
2.14.1



More information about the igt-dev mailing list