2010-04-16 16 views
0

我拴了一个过程,它们是如下的行。我想知道kaio的定义,但是kaio没有手动输入,所以我是否可以获得定义?man kaio:没有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 

回答

2

an article一下:

什么KAIO呢,顾名思义,就是通过用户线程执行内核中,而不是在用户空间的异步I/O。 I/O队列在操作系统中创建和管理。事件的基本顺序如下:当应用程序调用aioread(3)或aiowrite(3)时,会输入相应的库例程。一旦进入,图书馆首先尝试通过kaio处理请求。执行一个kaio初始化例程,该例程创建一个“清理”线程,该线程旨在确保在异步I/O进程期间没有剩余的已分配但未释放的内存段。完成后,将调用kaio,此时将进行测试以确定kaio是否支持所请求的I/O。

Kaio实现为可加载内核模块/ kernel/sys/kaio,并在第一次调用异步I/O时加载。你可以决定是否模块被加载或不modinfo命令(1M):

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

我得到了答案:

它在文件中定义/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 
     */