ILD

Kernel Synchronization 3: Semaphores & Mutexes
2018-8-20
Semaphoreslinux中的信号量是sleeping lock。当尝试获得的锁当前被占用时,它把task放入一个等待队列,然后把task置于睡眠状态。当信号量变成可用时,唤醒task,并获得信号量。信号量通常用在锁占用很长时间的地方。相反,一个短时间的锁,用信号量开销很大。因为要睡眠、维护等待

sysrq
2019-10-21
Linux Magic System Request当内核出现状况,但是仍然可以响应console中断时,那么可以使用sysrq来实现重启、sync、打印栈等功能。对于console。可以发送break加数字,来调用sysrq命令。比如putty,可以通过标题栏-special command-br

手动出发panic
2021-6-4
1 开启sysrq# echo 1 > /proc/sys/kernel/sysrq或者修改/etc/sysctl.conf,添加kernel.sysrq=1开启2 触发echo c > /proc/sysrq-trigger

kernel command line设置builtin内核模块参数
2021-7-1
模块参数可以用两种方式指定:内核命令行,modprobe (kernel command line) usbcore.blinkenlights=1 (modprobe command line) modprobe usbcore blinkenlights=1内核命令行的格式是:

内核RCU原理和用法
2021-11-23
RCU同步机制在2002年10月份添加到Linux内核 [3]。RCU的读者拥有最高的优先级,读者不会阻塞。写者拥有最低的优先级。某一时刻,RCU的多个读者可能访问的是两份不一致的数据。 RCU就像火车轨道的变轨,变轨是一个原子操作,火车要么驶入左侧轨道,要么驶入右侧轨

kernel preempt model
2021-12-6
内核支持4种抢占模型内核配置路径:General setup -> Preemption ModelKconfig文件:kernel/Kconfig.preempt1 No Forced Preemption (Server)选中:CONFIG_PREEMPT_NONE禁止抢占,这是传统的linux

how to git clone linux source code repository
2024-6-12
内核的git仓库托管在https://git.kernel.org/,打开这个页面发现这里面有很多的仓库,导致不知道克隆哪一个。linux内核的仓库是linux.git,有很多的仓库,有些是用来开发feature的,有些是内核核心开发自己fork的。有3个主要的仓库:一个是torvalds的main

module paramters
2022-3-14
内核提供了一个简单的框架:允许模块声明模块参数。可以在内核启动,或者模块加载的时候指定参数的值。提供/sys/module//parameters/接口来读取和修改模块参数的值。内核还提供模块参数cb,来在设置和读取的时候,调用一个cb,来实现对参数进行校验,执

Preemption Disabling
2023-4-26
内核有些地方会单独使用禁止抢占,那哪些情况下会单独禁止抢占,而不使用spin lock呢?最常用的场景就是per-processor data,每cpu变量。因为其它cpu不会访问这个cpu的数据,那么只要禁止抢占,就可以保证只有当前task访问每cpu数据,否则task A的关键区可能被task

stop kthread kernel panic
2023-9-14
ipq5018卸载ecm加速模块的时候,出现kernel panic,内核版本4.4Unable to handle kernel NULL pointer dereference at virtual address 00000000pgd = 862f4000[00000000] *pgd=00

Copyright © linuxdev.cc 2017-2024. Some Rights Reserved.