mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-04 12:07:12 +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 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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user