[英]man kaio: No manual entry for kaio
我捆綁了一個過程,它們如下所示。 我想知道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
顧名思義,kaio所做的是在內核內部而不是通過用戶線程在用戶域中實現異步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>
我得到答案:
它在文件/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 */
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.