自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苟浩的博客

天道酬勤

  • 博客(63)
  • 问答 (1)
  • 收藏
  • 关注

原创 writeback: 1. 初始化

源码基于5.10。

2023-08-26 11:34:20 152

原创 block层:6. tag机制

源码基于5.10。

2023-08-26 11:28:23 404

原创 block层:5. 请求分配

源码基于5.10。

2023-08-26 11:26:47 237

原创 block层:8. deadline调度器

源码基于5.10。

2023-08-26 11:09:20 1037

原创 block层:7. 请求下发

源码基于5.10。

2023-08-26 11:04:43 1286

原创 block层:4. 运行队列

源码基于5.10。

2023-08-26 11:02:31 239

原创 block层:3. plug机制

源码基于5.10。

2023-08-26 10:49:32 293

原创 block层:2. mq提交io

block层:2. submit_blk_mq

2023-08-26 10:46:45 221

原创 block层:1. 提交io

block: 1. submit io

2023-08-26 10:43:39 229

原创 内存管理:2. slub-create

slub的创建从kmem_cache_create->kmem_cache_create_usercopy都是一样的,从__kmem_cache_create开始区分。__kmem_cache_create的主要调用了kmem_cache_open来创建应的slab.计算一个slab对应page的oder,一个slab里存储对象的数量等。slub的创建,相对于slab来说要简单的多。

2023-03-12 23:05:56 198

原创 内存管理:1. slab-创建

【代码】内存管理:1. slab-创建。

2023-03-12 21:38:53 228

原创 文件系统:3. io_uring-提交sqe

文件系统:3. io_uring-提交sqe

2023-01-10 09:21:23 429

原创 文件系统:3. io_uring-io_uring_enter系统调用

文件系统:3. io_uring-io_uring_enter系统调用

2023-01-10 09:20:28 377

原创 文件系统:3. io_uring-io_wq原理

文件系统:3. io_uring-io_wq原理

2023-01-10 09:18:25 666

原创 文件系统:3. io_uring-sq-poll模式

文件系统:3. io_uring-sq-poll模式

2023-01-09 23:18:51 264

原创 文件系统:3. io_uring-io_uring_setup系统调用

文件系统:3. io_uring-io_uring_setup系统调用

2023-01-09 23:16:59 474

原创 内存管理:2. slub-kfree

内存管理:2. slub-kfree

2023-01-09 22:31:54 198

原创 内存管理:2. slub-kmalloc

内存管理:2. slub-kmalloc

2023-01-09 22:30:52 533

原创 内存管理:2. slub-初始化

内存管理:2. slub-初始化

2023-01-09 22:29:40 567

原创 内存管理:2. slub-结构体

内存管理:2. slub-结构体

2023-01-09 22:28:23 109

原创 内存管理:1. slab-kfree

内存管理:1. slab-kfree

2023-01-09 22:25:53 150

原创 内存管理:1. slab-kmalloc

内存管理:1. slab-kmalloc

2023-01-09 22:23:53 151

原创 内存管理:1. slab-结构体

内存管理:1. slab-结构体

2023-01-09 22:20:01 109

原创 内存管理:1. slab-初始化

内存管理:1. slab-初始化

2023-01-09 22:17:37 491

原创 解决 水星(Mercury)UD6S-V1.0-Linux20210616驱动在5.15内核报错

解决 水星(Mercury)UD6S-V1.0-Linux20210616驱动在5.15内核报错

2023-01-07 19:31:49 1011

原创 Kernel源码笔记之文件系统:2. fuse——查找文件

fuse查找文件流程

2022-07-13 09:08:42 251

原创 Kernel源码笔记之文件系统:2. fuse——打开文件

fuse打开文件的流程

2022-07-13 09:07:08 401

原创 Kernel源码笔记之文件系统:2. fuse——接收应答

介绍fuse接收应答的流程

2022-07-13 09:03:58 157

原创 Kernel源码笔记之文件系统:2. fuse——发送消息

主要介绍了fuse的发送消息流程

2022-07-13 09:00:32 363

原创 Kernel源码笔记之文件系统:2. fuse——挂载

初始化函数里,主要创建了fuse_fs_context对象,每个挂载的上下文对象。在挂载fusefs的时候,必须要传fd, rootmod, user_id, group_id,这4个参数。然后就根据是否有设备,调用不同的vfs函数,核心工作都在fuse_fill_super里。在fuse_fill_super主要流程:下面是参数解析的相关代码:fuse_conn_init在fuse_conn_init设置了已连接状态和fiq->ops,这个ops默认是fuse_dev_operations,处理

2022-07-01 17:09:07 760

原创 Kernel源码笔记之文件系统:2. fuse——初始化

fuse模块初始化

2022-06-28 12:43:51 334

原创 Kernel源码笔记之系统调用:1. splice

splice系统调用,把一个文件描述符的数据移到到另一个文件描述符里,其中至少有一个得是pipe。

2022-06-28 12:28:11 440

原创 Kernel源码笔记之VFS:7.写文件

写文件写文件的系统调用,以及前面几个函数和读文件差不多,我们直接从generic_perform_write开始看ssize_t generic_perform_write(struct file *file, struct iov_iter *i, loff_t pos){ struct address_space *mapping = file->f_mapping; const struct address_space_operations *a_ops = mapping-&

2022-03-30 08:49:27 375

原创 Kernel源码笔记之VFS:6.读文件

读文件源码基于stable-5.10.102/*fd: 文件描述符buf: 缓冲区count: 要读入的数量要读取的位置在file的f_pos里*/SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count){ return ksys_read(fd, buf, count);}ssize_t ksys_read(unsigned int fd, char __user *buf, size_

2022-03-30 08:45:18 568

原创 内核调试之kprobe

trace-kprobe简介在调试内核的时候要跟踪函数有没有执行或者返回值等等,kprobe可以实现这些,用代码写的kprobe模块还可以修改返回值。这篇主要介绍kprobe在trace下的使用。本文以 do_filp_open 函数为例,来看一下kprobe在trace里的基本使用,do_filp_open代码如下:struct file *do_filp_open(int dfd, struct filename *pathname, const struct open_flags *op)

2022-03-22 17:58:18 1512

原创 Kernel源码笔记之VFS:5.关闭文件

Kernel源码笔记之VFS:5.关闭文件

2022-03-20 12:37:51 559

原创 Kernel源码笔记之VFS:4.打开文件

kernel源码笔记之VFS: 4.打开文件

2022-03-20 12:35:36 1613

原创 Kernel源码笔记

Kernel源码笔记

2022-03-17 23:55:25 1227

原创 Kernel源码笔记之VFS:2.遍历路径

遍历路径遍历路径是一个很常用的操作,通过阅读遍历路径的代码可以把dentry,inode, vfsmnt这些数据结构联系起来,可以对文件系统做一个全面的了解。源码基于stable-5.10.108遍历路径的代码有好几种,原理大概都差不多,这里先path_lookupat。// 在遍历路径是保存遍历过程中的数据及结果struct nameidata { // 保存遍历过程中最后结点的dentry和vfsmount struct path path; // 最后结点的文件名? st

2022-03-15 17:16:30 1468

原创 Kernel源码笔记之文件系统:1. 管道

Pipe源码基于5.10.102文件系统初始化static struct file_system_type pipe_fs_type = { .name = "pipefs", // init_fs_context这种形式的挂载用来代替传统的mount .init_fs_context = pipefs_init_fs_context, .kill_sb = kill_anon_super,};static int __init init_pipe_fs(void){ // 注册文

2022-03-13 11:29:43 605

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除