首页/新闻资讯/正文详情

fault do_sigbus

发布时间:2026/9/24 17:56:35 来源:云帆数科 栏目:资讯中心
fault do_sigbus
do_sigbus是 x86 架构缺页异常处理中专门处理SIGBUS信号发送的辅助函数。当handle_mm_fault()返回某些特定的错误如硬件毒化页面VM_FAULT_HWPOISON或 I/O 错误VM_FAULT_SIGBUS时由它来向用户进程发送SIGBUS信号。核心作用与触发场景do_sigbus的职责非常明确处理无法通过常规缺页机制恢复的内存访问错误向用户进程发送SIGBUS信号。它在以下场景中被调用硬件毒化HWPOISON当内核检测到某物理页发生不可纠正的内存错误Machine Check时会标记该页为“毒化”状态。如果进程访问了这类页面就会触发SIGBUS。I/O 错误当从交换空间或文件系统读入页面时发生 I/O 错误内核无法完成页面加载也会发送SIGBUS。函数逻辑与关键操作do_sigbus的典型执行流程如下内核态检查如果异常发生在内核态!(error_code X86_PF_USER)则不能发送信号而是跳转到no_context()尝试通过异常表修复修复失败则触发 Oops。准备siginfo信息将出错地址address、错误码error_code和陷阱号X86_TRAP_PF保存到当前进程的thread结构中确保用户态信号处理程序能通过siginfo获取到这些信息。发送SIGBUS调用force_sig_info_fault(SIGBUS, BUS_ADRERR, address, tsk, NULL, fault)强制向进程发送SIGBUS信号其中si_code为BUS_ADRERR地址错误。参数演进pkey的移除你给出的签名是当前内核的版本它经历了一次重要的简化。早期版本的do_sigbus曾包含u32 *pkey参数但该参数在 2018 年被移除。原因是do_sigbus从不将si_code设置为SEGV_PKUERR因此pkey信息对用户空间毫无用处。移除这个无用的参数让代码更清晰也避免了误导。与其他信号函数的对比函数发送信号适用场景do_sigbusSIGBUS硬件毒化、I/O 错误等无法通过 VMA 修复的异常__bad_area_nosemaphoreSIGSEGV地址不在任何 VMA 中或权限不足page_fault_oops无Oops/Panic内核态访问非法地址且无法修复do_sigbus是缺页异常处理中“非致命但无法恢复”错误路径的终点它确保用户进程能收到明确的SIGBUS信号而不是被误判为普通的段错误或导致内核崩溃。

相关推荐

专科同等学力考研,卡你的不是考试,是能报的院校太少
专科同等学力考研,卡你的不是考试,是能报的院校太少

专科想考非全硕士,先记住一句:真正挡路的,大多不是"考不考得上",而是"能报的学校本来就少"。我接触过的专科起点、后来读上研的朋友,几乎都卡在同一件事上。按"同等学力"身份去报考&… · 2026/9/24 17:56:35

CAG 与 RAG:LLM 知识架构怎么选?
CAG 与 RAG:LLM 知识架构怎么选?

CAG 与 RAG:LLM 知识架构怎么选? 很多团队做 LLM 应用,都会撞上同一堵墙:模型本身挺聪明,但它不了解你的业务。它没读过你的内部制度、产品文档,也不知道上周客户到底吐槽了什么。你要做的,就是… · 2026/9/24 17:56:35

判断一篇站外稿还活着:为什么 HTTP 200 不够
判断一篇站外稿还活着:为什么 HTTP 200 不够

如果你也在多个平台分发内容,早晚会需要一个脚本回答这个问题:我上个月发出去的那些稿子,现在还在吗? 最省事的写法是请求一下看状态码,200 就算活着。这篇文章要说的是:这个判据在真实的内容平台上会同时犯… · 2026/9/24 17:56:35

电子印章选型指南:五家平台对比 + 五个指标 + 七条自测清单
电子印章选型指南:五家平台对比 + 五个指标 + 七条自测清单

公司有两枚章:公章和合同专用章。上了电子合同之后,行政在系统里建了六枚,因为不知道哪些该建、哪些不该建,索性把能建的都建了。 半年后审计问一句“这六枚章分别谁在用、什么时候用过”,没人答得上来。 电子印章看着… · 2026/9/24 18:34:36

光子逆设计基准测试实战:从拓扑优化到Python实现
光子逆设计基准测试实战:从拓扑优化到Python实现

简介:面向光子集成器件逆设计与拓扑优化研究者的Python基准测试套件,基于ceviche有限差分频域模拟器构建,借助HIPS autograd实现自动微分,可用于对波导分束器、模式转换器、波导弯曲及波分复用器等集成光子组件进行算法性能评估与… · 2026/9/24 18:34:36

造形家与OpenRoads怎么选?从方案到施工图的道路设计工具选型指南
造形家与OpenRoads怎么选?从方案到施工图的道路设计工具选型指南

这两年做道路与场地项目,我最大的感受是:工具选择从来不是"谁更好"的问题,而是"你在哪个阶段、要交付什么东西、团队是什么构成"的问题。最近不少朋友在后台问我同一个问题——造形家和OpenRoads到底该学哪个、该用哪个&… · 2026/9/24 18:34:36

Matlab实现模糊C均值聚类(FCM)完整流程与数据归一化实践
Matlab实现模糊C均值聚类(FCM)完整流程与数据归一化实践

做数据分类的时候,聚类往往是第一步。实际需求里经常碰到这种情况:手里有一批样本,每个样本带一堆特征,既没有标签也不知道该分几类,用传统K-means又总觉得边界太硬——样本可能同时兼具多个类别特征,硬塞进… · 2026/9/24 18:34:16

SAP BTP Cloud Foundry 路由映射实践:从入门到避坑指南
SAP BTP Cloud Foundry 路由映射实践:从入门到避坑指南

在 SAP BTP Cloud Foundry 上部署应用,很多人 push 成功之后就以为万事大吉,结果打开控制台输出的 URL,迎面一个 404,或者干脆 DNS 解析失败。问题多半出在 route 映射上。这篇东西就是聊透 SAP BTP Cloud Foundry 里的路由映射—… · 2026/9/24 18:34:16

基于Django的KVM虚拟化集群管理平台设计与实践
基于Django的KVM虚拟化集群管理平台设计与实践

设想一个真实的场景:机房里有几十台物理服务器,每台上边都跑着十几台虚拟机,日常维护要开新VM、要给VM做系统、要迁移、要调整配置,全都靠SSH上去敲virsh命令。几十台宿主机散布在不同机柜,IP和密码记了一本子&#xf… · 2026/9/24 18:34:16

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码