| 
					
				 | 
			
			
				@@ -29,39 +29,6 @@ extern "C" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #endif 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   @defgroup API_SC_Hypervisor_usage Scheduling Context Hypervisor - Regular usage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   There is a single hypervisor that is in charge of resizing contexts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   and the resizing strategy is chosen at the initialization of the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   hypervisor. A single resize can be done at a time. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   The Scheduling Context Hypervisor Plugin provides a series of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   performance counters to StarPU. By incrementing them, StarPU can 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   help the hypervisor in the resizing decision making process. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   The function sc_hypervisor_init() initializes the hypervisor to use 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   the strategy provided as parameter and creates the performance 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   counters (see starpu_sched_ctx_performance_counters). These 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   performance counters represent actually some callbacks that will be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   used by the contexts to notify the information needed by the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   hypervisor. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Scheduling Contexts that have to be resized by the hypervisor must 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   be first registered to the hypervisor using the function 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   sc_hypervisor_register_ctx() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   Note: The Hypervisor is actually a worker that takes this role once 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   certain conditions trigger the resizing process (there is no 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   additional thread assigned to the hypervisor). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   @{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   synchronise the hypervisor when several workers try to update its 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-   information 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-extern starpu_pthread_mutex_t act_hypervisor_mutex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ingroup API_SC_Hypervisor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    Methods to implement a hypervisor resizing policy. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -145,6 +112,39 @@ struct sc_hypervisor_policy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   @defgroup API_SC_Hypervisor_usage Scheduling Context Hypervisor - Regular usage 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   There is a single hypervisor that is in charge of resizing contexts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   and the resizing strategy is chosen at the initialization of the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   hypervisor. A single resize can be done at a time. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   The Scheduling Context Hypervisor Plugin provides a series of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   performance counters to StarPU. By incrementing them, StarPU can 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   help the hypervisor in the resizing decision making process. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   The function sc_hypervisor_init() initializes the hypervisor to use 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   the strategy provided as parameter and creates the performance 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   counters (see starpu_sched_ctx_performance_counters). These 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   performance counters represent actually some callbacks that will be 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   used by the contexts to notify the information needed by the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   hypervisor. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   Scheduling Contexts that have to be resized by the hypervisor must 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   be first registered to the hypervisor using the function 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   sc_hypervisor_register_ctx() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   Note: The Hypervisor is actually a worker that takes this role once 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   certain conditions trigger the resizing process (there is no 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   additional thread assigned to the hypervisor). 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   @{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   synchronise the hypervisor when several workers try to update its 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+   information 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+extern starpu_pthread_mutex_t act_hypervisor_mutex; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    Start the hypervisor with the given policy 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 void* sc_hypervisor_init(struct sc_hypervisor_policy *policy); 
			 |