自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(163)
  • 资源 (4)
  • 收藏
  • 关注

原创 【Kdump 专栏】vmcoreinfo存储2 - kimage_crash_copy_vmcoreinfo

本文摘要探讨了Linux内核崩溃转储机制中的关键数据结构kimage,重点分析了其存储内核映像信息的功能。文章展示了kimage结构体示意图,说明其作为内存区域管理容器的作用,并特别指出image->start字段用于捕获内核入口地址(entry)的重要功能。该内容涉及内核崩溃分析的基础知识,有助于理解系统故障时如何保存关键内存信息。

2025-06-12 11:19:21 94

原创 【Kdump 专栏】 vmcoreinfo_note 保存和加载

摘要:该调试过程记录了Linux内核崩溃分析的关键步骤:首先检查vmcoreinfo_note地址及初始化信息,获取核心转储基础数据;随后定位log_buf地址以分析内核日志;接着排查串口通信问题;最后捕获系统panic卡死现场。通过多维度信息采集(内存地址、日志缓冲、硬件接口状态),为诊断内核级故障提供了完整的调试链路,尤其有助于分析系统崩溃前的最后执行状态。

2025-06-12 09:02:07 27

原创 【Flash 芯片 & MTD 专栏】Flash芯片识别异常导致mtd子系统分区创建失败

2025-06-10 17:34:52 176

原创 CPU Idle 状态与中断的关系

Linux内核中,当CPU进入深度idle状态(如C3/C6)时,可能关闭中断导致IPI唤醒延迟。进入idle前可能调用local_irq_disable()屏蔽中断,加上硬件需恢复时钟和电源状态,会增加IPI响应时间。延迟主要来自:1)中断屏蔽期间无法处理IPI;2)深层C-State的硬件恢复耗时。可通过限制C-State深度、优化中断处理或调整cpuidle策略来减少延迟。在深层idle状态下,中断确实可能被关闭,需权衡节能与响应速度。

2025-06-10 15:51:32 649

原创 【Kdump 专栏】 log_buf异常问题

该文档展示了Linux内核日志系统的关键数据结构获取方法。通过sys_log_iter接口和printk_ring_buffer实现内核日志的高效存取,图示了相关数据结构的获取流程。系统采用环形缓冲区存储printk日志,支持日志迭代读取功能。代码片段展示了内核日志缓冲区的访问方式,为系统日志分析提供了底层支持。 (摘要共95字,准确概括了图片展示的Linux内核日志机制核心内容)

2025-06-10 14:03:29 97

原创 【Trace32专栏】使用trace32 定位分析log_buf问题

本文介绍了获取log_buf变量信息的方法。首先通过图示标出了log_buf变量的地址(红框处),然后展示了使用view info命令查看该变量信息的界面截图。文章比较了直接dump与使用Data.dump命令(指定地址格式NSD:0x0::0xFFFF0000093B3580)两种方式,确认两者输出的数据结果完全一致,并通过多张截图直观呈现了操作过程和输出内容。这些方法可以帮助开发人员正确获取和分析log_buf变量的内存数据。

2025-06-10 10:52:15 133

原创 【Ftrace 专栏】Ftrace 基础使用

文章摘要: Ftrace基础使用指南介绍了四种内核函数追踪方法:1) 通过function_tracer查看特定函数执行;2) 利用kprobe event追踪函数;3) 通过模块过滤查看模块执行函数;4) 使用多种方式获取函数调用栈信息。文章提供了详细的Shell脚本示例,涵盖设置追踪过滤器、开启/关闭追踪、保存日志等操作步骤,特别展示了如何结合stacktrace选项获取函数调用关系。这些方法适用于调试内核模块、分析代码执行流程等场景。

2025-06-08 17:37:55 219

原创 【ARM64信号处理过程中的上下文切换】

摘要(150字以内) 信号处理中的上下文切换涉及多个关键步骤:当信号触发时,系统保存当前任务状态(用户态→内核态),处理信号回调函数(可能嵌套执行),最后恢复原任务。该过程需要处理栈帧切换、寄存器保存及信号掩码等机制,确保执行流正确转移与返回。参考资料通过图示和文字解析了信号处理流程、内核/用户态切换逻辑,并讨论了异步处理时的并发控制问题,为理解信号机制提供了系统级视角。 (注:摘要严格控制在150字,已整合三篇参考资料的核心观点)

2025-06-08 16:45:39 107 1

原创 【Ftrace专栏】Linux内核社区补丁:关于使用stacktrace输出抢占计数问题

摘要:Ftrace在使用trace_stack时显示的preempt_count抢占计数存在误差,因为回调函数前后会进行抢占计数操作,导致显示的是trace后的值而非实际值。通过使用tracing_gen_ctx_dec()减去人为增加的计数,可获得更准确的抢占计数结果。补丁解释了该问题并提供了解决方案,使堆栈跟踪中显示的抢占计数更符合实际需求。

2025-06-08 16:39:46 75

原创 【Ftrace专栏】function graph的trace输出格式使用

