Skip to contentSkip to conversation

tests/prime_self_import: further fix object counts

PATCH New Thomas Daniel 1 participant 1 message Jan 19, 2015

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 tests/prime_self_import: further fix object counts

A previous commit:

commit 2f2c491cf3167befe7c79e4b17afb4f6284dfc84

Author: Mika Kuoppala <[email protected]>
Date:   Fri Mar 28 10:52:46 2014 +0200

lib/drmtest: don't dup quiescent fd

introduced a regression for drm object leak checking. A following commit:

commit 8741c2289f17e9bcb740a01cad4764a71c918eea

Author: Mika Kuoppala <[email protected]>
Date:   Wed May 7 16:46:19 2014 +0300

tests/gem_flink_race,prime_self_import: fix object counts

fixed the regression for some cases but missed the export-vs-gem_close-race subtest. Note that test behaviour depends on whether the subtest is run as part of the whole prime_self_import test (fail), or as a single subtest (pass). Using execlists on Gen8+ reverses the pass/fail due to lazy context allocation which is presumably why this has now been noticed.

This commit applies the same fix to the export-vs-gem_close-race subtest.

Cc: Mika Kuoppala <[email protected]>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87627

---
 tests/prime_self_import.c |   10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
tests/prime_self_import.c +9 -1
index 1eb5a04..ded92cf 100644
@@ -342,15 +342,20 @@ static void test_export_close_race(void)
 	int fd;
 	int obj_count;
 	void *status;
+	int fake;
 
 	num_threads = sysconf(_SC_NPROCESSORS_ONLN);
 
 	threads = calloc(num_threads, sizeof(pthread_t));
 
-	fd = drm_open_any();
+	/* Allocate exit handler fds in here so that we dont screw
+	 * up the counts */
+	fake = drm_open_any();
 
 	obj_count = get_object_count();
 
+	fd = drm_open_any();
+
 	for (i = 0; i < num_threads; i++) {
 		r = pthread_create(&threads[i], NULL,
 				   thread_fn_export_vs_close,
@@ -372,6 +377,9 @@ static void test_export_close_race(void)
 	obj_count = get_object_count() - obj_count;
 
 	igt_info("leaked %i objects\n", obj_count);
+
+	close(fake);
+
 	igt_assert_eq(obj_count, 0);
 }
 
Signature · 6 lines
1.7.9.5

_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx