77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| ==============================================================
 | |
| Test Suite for the Control Group Freezer and Signal Subsystems
 | |
| ==============================================================
 | |
| Author: Matt Helsley
 | |
| Date: June, 2008
 | |
| Last update: January 19th, 2009
 | |
| 
 | |
| About:
 | |
| ------
 | |
| These tests exercise the freezer and signal subsystems (aka controllers)
 | |
| available since kernel 2.6.28 or later.
 | |
| 
 | |
| These tests exercise the freezer control group controller. This controller is
 | |
| a useful for implementing container checkpointing or if you wish to gradually
 | |
| freeze tasks in cgroups before doing a suspend.
 | |
| 
 | |
| The common case is embodied in the freeze_thaw.sh test file. However,
 | |
| the scripts are also designed to test a few obscure cases such as:
 | |
| 	freeze self -- freeze the control group that the current process is
 | |
| 		in
 | |
| 	freeze cancellation -- freeze but then backout of the freeze processing
 | |
| 		and issue a "thaw" command before reaching the frozen state
 | |
| 	signalling freezing/frozen tasks -- this should delay delivery of the
 | |
| 		signal until the task is unfrozen
 | |
| 	vfork -- The vfork system call introduces an obscure special case for
 | |
| 		the freezer kernel code. This test case attempts to trigger any
 | |
| 		unanticipated corner cases involving vfork.
 | |
| 
 | |
| 
 | |
| NOTES:
 | |
| 
 | |
| 	Using the cgroup freezer prevents the tasks from being automatically
 | |
| 		woken up upon a "Power Management Resume". You will need to
 | |
| 		manually unfreeze cgroups.
 | |
| 
 | |
| 	These tests assume that most of the library functions in
 | |
| 	libcgroup_subsys take much less than $sample_sleep time to execute. If
 | |
| 	this assumption is incorrect then many of these tests may fail in
 | |
| 	unusual ways. So make sure $sample_sleep is a "reasonable" amount of
 | |
| 	time.
 | |
| 
 | |
| Building:
 | |
| ---------
 | |
| 
 | |
| Run the command line:
 | |
| 	make all
 | |
| 
 | |
| 
 | |
| Installing:
 | |
| -----------
 | |
| 
 | |
| Run the command line:
 | |
| 
 | |
| 
 | |
| Cleaning:
 | |
| ---------
 | |
| 
 | |
| Run the command line:
 | |
| 
 | |
| 	make clean
 | |
| 
 | |
| 
 | |
| Running:
 | |
| --------
 | |
| 
 | |
| Run the command line:
 | |
| 
 | |
| 	./run.sh
 | |
| 
 | |
| Results:
 | |
| --------
 | |
| 
 | |
| The results should show up as PASS/FAIL in the LTP logs for each script. The
 | |
| output frequently will be more specific (beyond which test script failed)
 | |
| about where and what failure occurred.
 | |
| 
 |