- 博客(39)
- 资源 (3)
- 收藏
- 关注
原创 Linux系统的待机、睡眠 和 唤醒
待机, 休眠, suspend, hibernate, standby, s2idle, s2ram, ACPI S3/S4
2025-04-10 11:24:01
342
原创 Linux系统块存储子系统分析记录
blk-mq, bio, gendisk, block_device, Block Device, SCSI, NVMe
2024-10-24 10:58:44
1512
原创 Linux内核DRM显示功能框架中,获取分辨率、刷新率等参数的方式
drm_connector, drm_display_mode, 分辨率, 显示时序
2024-08-26 00:30:08
1749
原创 linux内核 时间同步机理分析笔记
struct timekeeper定义在include/linux/timekeeper_internal.h中,保存了各种计时值。它是维护并操纵不同时间线的计时数据的主要数据结构,比如单调时间和原始时间《Linux内核精析》12.3.2 timeval和timespec当linux内核记录的时间比标准时间慢时,时间同步程序会修改内核的mult变量,让内核时间走的快一些;当linux内核记录的时间比标准时间快时,时间同步程序会修改内核的mult变量,让内核时间走的慢一些。
2024-08-20 00:18:42
1221
原创 Linux内核中网络数据的流量控制(TC: Traffic control 和 QDISC)
tc, qdisc, class, classifier, action, 网络流量控制
2024-06-27 18:29:19
1616
原创 Linux内核下网卡硬件 MAC 和PHY分析笔记
mac, phy, mdio, fixed-link, Fixed MDIO bus, phy-mode, phy-connection-type, rgmii, genphy_driver, mdiobus_scan
2024-06-08 17:55:29
2173
原创 Linux内核下RAS(Reliability, Availability and Serviceability)功能分析记录
EDAC, APEI, AMDGPU RAS Support, ARMv8 RAS System Architecture
2024-05-13 18:07:52
3026
原创 linux input system 分析笔记
input system, input_dev, input_handler, input_handle, input_event, evdev_write, /dev/input/eventX, EV_KEY, EV_SW, EV_LED
2024-04-15 15:07:20
1029
原创 Linux下性能分析的可视化图表工具
sar,sadf,cpuplayer,gnuplot,Heat Map,perf timechart, trace-cmd,kernelshark
2024-02-28 00:04:21
1710
1
原创 linux内核下,rapidio网络系统建立的过程(枚举 和 发现)
rio_enum_mport() rio_disc_mport() rio_clear_locks() rio_enum_peer()
2023-12-12 16:21:47
1591
原创 linux内核下,(rapidio)TSI721芯片的doorbell和message数据收发流程分析笔记
tsi721_dsend(), tsi721_add_outb_message(), tsi721_get_inb_message()
2023-12-09 22:55:42
1005
原创 eBPF、BCC、bpftrace、perf-tools、sar、vmstat 和 mpstat等linux内核调试工具
eBPF, BCC, bpftrace, perf-tools
2023-11-15 12:04:58
257
原创 linux-5.4.18内核强制输出图形显示信号 并通过firmware文件指定分辨率
DRM, connector_status_connected,edid
2023-11-05 12:02:35
1349
6
原创 Realtek的ALC260音频codec芯片的引脚复用设置(pincfg)
linux下修改音频codec的pin Configuration,ALC260
2023-08-30 16:58:26
765
原创 linux内核使用macvlan实现虚拟网卡的性能问题
网络接收端:四个虚拟机(kernel-5.4.18)。这四个虚拟机安装在同一个物理机上(kernel-4.19)。网络发送端:任意机器。
2023-05-07 15:43:47
597
原创 linux内核下,(rapidio)TSI721芯片的block DMA分析笔记
tsi721_rio_map_inb_mem(), rio_test_dma, NWRITE_R, tsi721_start_dma(),
2023-04-29 18:01:46
2361
原创 kernel-5.4下进行rapidio网络压力测试(rionet)时,网络堵塞、卡死
rapidio rionet tsi721 iperf3
2023-04-29 16:04:58
814
1
原创 linux进程、线程、进程组、线程组、task_struct、内核栈、用户栈和进程地址空间等学习笔记
1 进程描述符 task_struct 和 线程描述符 thread_info1.1 task_struct 简介Linux 内核涉及进程和程序的所有算法都围绕一个名为 task_struct 的数据结构建立。 《深入 LINUX 内核架构》P32 task_struct 相对较大,在 32 位机器上,它大约有 1.7KB。但如果考虑到该结构内包含了内核管理一个进程所需的所有信息,那么它的大小也算相当小了。进程描述符中包含的数据能完整地描述一个正在执行的进程:它打开的文件...
2021-05-13 16:41:38
1746
原创 linux /proc目录下的文件
1/proc/sys/vm/目录下的文件1.1dirty_background_bytes:脏页限值Contains the amount of dirty memory at which the pdflush background writeback daemon will start writeback.Note: dirty_background_bytes is the counterpart of dirty_background_ratio. Only ...
2021-04-20 17:26:12
2351
原创 在linux4.19内核下的UPD720201驱动里添加固件下载的代码
目录1 简介2 UPD720201寄存器上的信息2.1 相关寄存器2.2 读ROM的步骤(How to read ROM Data from External ROM)2.3 写的步骤(How to write FW to External ROM)3 修改驱动代码3.1 添加ROM擦除函数3.2 添加向ROM里写固件的函数3.3 添加从ROM里读数据的函数3.4 调用新添加的函数4 将固件编译到内核镜像里1 简介 在系统上电的时候,UPD7...
2021-02-27 19:39:23
5749
6
原创 linux3.10系统下CH432T(SPI转串口)调试笔记
目录1 CH432T 芯片的 SPI 通讯协议1.1 SPI 时钟相位模式和片选1.2 SPI 通讯协议2 CH432 关键寄存器表3 通讯时发生数据丢失3.1 ch432手册分析3.2 spi 时钟为 6.25M 时 SPI 总线上发送一个字节所需时间计算3.3 CH432 的 FIFO 为 16 个字节,计算 115200 波特率如何读取 FIFO 才不会溢出3.4 实际量测的 SPI 总线和串口接收中的的波形3.4.1 有问题的信号,中断出现长时间拉低3.4
2021-02-27 18:26:33
3093
1
原创 linux4.19调度类分析
目录1 调度类1.1 调度类结构体:struct sched_class1.2 停机调度类:stop_sched_class1.3 限期调度类:dl_sched_class1.4 实时调度类:rt_sched_class1.5 公平调度类:fair_sched_class1.6 空闲调度类:idle_sched_class1 调度类1.1 调度类结构体:struct sched_class//kernel/sched/sched.hstructsched_cla.
2021-02-25 20:14:19
874
原创 xenomai在linux4.19内核下的ipipe中断处理(ARM64)
目录1 ARM64异常向量表1.1 简介1.2 内核启动时异常向量表的设置1.3 内核模式(异常级别1)的中断入口:el1_irq1.3.1 打过xenomai补丁的el1_irq汇编函数1.3.2 irq_handler1.3.3 handle_arch_irq()——中断处理程序C语言部分的入口2 中断控制器GIC-4002.1 简介2.2 中断控制器匹配表和中断控制器驱动初始化2.2.1 中断控制器匹配表2.2.2 中断控制器初始化过程2.3 GIC
2021-02-15 16:55:26
3601
2
原创 linux中断,中断亲和性,IPI中断,中断线程化,中断计数,软中断 和 调试方法
目录1 基础知识1.1 同步中断和异步中断1.2 中断上下文1.3 中断处理程序栈1.4 中断处理程序的重入1.5 中断的返回2 顶半部和底半部(推后执行的工作)2.1 简介2.2 软中断2.3 tasklet2.4 工作队列2.5 内核定时器2.6 底半部机制的选择3 中断亲和性4 IPI(Interrupt-Procecesorr Interrupt):处理器中间的中断5 /proc/ 目录下中断相关的文件5.1 /proc/inter
2020-09-16 16:43:18
6007
1
原创 龙芯的PMON(bootloader)常用功能记录
1 用不同的方式加载内核镜像1.1JTAG 加载 kernelPMON启动成功后,进入JTAG命令行,执行以下命令:put vmlinuz 0xffffffff84000000put vmlinuz 0xffffffff84000000cont1.2 U盘加载 kernel
2020-09-02 22:54:49
4437
原创 linux内核内存slab,伙伴系统,内存碎片,内存耗尽(OOM)杀手,内存资源控制器memcg,KASAN学习笔记(内容正在更新...)
目录1 基础知识1.1 页1.2 页表1.3 UMA(一致性访问) / NUMA(非一致性访问)1.4 高端内存和低端内存1.5 内存模型2 物理内存的管理2.1 物理内存的组织:节点和管理区(内存域)简介2.1.1 简介2.1.2 相关函数2.2 伙伴系统2.2.1 简介2.2.2 伙伴系统实现原理2.2.3 /proc/buddyinfo 中获得伙伴系统的当前信息3 slab 分配器3.1 slab简介3.2 常用函数3.3 /pr
2020-08-31 23:18:39
3249
2
原创 linux内核性能分析工具perf学习记录
目录1 基础知识1.1 简介1 基础知识1.1 简介perf是一款Linux性能分析工具。Linux性能计数器是一个新的基于内核的子系统,它提供一个性能分析框架,比如硬件(CPU、PMU(Performance Monitoring Unit))功能和软件(软件计数器、tracepoint)功能。通过perf,应用程序可以利用PMU、tracepoint和内核中的计数器来进行性能统计。它不但可以分析制定应用程序的性能问题(per thread),也可以用来分析内核的性能问题,当然也可
2020-08-31 21:04:05
3822
原创 Linux进程调度分析记录,进程优先级,隔离处理器,isolcpus,BCC、bpftrace工具
目录1 基本概念1.1 软实时和硬实时1.2 进程状态1.3 进程的分类1.4 调度不允许的情况2 优先级(静态优先级/动态优先级/实时优先级/nice值)2.1 普通进程的静态优先级(task_struct->static_prio)2.2 实时进程的实时优先级(task_struct->rt_priority)2.3 限期进程2.4 static_prio / rt_priority / normal_prio / prio总结2.5 内核中优先级
2020-08-04 17:06:14
1765
1
原创 linux锁和内核同步
目录1 基本概念1.1 可重入内核 / 可重入函数1.2 内核抢占 / 用户抢占1.2.1 内核抢占1.2.2 用户抢占1.3 临界区 / 竞争条件 / 同步1.4 原子操作1.5 细粒度锁、粗粒度锁、锁的竞争和系统的扩展性2 信号量(struct semaphore)2.1 简介2.2 注意点2.3 进程状态2.4 常用函数3 读写信号量(struct rw_semaphore)3.1 简介3.2 常用函数4 完成量(completion
2020-08-03 20:57:39
433
原创 linux时间管理,时钟中断,系统节拍
目录1 时钟中断/系统节拍1.1 简介1.2 系统时钟中断需要处理的事情2 HZ2.1 简介2.2 动态调节时钟中断 / CONFIG_NO_HZ / 降低功耗/tickless mode2.3 获取当前运行系统的HZ值 / USER_HZ3 jiffies和jiffies_64(记录系统启动以来产生的节拍数)3.1 简介3.2 访问jiffies和jiffies_643.3 jiffies和毫秒微秒之间的转换4 uptime(系统启动到现在的时间;系统空闲时
2020-08-03 18:10:19
2916
原创 ls2k1000在linux3.10内核下的中断分析
目录1 基本知识1.1 ls2k1000的中断组成1.2 GS264中断相关的寄存器2 ls2K1000 在 linux3.10 内核下的中断初始化过程2.1 大致过程2.2 函数具体分析:trap_init();2.2.1 函数说明2.2.2 trap_init()函数关键代码2.3 函数具体分析:early_irq_init();2.3.1 函数说明2.3.2 early_irq_init()函数的代码2.4 函数具体分析:init_IRQ();2.4
2020-08-03 13:15:19
1743
ls2k1000 DVO转HDMI(sii9022a)配置程序
2018-10-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人