随笔分类 -  内核机制

buffer共享-2-dma_buf-2-内核文档翻译
摘要:注:翻译自Linux-6.6.0Buffer Sharing and Synchronization (dma-buf): https://www.kernel.org/doc/html/v6.6/driver-api/dma-buf.html#dma-fences dma-buf 子系统提供了一个 阅读全文

posted @ 2025-08-26 09:56 Hello-World3 阅读(169) 评论(0) 推荐(0)

RCU-8——RCU相关参数
摘要:基于msm-4.4 一、参数介绍 注: 本文主要来自 msm-4.4/Documentation/kernel-parameters.txt 1. rcu_nocbs rcu_nocbs= [KNL]在使用 CONFIG_RCU_NOCB_CPU=y 构建的内核中,将指定的 CPU 列表设置为无回调 阅读全文

posted @ 2025-07-24 21:05 Hello-World3 阅读(110) 评论(0) 推荐(0)

Lockdep-1-相关文档翻译
摘要:一、lockdep-design.txt 注: 翻译自 msm-4.4/Documentation/locking/lockdep-design.txt 运行时持锁正确性验证器 由 Ingo Molnar <mingo@redhat.com> 发起由 Arjan van de Ven <arjan@ 阅读全文

posted @ 2025-07-01 21:36 Hello-World3 阅读(39) 评论(0) 推荐(0)

RCU-8——RCU相关文件节点
摘要:基于msm-5.4 一、events/rcu 默认配置下只有一个trace event文件节点。 /sys/kernel/tracing/events/rcu # ls -l drwxr-xr-x 2 root readtracefs 0 1970-01-01 08:00 rcu_utilizati 阅读全文

posted @ 2025-05-23 17:50 Hello-World3 阅读(61) 评论(0) 推荐(0)

robust-futex-2-实验
摘要:一、用户空间使用实验 1. 测试代码 #include <stdio.h> #include <stdlib.h> #include <pthread.h> #include <unistd.h> #include <sys/mman.h> #include <linux/futex.h> #inc 阅读全文

posted @ 2025-05-21 18:39 Hello-World3 阅读(25) 评论(0) 推荐(0)

Linux内核机制—task_work
摘要:基于msm-5.4 一、task_work简介 task_work实现一种延迟执行机制,将回调延迟到返回用户空间时执行。是内核固定存在的功能,不依赖于任何开关控制宏。相关实现文件:kernel/task_work.c include/linux/task_work.h 二、task_work相关数据 阅读全文

posted @ 2025-05-19 16:15 Hello-World3 阅读(97) 评论(0) 推荐(0)