使用Linux内核的function graph tracer可以跟踪函数耗时,分析内核代码的执行流,并且还提供了很多选项开关来对输出的内容进行定制,进一步提高分析效率

2025-06-08 15:43:45 526

原创 Linux内核 - 日志输出系统

本文摘要聚焦Linux内核日志机制,主要涉及printk的实现原理与应用场景。两篇文章分别解析了printk的环形缓冲区和日志级别机制,指出其作为内核态printf的异步特性。第三篇对比了kmsg与dmesg两种日志获取方式的差异,强调/proc/kmsg的实时性特点。另附IMX平台UART驱动分析作为扩展参考。这些技术文档共同揭示了Linux内核日志系统的核心架构,包括消息存储、优先级过滤和用户态接口等关键设计,为驱动开发人员提供了重要的调试工具实现原理。

2025-06-07 10:09:30 191

原创 【Ftrace 专栏】Ftrace 参考博文

Linux 系统中 ftrace 工具可用于内核调用分析、进程调度跟踪和延迟追踪。通过 ftrace 可以精确监控内核函数调用路径,分析特定进程的调度行为,并检测系统延迟问题。该工具在性能优化和实时系统调优中发挥重要作用,Red Hat 等企业版 Linux 也将其用于低延迟场景分析。用户可根据需求配置不同跟踪器,获取内核运行时的详细追踪数据。

2025-06-07 09:47:05 109

原创 Rapidio门铃消息FIFO溢出机制

是硬件控制器内部的缓冲区,用于临时存储接收到的门铃消息(Doorbell Message)。关于RapidIO门铃消息FIFO的。通过上述方法,可精准区分问题根源在。在RapidIO系统中,

2025-06-07 09:22:24 372

原创 【Kdump专题】kexec加载捕获内核和 makedumpfile保存Vmcore

摘要: 本文介绍了Linux内核崩溃转储(crash dump)的获取方法。第一部分使用kexec命令加载捕获内核,指定了启动参数、设备树文件和内核镜像路径,并检查了crash区域状态。第二部分提供了自动保存vmcore和内核日志的脚本,利用makedumpfile工具生成崩溃转储文件,同时保存dmesg日志输出。脚本会为每次转储生成带时间戳的唯一文件名,避免覆盖旧文件。执行过程展示了成功生成日志文件(vdmesg.txt)和崩溃转储文件(vmcore)的完整输出。

2025-06-04 11:28:21 155

原创 kexec_trylock 补丁

该补丁解决了PREEMPT_RT内核中NMI panic场景下无法生成crash dump的问题。原代码使用mutex_trylock()在NMI上下文中会触发警告并失败,因为RT mutex无法在中断上下文中使用。解决方案是将kexec_mutex替换为原子变量kexec_lock,使其成为NMI安全的锁机制。虽然某些调用点仍可使用mutex,但统一使用原子锁可避免未来NMI相关的问题。测试通过触发NMI panic验证了修复效果。该修改确保在NMI panic时能正常执行kexec进入kdump内核。

2025-06-04 08:50:34 123

原创 Lauterbach TRACE32专栏

官方培训视频trace32使用技巧博文系统崩溃分析 - vmcore 加载到 Trace32Trace 32 离线 dump 分析环境搭建方法内核trace分析工具入门如何用Trace32分析内核死机trace32调试攻略TRACE32调试:基础调试技巧之SystemMode、SNOOPerhttps://cloud.tencent.com/developer/article/2016944

2025-05-31 09:21:00 172

原创 RCU stall 异常卡住问题

本文简要介绍了Linux内核中RCU(Read-Copy Update)机制的调试过程。首先展示了驱动加载的界面截图,随后呈现了RCU现场状态信息。重点指出当发生RCU stall(停滞)时,系统无法正常触发Kdump内核崩溃转储机制,这对问题诊断造成困难。文中通过两张技术截图直观展示了相关调试信息,揭示了RCU机制在异常情况下的行为表现。

2025-05-30 14:40:14 58

原创 Linux - spi设备驱动适配

https://jishuzhan.net/article/1914679986696552450https://www.cnblogs.com/weidongshan/articles/17183283.htmlhttps://blog.csdn.net/weixin_40407893/article/details/102519627https://blog.csdn.net/yangguoyu8023/article/details/122391253https://blog.csdn.net

2025-05-08 17:45:56 204

原创 linux内核调试工具 - addr2line和gdb定位问题

【代码】linux内核调试工具 - addr2line和gdb定位问题。

2025-04-10 11:09:10 140

原创 Kdump

