2010-04-16 7 views
0

J'ai bridé un processus, et ce sont des lignes comme ci-dessous. Et je veux connaître la définition de kaio, mais il n'y a pas d'entrée manuelle pour kaio, alors est-ce que je peux avoir la définition?man kaio: Aucune entrée manuelle pour kaio

 

/1:  kaio(AIOWRITE, 259, 0x3805B2A00, 8704, 0x099C9E000755D3C0) = 0 
/1:  kaio(AIOWRITE, 259, 0x380CF9200, 14336, 0x099CC0000755D5B8) = 0 
/1:  kaio(AIOWRITE, 259, 0x381573600, 8704, 0x099CF8000755D7B0) = 0 
/1:  kaio(AIOWRITE, 259, 0x381ACA600, 8192, 0x099D1A000755D9A8) = 0 
/1:  kaio(AIOWAIT, 0xFFFFFFFF7FFFD620)    = 4418032576 
/1:    timeout: 600.000000 sec 
/1:  kaio(AIOWAIT, 0xFFFFFFFF7FFFD620)    = 4418033080 
/1:    timeout: 600.000000 sec 
/1:  kaio(AIOWAIT, 0xFFFFFFFF7FFFD620)    = 4418033584 
/1:    timeout: 600.000000 sec 

Répondre

2

De an article à ce sujet:

Qu'est-ce que Kaio ne, comme son nom l'indique, est la mise en œuvre d'E/S async à l'intérieur du noyau plutôt que dans l'espace utilisateur via threads utilisateur. La file d'attente d'E/S est créée et gérée dans le système d'exploitation. La séquence de base des événements est la suivante: Lorsqu'une application appelle aioread (3) ou aiowrite (3), la routine de bibliothèque correspondante est entrée. Une fois entrée, la bibliothèque essaie d'abord de traiter la requête via kaio. Une routine d'initialisation kaio est exécutée, ce qui crée un thread de "nettoyage", qui est destiné à garantir qu'il n'y a pas de segments de mémoire restants qui ont été alloués mais non libérés pendant le processus d'E/S asynchrone. Une fois cela terminé, kaio est appelé, à quel point un test est effectué pour déterminer si kaio est supporté pour les E/S demandées. Kaio est implémenté en tant que module noyau chargeable,/kernel/sys/kaio, et est chargé la première fois qu'une E/S asynchrone est appelée. Vous pouvez déterminer si le module est chargé ou non avec modinfo (1M):

fawlty> modinfo | grep kaio 
105 608c4000 2efd 178 1 kaio (kernel Async I/O) 
fawlty> 
0

Je reçois la réponse:

il est défini dans le fichier /usr/include/sys/syscall.h

 
#define SYS_kaio    178 
     /* 
     * subcodes: 
     *  aioread(...) :: kaio(AIOREAD, ...) 
     *  aiowrite(...) :: kaio(AIOWRITE, ...) 
     *  aiowait(...) :: kaio(AIOWAIT, ...) 
     *  aiocancel(...) :: kaio(AIOCANCEL, ...) 
     *  aionotify()  :: kaio(AIONOTIFY) 
     *  aioinit()  :: kaio(AIOINIT) 
     *  aiostart()  :: kaio(AIOSTART) 
     *  see 
     */ 
Questions connexes