[PATCH 3/4 v2] prime_self_import: Assure no pending requests before object counting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



From: Oscar Mateo <oscar.mateo@xxxxxxxxx>

We don't want a previously used object to be freed in the middle of a
before/after object counting operation (or we would get a "-1 objects
leaked" message). We have seen this happening, e.g., when a context
from a previous run dies, but its backing object is alive waiting for
a retire_work to kick in.

v2: Use igt_debugfs facilities for drop cache.
v3: Move igt_drop_caches_set() call inside get_object_count() to make
it clearer why we want this.

Signed-off-by: Oscar Mateo <oscar.mateo@xxxxxxxxx>
Cc: Ben Widawsky <ben@xxxxxxxxxxxx>
---
 tests/prime_self_import.c |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/tests/prime_self_import.c b/tests/prime_self_import.c
index 2edc1f8..2566af9 100644
--- a/tests/prime_self_import.c
+++ b/tests/prime_self_import.c
@@ -46,6 +46,7 @@
 #include "drm.h"
 #include "i915_drm.h"
 #include "drmtest.h"
+#include "igt_debugfs.h"
 
 #define BO_SIZE (16*1024)
 
@@ -218,6 +219,8 @@ static int get_object_count(void)
 	int device = drm_get_card();
 	char *path;
 
+	igt_drop_caches_set(DROP_RETIRE);
+
 	ret = asprintf(&path, "/sys/kernel/debug/dri/%d/i915_gem_objects", device);
 	igt_assert(ret != -1);
 
@@ -252,10 +255,12 @@ static void test_reimport_close_race(void)
 	pthread_t *threads;
 	int r, i, num_threads;
 	int fds[2];
-	int obj_count = get_object_count();
+	int obj_count;
 	void *status;
 	uint32_t handle;
 
+	obj_count = get_object_count();
+
 	num_threads = sysconf(_SC_NPROCESSORS_ONLN);
 
 	threads = calloc(num_threads, sizeof(pthread_t));
@@ -330,9 +335,11 @@ static void test_export_close_race(void)
 	pthread_t *threads;
 	int r, i, num_threads;
 	int fd;
-	int obj_count = get_object_count();
+	int obj_count;
 	void *status;
 
+	obj_count = get_object_count();
+
 	num_threads = sysconf(_SC_NPROCESSORS_ONLN);
 
 	threads = calloc(num_threads, sizeof(pthread_t));
-- 
1.7.9.5

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux