最近编译内核驱动出现错误,使用dump_stack()函数查看问题,出现以下日志:

其中,对CPU: 0 PID: 7852 Comm: v4l_id Tainted: G           O    4.9.140-tegra #1这句话的意义感到不明确,经过各方面查找,最终在 The Linux Kernel 的doc里面找到了相关解释:

某些oops报告在程序计数器之后包含字符串“ Tainted:”。这表明内核已被某种机制污染。字符串后跟一系列位置敏感的字符,每个字符代表一个特定的污染值。

如果加载的所有模块均具有GPL或兼容许可证,则为“ G”;如果已加载任何专有模块,则为“ P”。那些不具有insmod不能识别为GPL兼容的MODULE_LICENSE或MODULE_LICENSE的模块被认为是专有的。

F如果任何模块是由强制加载的,insmod -f,如果所有模块都已正常加载。

S如果oop发生在未通过安全运行多处理器认证的硬件上运行的SMP内核上。当前,这仅发生在不具有SMP功能的各种Athlon上。

R如果某个模块是由强制卸载的,如果所有模块都已正常卸载。

M如果任何处理器报告了计算机检查异常, 则没有发生计算机检查异常。

B 如果页面释放功能发现错误的页面引用或某些意外的页面标志。

U如果用户或用户应用程序特别要求设置Tainted标志,则返回否则。

D 如果内核最近死亡,即出现OOPS或BUG。

A 如果ACPI表已被覆盖。

W如果内核先前已发出警告。(尽管某些警告可能会设置更具体的异味标记。)

C 如果已加载登台驱动程序。

I 如果内核正在解决平台固件(BIOS或类似版本)中的严重错误。

O 如果已加载外部构建的(“树外”)模块。

E 如果未签名的模块已加载到支持模块签名的内核中。

L 如果以前在系统上发生过软锁定。

K 如果内核已经过实时修补。

附上链接:https://www.kernel.org/doc/html/v4.15/admin-guide/tainted-kernels.html#

通过日志显示可以看出来,这个内核污染的原因是“加载的所有模块均具有GPL或兼容许可证”和“加载外部构建的(“树外”)模块”导致的,并不是本身的问题

Tainted: G O 分析(Tainted kernels)相关推荐

  1. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - G. 单词分析

    试题 G: 单词分析 时间限制: 1.0s 内存限制: 512.0MB 本题总分:20 分 [问题描述] 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组成,有些单词很长,远远超过正常 ...

  2. 文法G[E]分析表分析字符串(i+)-编译原理

    已知文法G[E]分析表(如下所示) ) 下面来分析(i+) 首先在分析区填入#E,余留下输入串为(1+)#,所用产生式查上表:E行(列,所以为:E->TE' 如下图所示: 随后E出栈,所用产生式 ...

  3. 【C语言】第十一届蓝桥杯省赛第二场-----试题 G: 单词分析

    题目描述 小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度.小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪 ...

  4. Tainted kernels

    文章目录 前言 一.简介 二.Decoding tainted state at runtime 三.源码分析 总结 参考资料 前言 (1) 在加载自己编写得驱动模块是,加载时看到: module v ...

  5. linux内核 异常 log,Linux Kernel WARN()/BUG(), Oops/Panic, Tainted分析

    稳定性范畴, 参考5.x kernel. kernel Oops Oops指的就是内核的不正确行为,比如对驱动来说:static int i82092aa_pci_probe(struct pci_d ...

  6. smp_call_function_many死锁问题分析2 -- soft lockup hard lockup

    smp_call_function_many死锁问题分析2 -- soft lockup & hard lockup 上篇回顾 1.找出没有响应IPI的CPU 2.问题现象分析 2.1 har ...

  7. linux空指针异常能捕获到吗,一次kernel panic分析--空指针in handle_IRQ_event

    一.故障现象 内核panic,打印如下: 点击(此处)折叠或打开 Unable to handle kernel NULL pointer dereference at 000000000000003 ...

  8. Linux内核奔溃分析

    前言 最近遇到一个kernel奔溃的问题,错误日志开头一部分如下: [ 355.262451@0] Unhandled fault: external abort on non-linefetch ( ...

  9. 用trace32分析内核死机

    dmesg 初步分析 [ 423.400073] Unable to handle kernel NULL pointer dereference at virtual address 0000000 ...

最新文章

  1. 开发日记-20190605 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  2. Thread 小总结
  3. mycat 10 分钟轻松入门
  4. ValueError: No engine for filetype: 'csv'解决与书本7-2代码改写
  5. ISO8583报文协议详解
  6. 「Luogu」[JSOI2007]字符加密 解题报告
  7. navigation笔记
  8. c语言malloc函数的用法和意义
  9. abp框架java_ABP框架的体系结构及模块系统讲解
  10. 墨刀导出html无法使用,墨刀用户必读,能解决你80%的问题(持续更新中)
  11. C语言中的逻辑移位和算术移位
  12. ESP8266/ESP32/nodeMcu/wemos D1 MINI开发板用TFT_eSPI库驱动ST7789(240*240)TFT显示屏
  13. python如何学 Python主要能做什么
  14. 信息学奥赛一本通:1194:移动路线
  15. 结合若依框架实现微信小程序授权登录
  16. 第九章 面向对象方法学(3)
  17. webkit笑傲江湖,悲乎?乐乎?
  18. 前端页面显示的时间格式为:2022-03-18T01:46:08.000+00:00 如何转换为:年-月-日 时:分:秒 ?
  19. 深度学习中的Epoch,Batchsize,Iterations深刻理解
  20. 天梯赛---7-6 集合相似度 (25分)

热门文章

  1. v4l-utils工具包
  2. AutoRunner自动化测试工具如何创建项目-Alltesting|泽众云测试
  3. 3C手机中框铝板尺寸、平面度在线检测案例
  4. 谁有C语言的教学视频
  5. 一文读懂:十大DNA甲基化研究核心问题
  6. MDP模型之Grid World(Q Learining方法)
  7. 按钮的禁用disabled属性
  8. 网络基础CCNP|OSPF(2)
  9. PostgreSQL数据库头胎——后台一等公民进程StartupDataBase StartupXLOG函数进入Recovery模式
  10. flicker(画面闪烁)现象产生的原因