Kdump依赖双内核机制:生产内核(Primary Kernel)和捕获内核(Capture Kernel)。当系统崩溃时,捕获内核启动并保存内存快照到指定位置。确认目标内核是否启用了以下配置选项(需查看内核的。如果未启用,需重新编译内核并包含这些配置。根据提供的命令和知识库信息,出现。文件系统模块,导致无法挂载。中包含根文件系统的镜像(如。模块或配置,导致无法识别。内核可能未分配足够的内存给。,需确认其配置正确。参数可能未正确传递,或。未正确初始化根文件系统。在启动第二个内核后,通过。

2025-04-04 09:17:22 88

原创 【无标题】

这段注释描述了在 Linux 内核中,将定时器的基准(timer base)切换到一个经过功耗优化后选定的 CPU 目标的条件。如果不满足这些条件,定时器将被移动到当前 CPU,或者当定时器回调函数正在运行时,定时器会保留在之前分配的 CPU 上。这段注释说明了内核在进行定时器基准切换时的决策逻辑,其目的是在满足一定条件下将定时器迁移到功耗优化的 CPU 目标上,同时确保定时器的正常运行和系统的稳定性。

2025-04-02 17:58:25 51

原创 实时内核稳定性 - scheduling while atomic

【代码】实时内核稳定性 - scheduling while atomic。

2025-04-02 17:07:34 52

原创 Kdump配置验证

Linux内核 - Kdump

2025-04-01 15:26:35 39

原创 Linux内核实时机制x - 信号混洗sigwaittest优化2

【代码】Linux内核实时机制x - 信号混洗sigwaittest优化2。

2025-03-31 08:57:49 29

原创 Linux CPU占用率监控工具小结

Linux CPU占用率监控工具小结

2025-03-30 16:29:52 122

原创 Linux设备管理 - PCI总线地址空间

Linux设备管理 - PCI总线地址空间

2025-03-30 16:27:25 33

原创 Linux内核调试 - 死锁检测Lockdep

Linux内核调试 - 死锁检测Lockdep

2025-03-30 16:23:15 70

原创 Linux驱动适配 - efi-rtc

Linux内核驱动之efi-rtc

2025-03-30 16:21:35 95

原创 Linux内核调试 - kprobe 原理&使用

Linux内核调试 - kprobe原理&使用

2025-03-30 16:19:30 46

原创 Linux内核调试 - Ftrace原理分析1

Linux内核调试 - Ftrace原理分析1。

2025-03-30 16:17:53 32

原创 Linux内存管理 - 内存检测技术

Linux 内存检测技术

2025-03-30 16:15:59 127

原创 Linux内核调试 - Hung_task机制3 - mutex 案例分析

【代码】Linux内核调试 - Hung_task机制3 - mutex 案例分析。

2025-03-30 11:06:45 51

原创 Linux内核调试 - Hung_task机制2 - 内核配置

系统性能监控:通过Hung_task 检测,可以及时发现系统中的异常任务,避免系统性能下降。分析I/O问题:如果任务因等待I/O操作而挂起,Hung_task 可以提高堆栈信息分析。调试死锁: 当任务因竞争锁资源而进入D状态时,Hung_task 可以帮助定位死锁问题。

2025-03-28 17:45:49 189

原创 Linux内核调试 - ps 查看系统任务

【代码】Linux内核调试 - ps 查看系统任务。

2025-03-27 11:01:09 39

原创 Linux内核调试 - Hung_task机制1 - 源码逻辑

【代码】Linux内核调试 - Hung_task机制1 - 源码逻辑。

2025-03-26 22:12:25 114

原创 Linux内核调试 - dynamic debug

文件目录:kernel-4.14\Documentation\admin-guide\dynamic-debug-howto.rst参数作用。

2025-03-26 11:06:59 633

原创 Linux实时内核 - RCU机制x - RCU_BOOST 提高RCU线程优先级

在可抢占 RCU 环境下,内核允许在 RCU 读侧临界区内进行抢占。确实,CONFIG_RCU_BOOST 是 Linux 内核中的一个配置选项,它与可抢占 RCU (Preemptible RCU) 配合使用,旨在解决低优先级进程长期占用RCU读侧临界区的问题,进而避免由于这些临界区长时间不退出导致的内存耗尽等问题。简而言之,通过配合使用 CONFIG_RCU_BOOST 和可抢占 RCU,Linux 内核能够更好地管理 RCU 读侧临界区的生命周期,防止因低优先级任务导致的系统性能下降或资源耗尽问题。

2025-03-26 08:54:38 60

原创 内核稳定性问题 - hrtime异常1 - scheduling while atomic

4.19 逻辑由此得出结论,在实时内核下,如果未显示定义高精度定时器,则默认软中断处理。!//如果未显示配置HARD模式,则默认配置为软中断处理模式if (!#endif//软/硬类型 枚举位置。

2025-03-25 11:13:46 69

原创 RCU 同步机制1

RCU

2025-03-25 09:29:48 119

原创 实时内核稳定性问题 - timerfd问题2 - timerfd使用分析

【代码】实时内核稳定性问题 - timerfd问题2 - timerfd使用分析。

2025-03-24 15:42:55 62

leve6网络编程学习笔记.pdf

leve6网络编程学习笔记.pdf

2021-01-12

arm-cantools.tar

arm-cantools.tar

2023-05-08

嵌入式学习笔记—资料1.7z

学习笔记

2021-01-12

linux学习笔记.7z

linux学习笔记.7z

2021-01-12

LinuxC书写总结文档1.pdf

LinuxC书写总结文档1.pdf

2021-01-12

空空如也

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

TA关注的人

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