Changes between Version 13 and Version 14 of kernel_synchro
- Timestamp:
- Mar 26, 2020, 2:49:18 PM (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
kernel_synchro
v13 v14 56 56 Each busylock (remote or local) contains a "type" field defining the specific resource protected by this lock, that is a non-zero value defined at lock initialization. 57 57 58 When the DEBUG_BUSYLOCK parameter is set to a non-zero value in the kernel_config.h file, two optional debug mechanism are activated, thanks to conditional compilation.58 When the DEBUG_BUSYLOCK parameter is set to a non-zero value (in the kernel_config.h file), two optional debug mechanism are activated, thanks to conditional compilation. 59 59 60 1. Each thread contains - besides the ''busylocks'' counter - an optional ''busylocks_root'' field, that is the root of an embedded xlist of (local or remote) busylocks hold by a given thread at a given time. This list is implemented by an optional ''xlist'' field in the busy lock descriptor. It is dynamically updated by the ''busylock_acquire()'' and ''busylock_release()'' functions. The set of taken busylocks is printed in the error message, when the scheduler detects that a descheduling thread is holding one or several busylocks. This list can also be beprinted through the ''idbg'' interactive debugger, for any thread identified by its (pid,trdid).60 1. Each thread contains - besides the ''busylocks'' counter - an optional ''busylocks_root'' field, that is the root of an embedded xlist of (local or remote) busylocks hold by a given thread at a given time. This list is implemented by an optional ''xlist'' field in the busy lock descriptor. It is dynamically updated by the ''busylock_acquire()'' and ''busylock_release()'' functions. The set of taken busylocks is printed in the error message, when the scheduler detects that a descheduling thread is holding one or several busylocks. This list can also be printed through the ''idbg'' interactive debugger, for any thread identified by its (pid,trdid). 61 61 62 2. Moreover, when the DEBUG_BUSYLOCK is set, it is possible to trace all busylock_acquire() / busylock_release() made by the thread, identified by the DEBUG_BUSYLOCK_PID and DEBUG_BUSYLOCK_TRDID parameters.62 2. Moreover, when DEBUG_BUSYLOCK is set, all busylock_acquire() / busylock_release() made by the thread, identified by the DEBUG_BUSYLOCK_PID and DEBUG_BUSYLOCK_TRDID parameters are traced on kernel TXT0. 63 63 64 64