mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-09 17:06:14 +00:00
tests/prime_self_import: further fix object counts
A previous commit: commit 2f2c491cf3167befe7c79e4b17afb4f6284dfc84 Author: Mika Kuoppala <mika.kuoppala@intel.com> 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 <mika.kuoppala@intel.com> 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 <mika.kuoppala@intel.com> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=87627 Signed-off-by: Thomas Daniel <thomas.daniel@intel.com> Reviewed-by: Mika Kuoppala <mika.kuoppala@intel.com> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
This commit is contained in:
parent
7848d21472
commit
51d87b8049
@ -342,15 +342,20 @@ static void test_export_close_race(void)
|
|||||||
int fd;
|
int fd;
|
||||||
int obj_count;
|
int obj_count;
|
||||||
void *status;
|
void *status;
|
||||||
|
int fake;
|
||||||
|
|
||||||
num_threads = sysconf(_SC_NPROCESSORS_ONLN);
|
num_threads = sysconf(_SC_NPROCESSORS_ONLN);
|
||||||
|
|
||||||
threads = calloc(num_threads, sizeof(pthread_t));
|
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();
|
obj_count = get_object_count();
|
||||||
|
|
||||||
|
fd = drm_open_any();
|
||||||
|
|
||||||
for (i = 0; i < num_threads; i++) {
|
for (i = 0; i < num_threads; i++) {
|
||||||
r = pthread_create(&threads[i], NULL,
|
r = pthread_create(&threads[i], NULL,
|
||||||
thread_fn_export_vs_close,
|
thread_fn_export_vs_close,
|
||||||
@ -372,6 +377,9 @@ static void test_export_close_race(void)
|
|||||||
obj_count = get_object_count() - obj_count;
|
obj_count = get_object_count() - obj_count;
|
||||||
|
|
||||||
igt_info("leaked %i objects\n", obj_count);
|
igt_info("leaked %i objects\n", obj_count);
|
||||||
|
|
||||||
|
close(fake);
|
||||||
|
|
||||||
igt_assert_eq(obj_count, 0);
|
igt_assert_eq(obj_count, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user