这对于模块具有不良污点意味着什么?

Vin*_*nce 2 boot system kernel log drivers

在查看系统日志 (dmesg) 时,我得到了几个:

<module name>: module has bad taint, not creating trace events
Run Code Online (Sandbox Code Playgroud)

这是什么意思 ?

Col*_*ing 5

如果内核函数 trace_module_has_bad_taint() 返回 true,则会出现此警告;即已设置以下任何污点标志:

  • TAINT_FORCED_MODULE(已强制加载模块)
  • TAINT_CPU_OUT_OF_SPEC(CPU 的行为方式可能会导致跟踪问题?)
  • TAINT_FORCED_RMMOD(模块已被强制移除)
  • TAINT_MACHINE_CHECK(机器检查异常,可能使锁 dep 不可靠)
  • TAINT_BAD_PAGE(检测到内存坏页)
  • TAINT_USER(用户空间一直在摆弄可能导致内核问题的系统)
  • TAINT_DIE(内核处于垂死的 oops 阶段)
  • TAINT_OVERRIDDEN_ACPI_TABLE(用户已覆盖默认 ACPI 表)
  • TAINT_WARN(检测到调度程序错误)
  • TAINT_FIRMWARE_WORKAROUND(BIOS 固件有一个解决方法来使事情正常工作)
  • TAINT_SOFTLOCKUP(看门狗定时器检测到软锁定)
  • TAINT_LIVEPATCH(内核已实时修补)

当加载内核模块并且内核跟踪点驱动程序收到通知并检测到上述污染原因之一并跳过跟踪指向它以避免内核崩溃时,就会发生警告。

允许被污染为暂存驱动程序、树外驱动程序和未签名 GPL 模块的模块,不允许所有其他污染。