gpt4 book ai didi

linux-kernel - "kernel tainted"是什么意思?

转载 作者:行者123 更新时间:2023-12-02 09:19:49 33 4
gpt4 key购买 nike

我的操作系统是Fedora 17。最近,出现内核污染警告“kernel bug at kernel/auditsc.c:1772!-abrt”:不应报告此问题(这可能是一个已知问题)。发生内核问题,但您的内核已被污染(标志:GD)。内核维护人员无法诊断受污染的报告。

然后,我得到以下信息:

# cat /proc/sys/kernel/tainted
128

# dmesg | grep -i taint
[ 8306.955523] Pid: 4511, comm: chrome Tainted: G D 3.9.10-100.fc17.i686.PAE #1 Dell Inc.
[ 8307.366310] Pid: 4571, comm: chrome Tainted: G D 3.9.10-100.fc17.i686.PAE #1 Dell Inc.

看来“128”这个值是很严重的:128 – 系统已死亡。

这个警告怎么样?由于 chrome 被标记为“受污染”源,有人也遇到过这个问题吗?

最佳答案

为了(过度)简化,“受污染”意味着内核所处的状态不同于从开源源头重新构建并以预期方式使用的状态。这是一种标记内核的方法,以警告人们(例如开发人员)可能存在未知原因导致其不可靠,并且调试它可能很困难或不可能。

在这种情况下,“GD”意味着所有模块都被许可为 GPL 或兼容(即非专有),并且发生了崩溃或 BUG()。

原因如下:

参见:oops-tracing.txt

---------------------------------------------------------------------------
Tainted kernels:

Some oops reports contain the string 'Tainted: ' after the program
counter. This indicates that the kernel has been tainted by some
mechanism. The string is followed by a series of position-sensitive
characters, each representing a particular tainted value.

1: 'G' if all modules loaded have a GPL or compatible license, 'P' if
any proprietary module has been loaded. Modules without a
MODULE_LICENSE or with a MODULE_LICENSE that is not recognised by
insmod as GPL compatible are assumed to be proprietary.

2: 'F' if any module was force loaded by "insmod -f", ' ' if all
modules were loaded normally.

3: 'S' if the oops occurred on an SMP kernel running on hardware that
hasn't been certified as safe to run multiprocessor.
Currently this occurs only on various Athlons that are not
SMP capable.

4: 'R' if a module was force unloaded by "rmmod -f", ' ' if all
modules were unloaded normally.

5: 'M' if any processor has reported a Machine Check Exception,
' ' if no Machine Check Exceptions have occurred.

6: 'B' if a page-release function has found a bad page reference or
some unexpected page flags.

7: 'U' if a user or user application specifically requested that the
Tainted flag be set, ' ' otherwise.

8: 'D' if the kernel has died recently, i.e. there was an OOPS or BUG.

9: 'A' if the ACPI table has been overridden.

10: 'W' if a warning has previously been issued by the kernel.
(Though some warnings may set more specific taint flags.)

11: 'C' if a staging driver has been loaded.

12: 'I' if the kernel is working around a severe bug in the platform
firmware (BIOS or similar).

13: 'O' if an externally-built ("out-of-tree") module has been loaded.

14: 'E' if an unsigned module has been loaded in a kernel supporting
module signature.

15: 'L' if a soft lockup has previously occurred on the system.

16: 'K' if the kernel has been live patched.

The primary reason for the 'Tainted: ' string is to tell kernel
debuggers if this is a clean kernel or if anything unusual has
occurred. Tainting is permanent: even if an offending module is
unloaded, the tainted value remains to indicate that the kernel is not
trustworthy.

关于linux-kernel - "kernel tainted"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27252165/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com