mirror of
				https://github.com/tiagovignatti/intel-gpu-tools.git
				synced 2025-11-03 19:47:15 +00:00 
			
		
		
		
	lib: adjust oom_score
This way the igt test will always be killed first (hopefully), preventing mayhem when one of the memory thrashing tests treatens to take down the entire system. To avoid any burden on test writers we adjust the oom score on drm_open, any of the fork helpers and subtest init. That should cover everything. v2: Fix it up. Cc: Ben Widawsky <ben@bwidawsk.net> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
		
							parent
							
								
									4697cf4286
								
							
						
					
					
						commit
						2d1119dfc0
					
				@ -204,6 +204,16 @@ int drm_get_card(void)
 | 
			
		||||
	return -1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void oom_adjust_for_doom(void)
 | 
			
		||||
{
 | 
			
		||||
	int fd;
 | 
			
		||||
	const char always_kill[] = "1000";
 | 
			
		||||
 | 
			
		||||
	fd = open("/proc/self/oom_score_adj", O_WRONLY);
 | 
			
		||||
	igt_assert(fd != -1);
 | 
			
		||||
	igt_assert(write(fd, always_kill, sizeof(always_kill)) == sizeof(always_kill));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/** Open the first DRM device we can find, searching up to 16 device nodes */
 | 
			
		||||
static int __drm_open_any(void)
 | 
			
		||||
{
 | 
			
		||||
@ -222,6 +232,8 @@ static int __drm_open_any(void)
 | 
			
		||||
		fd = -1;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	oom_adjust_for_doom();
 | 
			
		||||
 | 
			
		||||
	return fd;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -251,6 +263,8 @@ static int __drm_open_any_render(void)
 | 
			
		||||
		return fd;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	oom_adjust_for_doom();
 | 
			
		||||
 | 
			
		||||
	return fd;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -844,6 +858,7 @@ int igt_subtest_init_parse_opts(int argc, char **argv,
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	igt_install_exit_handler(check_igt_exit);
 | 
			
		||||
	oom_adjust_for_doom();
 | 
			
		||||
 | 
			
		||||
out:
 | 
			
		||||
	return ret;
 | 
			
		||||
@ -1115,6 +1130,7 @@ bool __igt_fork_helper(struct igt_helper_process *proc)
 | 
			
		||||
	case 0:
 | 
			
		||||
		exit_handler_count = 0;
 | 
			
		||||
		reset_helper_process_list();
 | 
			
		||||
		oom_adjust_for_doom();
 | 
			
		||||
 | 
			
		||||
		return true;
 | 
			
		||||
	default:
 | 
			
		||||
@ -1197,6 +1213,7 @@ bool __igt_fork(void)
 | 
			
		||||
		test_child = true;
 | 
			
		||||
		exit_handler_count = 0;
 | 
			
		||||
		reset_helper_process_list();
 | 
			
		||||
		oom_adjust_for_doom();
 | 
			
		||||
 | 
			
		||||
		return true;
 | 
			
		||||
	default:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user