Changeset 610 for trunk/kernel/mm/vmm.h
- Timestamp:
- Dec 27, 2018, 7:38:58 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/kernel/mm/vmm.h
r595 r610 158 158 bool_t mapping ); 159 159 160 /******************************************************************************************* 160 /********************************************************************************************* 161 161 * This function adds a vseg descriptor in the VSL of a given VMM, 162 162 * and updates the vmm field in the vseg descriptor. 163 163 * It takes the lock protecting VSL. 164 ******************************************************************************************* 164 ********************************************************************************************* 165 165 * @ vmm : pointer on the VMM 166 166 * @ vseg : pointer on the vseg descriptor 167 ****************************************************************************************** /167 ********************************************************************************************/ 168 168 void vmm_vseg_attach( struct vmm_s * vmm, 169 169 vseg_t * vseg ); 170 170 171 /******************************************************************************************* 171 /********************************************************************************************* 172 172 * This function removes a vseg descriptor from the set of vsegs controlled by a given VMM, 173 173 * and updates the vmm field in the vseg descriptor. No memory is released. 174 174 * It takes the lock protecting VSL. 175 ******************************************************************************************* 175 ********************************************************************************************* 176 176 * @ vmm : pointer on the VMM 177 177 * @ vseg : pointer on the vseg descriptor 178 ****************************************************************************************** /178 ********************************************************************************************/ 179 179 void vmm_vseg_detach( struct vmm_s * vmm, 180 180 vseg_t * vseg ); … … 326 326 * (d) if the removed region cut the vseg in three parts, it is modified, and a new 327 327 * vseg is created with same type. 328 * FIXME [AG] this function mustbe called by a thread running in the reference cluster,329 * and the VMM mustbe updated in all process descriptors copies.328 * FIXME [AG] this function should be called by a thread running in the reference cluster, 329 * and the VMM should be updated in all process descriptors copies. 330 330 ********************************************************************************************* 331 331 * @ process : pointer on process descriptor … … 357 357 /********************************************************************************************* 358 358 * This function is called by the generic exception handler in case of page-fault event, 359 * detected for a given <vpn> in a given <process> in any cluster.359 * detected for a given <vpn>. The <process> argument is used to access the relevant VMM. 360 360 * It checks the missing VPN and returns an user error if it is not in a registered vseg. 361 361 * For a legal VPN, there is actually 3 cases: … … 370 370 * on vseg type, and updates directly (without RPC) the local GPT and the reference GPT. 371 371 * Other GPT copies will updated on demand. 372 * In the three cases, concurrent accesses to the GPT are handled, thanks to the372 * Concurrent accesses to the GPT are handled, thanks to the 373 373 * remote_rwlock protecting each GPT copy. 374 374 ********************************************************************************************* 375 * @ process : pointer on local process descriptor copy.376 * @ vpn 375 * @ process : local pointer on local process. 376 * @ vpn : VPN of the missing PTE. 377 377 * @ returns EXCP_NON_FATAL / EXCP_USER_ERROR / EXCP_KERNEL_PANIC after analysis 378 378 ********************************************************************************************/ … … 381 381 382 382 /********************************************************************************************* 383 * This function is called by the generic exception handler in case of copy-on-writeevent,384 * detected for a given <vpn> in a given <process> in any cluster.383 * This function is called by the generic exception handler in case of WRITE violation event, 384 * detected for a given <vpn>. The <process> argument is used to access the relevant VMM. 385 385 * It returns a kernel panic if VPN is not in a registered vseg or is not mapped. 386 386 * For a legal mapped vseg there is two cases: … … 399 399 * Finally it calls the vmm_global_update_pte() function to reset the COW flag and set 400 400 * the WRITE flag in all the GPT copies, using a RPC if the reference cluster is remote. 401 * In both cases, concurrent accesses to the GPT are handled, thanks to the402 * remote_rwlock protecting each GPT copy.401 * In both cases, concurrent accesses to the GPT are protected by the remote_rwlock 402 * atached to the GPT copy in VMM. 403 403 ********************************************************************************************* 404 404 * @ process : pointer on local process descriptor copy.
Note: See TracChangeset
for help on using the changeset viewer.