diff --git "a/io_uring/\346\226\207\347\253\240/io_uring\357\274\2102\357\274\211- \344\273\216\345\210\233\345\273\272\345\277\205\350\246\201\347\232\204\346\226\207\344\273\266\346\217\217\350\277\260\347\254\246 fd \345\274\200\345\247\213.md" "b/io_uring/\346\226\207\347\253\240/io_uring\357\274\2102\357\274\211- \344\273\216\345\210\233\345\273\272\345\277\205\350\246\201\347\232\204\346\226\207\344\273\266\346\217\217\350\277\260\347\254\246 fd \345\274\200\345\247\213.md" index ead62c4..37cac12 100644 --- "a/io_uring/\346\226\207\347\253\240/io_uring\357\274\2102\357\274\211- \344\273\216\345\210\233\345\273\272\345\277\205\350\246\201\347\232\204\346\226\207\344\273\266\346\217\217\350\277\260\347\254\246 fd \345\274\200\345\247\213.md" +++ "b/io_uring/\346\226\207\347\253\240/io_uring\357\274\2102\357\274\211- \344\273\216\345\210\233\345\273\272\345\277\205\350\246\201\347\232\204\346\226\207\344\273\266\346\217\217\350\277\260\347\254\246 fd \345\274\200\345\247\213.md" @@ -20,7 +20,7 @@ SYSCALL_DEFINE2(io_uring_setup, u32, entries, } ``` -这是标准的系统调用实现方案,从实现上来看,这是一个需要传递两个参数的系统调用[2](https://www.byteisland.com/io_uring(2)-从创建必要的文件描述符-fd-开始/#fn-768-2),一个是 entries,用来表示提交的整个缓存区数组的大小[3](https://www.byteisland.com/io_uring(2)-从创建必要的文件描述符-fd-开始/#fn-768-3),而 params 这个参数有一部分是核外传递给核外的,比如 params->flags,这个成员变量是用来设置当前整个 io_uring 的标志的,他将决定是否启动 sq_thread,是否采用 iopoll 模式等等,这些都是在创建阶段就决定了;还有一部分是用来自内核传递数据到核外的,比如 sq_ring->ring_mask 等。 +这是标准的系统调用实现方案,从实现上来看,这是一个需要传递两个参数的系统调用[2](https://www.byteisland.com/io_uring(2)-从创建必要的文件描述符-fd-开始/#fn-768-2),一个是 entries,用来表示提交的整个缓存区数组的大小[3](https://www.byteisland.com/io_uring(2)-从创建必要的文件描述符-fd-开始/#fn-768-3),而 params 这个参数有一部分是核外传递给核内的,比如 params->flags,这个成员变量是用来设置当前整个 io_uring 的标志的,他将决定是否启动 sq_thread,是否采用 iopoll 模式等等,这些都是在创建阶段就决定了;还有一部分是用来自内核传递数据到核外的,比如 sq_ring->ring_mask 等。 ### 交互需要使用的缓存区