摘要:
内核源码分析 1. kernel-code-comment https://github.com/dongzhiyan-stack/kernel-code-comment 2. async_memory_reclaim_for_cold_file_area https://github.com/do
阅读全文
posted @ 2018-05-17 15:21
苏格拉底的落泪
阅读(648)
推荐(0)
摘要:
ib_write_bw命令 参数 作用 常用值 -d mlx5_0 指定 RDMA 设备 mlx5_0 -i 1 指定 RDMA 设备内的端口号 一般是 1 -p 18515 建连用 TCP 端口 默认 18515 -s 65536 每次 RDMA Write 的消息大小,单位 byte 4096、
阅读全文
posted @ 2026-05-19 09:10
苏格拉底的落泪
阅读(7)
推荐(0)
摘要:
双边通信与单边通信 项目 双边 SEND/RECV 单边 RDMA READ/WRITE 本地 buffer 是否需要 lkey 需要 需要 接收端是否需要提前 post recv 需要 不需要 是否需要 remote_addr 不需要 需要 是否需要 remote_rkey 不需要 需要 远端 M
阅读全文
posted @ 2026-05-18 14:10
苏格拉底的落泪
阅读(9)
推荐(0)
摘要:
docker修改镜像源 Linux 上修改 Docker 镜像源,主要改这个文件: /etc/docker/daemon.json 1. 编辑配置文件 sudo mkdir -p /etc/docker sudo vim /etc/docker/daemon.json 写入,例如: { "regis
阅读全文
posted @ 2026-04-26 15:29
苏格拉底的落泪
阅读(35)
推荐(0)
摘要:
gitea容器化部署方案 在文件 /opt/gitea/docker-compose.yml 构建配置文件: networks: gitea: external: false services: server: image: docker.gitea.com/gitea:1.26.0-rootles
阅读全文
posted @ 2026-04-26 11:51
苏格拉底的落泪
阅读(7)
推荐(0)
摘要:
客户端入口。FUSE 写请求进入 fuse_write() (line 3128),恢复后在 fuse_write_resume() (line 3096) 调下层 writev。如果你走的是 gfapi,这一层可以跳过,后面一样。 EC 接管写。EC 的 fops 注册在 ec.c (line 1
阅读全文
posted @ 2026-04-23 10:22
苏格拉底的落泪
阅读(5)
推荐(0)
摘要:
纠删码EC #define MSG_OSD_EC_WRITE 108 #define MSG_OSD_EC_WRITE_REPLY 109 #define MSG_OSD_EC_READ 110 #define MSG_OSD_EC_READ_REPLY 111 它们本身没有业务逻辑,作用是两件事:
阅读全文
posted @ 2026-04-22 17:08
苏格拉底的落泪
阅读(4)
推荐(0)
摘要:
前台消费位置 = consumed_head | urgent 区 | tail 区 | consumed_head low_water high_water 再结合当前已经有多少“有效前置页”: effective_ahead_pages = cached_ahead_pages + inflig
阅读全文
posted @ 2026-04-13 21:19
苏格拉底的落泪
阅读(5)
推荐(0)
posted @ 2026-04-03 09:40
苏格拉底的落泪
阅读(4)
推荐(0)
摘要:
参考资料 1. pin_user_pages
阅读全文
posted @ 2026-03-14 16:13
苏格拉底的落泪
阅读(9)
推荐(0)
摘要:
参考资料 1. delegation机制
阅读全文
posted @ 2026-03-13 10:01
苏格拉底的落泪
阅读(9)
推荐(0)
摘要:
参考资料 1. NFSV4锁机制
阅读全文
posted @ 2026-03-13 09:58
苏格拉底的落泪
阅读(9)
推荐(0)
摘要:
内核数据结构之kfifo 参考资料 1. 内核数据结构之kfifo
阅读全文
posted @ 2026-03-09 21:07
苏格拉底的落泪
阅读(7)
推荐(0)
摘要:
参考资料 1. linux内存管理结构大蓝图
阅读全文
posted @ 2026-03-09 20:57
苏格拉底的落泪
阅读(9)
推荐(0)
摘要:
结构体buffer_head原理 struct buffer_head { unsigned long b_state; /* buffer state bitmap (see above) */ struct buffer_head *b_this_page;/* circular list of
阅读全文
posted @ 2026-03-09 16:38
苏格拉底的落泪
阅读(8)
推荐(0)
摘要:
专利检索 1. 国家知识产权局:http://epub.cnipa.gov.cn/
阅读全文
posted @ 2026-03-09 09:37
苏格拉底的落泪
阅读(15)
推荐(0)
摘要:
xarray原理 参考资料 1.xarray 简易体会与实现 2. Linux lib 之 xarray 3. Linux文件页缓存(Page Cache)
阅读全文
posted @ 2026-03-08 19:31
苏格拉底的落泪
阅读(11)
推荐(0)
摘要:
参考资料 1. page到folio的变迁 2. 内存管理特性分析(七):Linux内核复合页(Compound Page)原理分析
阅读全文
posted @ 2026-03-05 09:59
苏格拉底的落泪
阅读(8)
推荐(0)
摘要:
_nr_pages = 本次预读窗口大小(单位:page) 这个来自: file_ra_state.ra_pages 查询/read_ahead_kb参数: 1. 在客户端: cat /proc/self/mounts | grep 你的挂载点 在查: ls -l /sys/class/bdi/ 找
阅读全文
posted @ 2026-03-03 11:13
苏格拉底的落泪
阅读(4)
推荐(0)
摘要:
参考资料 1. 内核文件系统技术揭秘
阅读全文
posted @ 2026-01-26 17:34
苏格拉底的落泪
阅读(8)
推荐(0)
摘要:
链接器 编译器分为gcc和clang 对比项 ldd lld 所属 glibc LLVM 阶段 运行时 编译 / 链接期 功能 查看 so 依赖 生成 ELF 输入 可执行文件 .o / .a 输出 依赖库列表 可执行文件 / so 是否修改文件 ❌ 否 ✅ 是 是否危险 ⚠️ 可执行目标程序 ❌
阅读全文
posted @ 2026-01-22 14:19
苏格拉底的落泪
阅读(11)
推荐(0)
摘要:
union原理分析 示例 #include <stdio.h> typedef enum { RW_CTX_AB, RW_CTX_C, } rw_ctx_type_t; typedef struct rw_context { rw_ctx_type_t type; union { struct {
阅读全文
posted @ 2026-01-22 14:10
苏格拉底的落泪
阅读(7)
推荐(0)
摘要:
git apply git apply <patch-file> 用于 将补丁文件应用到工作目录(不会自动创建 commit) 参数 作用 --check 仅检查补丁是否能应用,不实际修改文件 --reverse 反向应用补丁(撤销补丁) --index 同时更新暂存区(stage) --verbo
阅读全文
posted @ 2026-01-22 14:02
苏格拉底的落泪
阅读(26)
推荐(0)
摘要:
moosefs架构 1. 如图所示: 参考资料 1. moosefs官网
阅读全文
posted @ 2025-12-24 10:21
苏格拉底的落泪
阅读(10)
推荐(0)
posted @ 2025-12-24 10:19
苏格拉底的落泪
阅读(12)
推荐(0)
摘要:
fuse回写 static const struct address_space_operations fuse_file_aops = { .readpage = fuse_readpage, .readahead = fuse_readahead, .writepage = fuse_write
阅读全文
posted @ 2025-12-22 16:10
苏格拉底的落泪
阅读(13)
推荐(0)
摘要:
原子操作 //该函数对原子类型的变量进行原子读操作,它返回原子类型的变量v的值。 atomic_read(atomic_t * v); //该函数设置原子类型的变量v的值为i。 atomic_set(atomic_t * v, int i); //该函数给原子类型的变量v增加值i。 void ato
阅读全文
posted @ 2025-12-21 20:38
苏格拉底的落泪
阅读(9)
推荐(0)
摘要:
nfs回写② struct nfs_pageio_descriptor { struct inode *pg_inode; // const struct nfs_pageio_ops nfs_pgio_rw_ops const struct nfs_pageio_ops *pg_ops; // c
阅读全文
posted @ 2025-12-19 11:03
苏格拉底的落泪
阅读(18)
推荐(0)
摘要:
cephfs内核客户端回写 cephfs内核客户端回写: const struct address_space_operations ceph_aops = { .readpage = ceph_readpage, .readpages = ceph_readpages, .writepage =
阅读全文
posted @ 2025-12-18 20:28
苏格拉底的落泪
阅读(11)
推荐(0)
摘要:
nfs协议版本 结构体接口定义 v2 const struct nfs_rpc_ops nfs_v2_clientops v3 const struct nfs_rpc_ops nfs_v3_clientops v4 const struct nfs_rpc_ops nfs_v4_clientops
阅读全文
posted @ 2025-12-17 13:52
苏格拉底的落泪
阅读(14)
推荐(0)
摘要:
nfs客户端回写 const struct address_space_operations nfs_file_aops = { .readpage = nfs_readpage, .readpages = nfs_readpages, .set_page_dirty = __set_page_di
阅读全文
posted @ 2025-12-17 11:38
苏格拉底的落泪
阅读(13)
推荐(0)
摘要:
用户写和后台写回writeback竞争关系 问题本质:文件正在被写入 page cache(脏页变更多)与此同时后台 flusher 正在把同一文件的脏页写回。那内核如何并发处理?不会互相覆盖?不会 crash?不会写错数据? 如果两者同时操作,竞争如何解决? Case 1:用户写入时 page 正
阅读全文
posted @ 2025-12-16 16:41
苏格拉底的落泪
阅读(25)
推荐(0)
摘要:
结构体address_space_operations接口分析 struct address_space_operations { int (*writepage)(struct page *page, struct writeback_control *wbc); int (*readpage)(
阅读全文
posted @ 2025-12-16 10:09
苏格拉底的落泪
阅读(16)
推荐(0)
摘要:
Page Cache Writeback脏页回写机制 脏页回写与每个块设备的dwork紧密相关,先看下它的初始化: static int wb_init(struct bdi_writeback *wb, struct backing_dev_info *bdi, gfp_t gfp) { int
阅读全文
posted @ 2025-12-16 09:16
苏格拉底的落泪
阅读(20)
推荐(0)
摘要:
源码解读Linux等待队列 参考资料 1. 源码解读Linux等待队列 2. 内核基础设施wait queue 3. 理解 Linux 等待队列 4. Linux等待队列(Wait Queue)
阅读全文
posted @ 2025-12-15 14:37
苏格拉底的落泪
阅读(11)
推荐(0)
摘要:
rust编译安装 1. rust编译器离线安装 2. Rust简介和安装
阅读全文
posted @ 2025-12-13 13:21
苏格拉底的落泪
阅读(9)
推荐(0)
摘要:
#include <folly/EvictingCacheMap.h> #include <iostream> class CacheMgr { public: CacheMgr(size_t cap): cache_( cap, // 淘汰回调函数(在构造函数初始化列表中) [](const in
阅读全文
posted @ 2025-12-09 10:44
苏格拉底的落泪
阅读(17)
推荐(0)
摘要:
条带化 假设: chainCnt = 12 stripeSize = 4 初始 iter->second = 0 计算: 文件序号 iter->second res = (x % 12) + 1 新 iter->second 1 0 1 (0 + 4) % 12 = 4 2 4 5 (4 + 4)
阅读全文
posted @ 2025-12-07 20:32
苏格拉底的落泪
阅读(6)
推荐(0)
摘要:
结构体赋值 C 语言的结构体部分初始化规则:当使用指定成员初始化(designated initializer)时,未初始化的成员会自动初始化为 0。 也就是说: struct readahead_control rac = { .file = f, .mapping = m, ._index =
阅读全文
posted @ 2025-11-03 21:53
苏格拉底的落泪
阅读(60)
推荐(0)
摘要:
static用法 1. 在 C语言 中,static 关键字用于控制变量或函数的作用域和生命周期。当它修饰函数时,含义如下: static int add(int a, int b) { return a + b; } 上面的函数前加了 static,表示这是一个 静态函数(static funct
阅读全文
posted @ 2025-11-03 20:37
苏格拉底的落泪
阅读(61)
推荐(0)
摘要:
struct page /* * 系统中的每一个物理页(physical page)都对应一个 struct page 结构, * 用于追踪该页当前的用途。注意,我们无法追踪哪些任务(task) * 正在使用这个页;但如果该页是一个 pagecache 页面, * 我们可以通过 rmap(rever
阅读全文
posted @ 2025-11-02 22:04
苏格拉底的落泪
阅读(54)
推荐(0)