robust-futex-1-内核文档翻译
摘要:一、robust-futexes.txt 注: 翻译自 msm-4.14/Documentation/robust-futexes.txt 关于什么是 robust futex 的描述 发起人:Ingo Molnar <mingo@redhat.com> 背景 什么是 robust futex(健壮 阅读全文

posted @ 2025-05-15 18:00 Hello-World3 阅读(72) 评论(0) 推荐(0)

pi-futex-1——内核文档翻译-pi-futex.rst
摘要:一、pi-futex.rst 翻译:kernel-5.10\Documentation\locking\pi-futex.rst 轻量级 PI-futex 我们称它们为轻量级的原因有 3 个: - 在用户空间快速路径中,启用 PI 的 futex 根本不涉及内核工作(或任何其他 PI 复杂操作)。 阅读全文

posted @ 2025-05-15 10:50 Hello-World3 阅读(52) 评论(0) 推荐(0)

用户空间锁-3-虚拟机锁相关类定义
摘要:一、class LockWord /* 定义在 art/runtime/lock_word.h 中的 namespace art 命名空间中 */ class LockWord { private: uint32_t value_; //锁字是私有的 public: enum SizeShiftsA 阅读全文

posted @ 2025-05-04 18:41 Hello-World3 阅读(60) 评论(0) 推荐(0)

用户空间锁-2-虚拟机中对象锁synchronized/wait-notify实现分析
摘要:前言 编程过程中经常会遇到线程的同步问题,Java 中对同步问题的解决方案比较多(synchronized、JUC、原子操作、volatile、条件变量等),其中 synchronized 最方便、简单易用,也是 java 编程中使用最多的临界区保护方案。本文主要讲述对象锁的相关知识,详细介绍syn 阅读全文

posted @ 2025-05-04 15:50 Hello-World3 阅读(82) 评论(0) 推荐(0)

RCU-6——RCU使用笔记
摘要:1. rcu_read_lock/unlock可以在关抢占上下文使用 基于msm-4.14 rwsem_optimistic_spin //rwsem-xadd.c preempt_disable(); rwsem_can_spin_on_owner rcu_read_lock(); ... rcu 阅读全文

posted @ 2024-03-21 09:27 Hello-World3 阅读(78) 评论(0) 推荐(0)

RCU-5——RCU案例汇总
摘要:基于 Linux-5.10 一、经典(可抢占)RCU 1. 例子-RCU链表 假设链表节点和头结点如下: typedef struct { struct list_head link; struct rcu_head rcu; //used for call_rcu() int key; int v 阅读全文

posted @ 2023-04-27 21:10 Hello-World3 阅读(266) 评论(0) 推荐(0)

RCU-4——不可抢占RCU代码分析
摘要:基于 Linux-5.10 一、不可抢占RCU 1. 不可抢占RCU不允许进程在读端临界区被其它进程抢占,使用函数 rcu_read_lock_sched()/rcu_read_unlock_sched() 标记读临界区。前者禁止内核抢占,后者开启内核抢占。 static inline void r 阅读全文

posted @ 2023-04-27 21:04 Hello-World3 阅读(262) 评论(0) 推荐(0)

RCU-3——经典(可抢占)RCU代码分析
摘要:基于 Linux-5.10 一、相关数据结构 1. struct rcu_state rcu_state 用于描述RCU全局状态。 struct rcu_state { struct rcu_node node[NUM_RCU_NODES]; /* Hierarchy. */ struct rcu_ 阅读全文

posted @ 2023-04-27 20:58 Hello-World3 阅读(1028) 评论(0) 推荐(0)

RCU-2——RCU初探
摘要:一、RCU简介 RCU(Read-Copy-Update)的意思是读-复制-更新,是根据原理命名的。写者修改对象的逻辑是: 首先复制一个副本,然后更新这个副本,最后使用新的对象替换旧的对象。在写者执行复制更新的时候读者可以读数据。 写者删除对象,必须要等到所有读者结束访问,才能执行销毁操作。RCU的 阅读全文

posted @ 2023-04-27 20:38 Hello-World3 阅读(665) 评论(0) 推荐(0)

RT-Mutex-3——实现分析-pi-futex与rt-mutex
摘要:一、rt-mutex 的原理 PI-futex是通过rt mutex来实现的,因此我们这里简单的聊一聊内核的这个PI-aware mutex。 从rt mutex的视角看任务: rt_mutex_waiter 用来抽象一个阻塞在 rt mutex 的任务:task 成员指向这个任务,lock 成员指 阅读全文

posted @ 2023-04-20 22:27 Hello-World3 阅读(648) 评论(0) 推荐(0)

Linux内核机制—smp_hotplug_thread
摘要:基于Linux-5.10 一、简介 1. 只是一个创建per-cpu线程执行用户提供的回调的机制。 2. 内核中已存在的注册 static struct smp_hotplug_thread idle_inject_threads = { //drivers/powercap/idle_inject 阅读全文

posted @ 2023-02-12 21:12 Hello-World3 阅读(1306) 评论(0) 推荐(0)

RCU-1——内核文档翻译——RCU-tasks
摘要:一、The RCU-tasks subsystem:https://lwn.net/Articles/607117/ 翻译 读取-复制-更新(RCU)机制负责保留旧版本的数据结构,直到它知道没有 CPU 可以保存对它们的引用; 一旦发生这种情况,就可以释放这些结构。 不过最近,一位潜在的 RCU 用 阅读全文

posted @ 2023-02-06 20:49 Hello-World3 阅读(414) 评论(0) 推荐(0)

Linux内核机制—内核热补丁
摘要:一、内核热补丁简介 1. 热补丁内核实现路径:kernel/livepatch/ 2. 热补丁内核使用demo路径 lib/livepatch/,可参考 livepatch-sample.c 实验也最简单。 /* 单独测试,使用新函数替换内核中的一个旧函数 */ livepatch-sample.c 阅读全文

posted @ 2023-01-15 15:42 Hello-World3 阅读(1998) 评论(0) 推荐(0)

RT-Mutex-1——内核文档翻译——rt-mutex-design.rst
摘要:翻译:kernel-5.10\Documentation\locking\rt-mutex-design.rst RT-mutex实现设计 版权所有 (c) 2006 Steven Rostedt 根据 GNU 自由文档许可证 1.2 版获得许可 本文档试图描述 rtmutex.c 实现的设计。 它 阅读全文

posted @ 2022-12-26 15:58 Hello-World3 阅读(221) 评论(0) 推荐(0)

导航