Ywgrit
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • Presentations
  •   
  •   

io_uring api

api数据结构定义好了,逻辑实现具体是如何驱动这些数据结构的呢?使用上,大体分为准备、提交、收割过程。 linux kernel仅仅提供了三个系统调用,简化了异步io的操作 12345678910// 初始化一个新的 io_uring 上下文,注册io_uring实例,包括注册共享内存等int io_uring_setup(u32 entries, struct io_uring_params *
2024-03-26
Linux kernel

io_uring api

动机探索scylladb因高效io带来的极速性能,然而并未用上io_uring这一技术。不过无所谓了,如果io_uring在其执行框架seastar前提出,应该就被用上了。 资料 Efficient IO with io_uring What’s new with io_uring Ringing in a new asynchronous I/O API liburing 操作
2024-03-26
Linux kernel

jump label

什么是jump label 在通常情况下,我们会使用分支语句来决定是否执行某个事件,例如 123456bool keyfalse;if (!key) // do unlikely codeelse // do likely code ​ 上述分支判断语句通常会被编译为mov, test, je的指令组合 在linux kernel中,启用jump label后,这类分支语句可以改写为
2024-03-18
Linux kernel

io_uring

动机了解到异步io给scylladb带来了极速性能,因此想了解其异步io框架seastar,然而其并未使用io_uring。不过如果io_uring在其执行框架seastar前被提出,应该是会被用上的。 异步io的优势异步io不会占用cpu资源,在计算密集型任务中,可以更充分地利用处理器资源,进程在提交异步io后,可以立即执行后续任务,不会阻塞。在nginx中,读取文件的操作会异步地提交给内核,内
2024-03-10
Linux kernel

memory type

Memory Type什么是Memory Type每个内存区域都有自己的memory type,代表此内存区域的一些特性,例如数据是否会使用cache、访存操作是否可以reorder等等 Linux下可以通过以下命令查看 1cat /sys/kernel/debug/x86/pat_memtype_list 目前IA32中的memory type如下表所示 Memory Type an
2024-03-04
体系结构
12

搜索