0

我捆绑了一个过程,它们如下所示。而且我想知道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:开奥(AIOWAIT,0xFFFFFFFF7FFFD620)= 4418032576
/1:超时:600.000000 秒
/1:开奥(AIOWAIT,0xFFFFFFFF7FFFD620)= 4418033080
/1:超时:600.000000 秒
/1:开奥(AIOWAIT,0xFFFFFFFF7FFFD620)= 4418033584
/1:超时:600.000000 秒
4

2 回答 2

3

一篇关于它的文章:

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

Kaio 实现为可加载内核模块 /kernel/sys/kaio,并在第一次调用异步 I/O 时加载。您可以使用 modinfo(1M) 确定模块是否已加载:

fawlty> modinfo | grep kaio 
105 608c4000   2efd 178   1  kaio (kernel Async I/O) 
fawlty> 
于 2010-04-16T01:45:05.720 回答
0

我得到答案:

它在文件 /usr/include/sys/syscall.h 中定义

#define SYS_kaio 178
        /*
         * 子代码:
         * aioread(...) :: kaio(AIOREAD, ...)
         * aiowrite(...) :: kaio(AIOWRITE, ...)
         * aiowait(...) :: kaio(AIOWAIT, ...)
         * aiocancel(...) :: kaio(AIOCANCEL, ...)
         * aionotify() :: kaio(AIONOTIFY)
         * aioinit() :: kaio(AIOINIT)
         * aiostart() :: kaio(AIOSTART)
         * 看
         */
于 2010-04-16T03:25:17.727 回答