200 | | For multi-channels devices, there is one channel device (called chdev) per channel. For each chdev, almost-mkh creates a dedicate kernel DEV thread, that is in charge of executing all requests targeting this ''chdev'', registered in a dedicated associated waiting queue. The chdev API is defined in the [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/chdev.h almos-mkh/kernel/kern/chdev.h] and [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/chdev.c almos-mkh/kernel/kern/chdev.c] files. |
201 | | |
202 | | For internal (replicated) devices, the chdev descriptors are allocated in the local cluster. For external (shared) devices, the chdev descriptors are regularly distributed on all clusters. These external chdev are indexed by a global index, and the host cluster is computed from this index by a modulo. |
| 200 | The almos-mkh policy regarding peripherals and I/O operations is described [wiki:io_operations here]. |
| 201 | |
| 202 | For multi-channels devices, there is one channel device (called chdev) per channel. For each chdev, almost-mkh creates a dedicated kernel DEV thread, that is in charge of executing all requests targeting this ''chdev''. All these requests are registered in a waiting queue rooted in the ''chdev''. The chdev API is defined in the [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/chdev.h almos-mkh/kernel/kern/chdev.h] and [https://www-soc.lip6.fr/trac/almos-mkh/browser/trunk/kernel/kern/chdev.c almos-mkh/kernel/kern/chdev.c] files. |
| 203 | |
| 204 | For internal (replicated) devices, the ''chdev'' descriptors are allocated in the local cluster. For external (shared) devices, the chdev descriptors are regularly distributed on all clusters. These external chdev are indexed by a global index, and the host cluster is computed from this index by a modulo. |