Linux Kernel Tainted
2012-01-09 12:00
239 查看
Kernel Tainted
Posted January 6th, 2008 by jfinstromThe Linux kernel maintains a "taint state" which is included in kernel error messages. The taint state provides an indication whether something has happened to the running kernel that affects whether a kernel error or hang can be troubleshot effectively by
analysing the kernel source code. Some of the information in the taint relates to whether the information provided by the kernel in an error message can be considered trustworthy.
As an example, the taint state is set when a machine check exception (MCE) has been raised, indicating a hardware related problem has occurred.
Once the taint state of a running kernel has been set, it cannot be unset other than by reloading the kernel by shutting down, and then restarting the system.
Taint flags
The taint status of the kernel not only indicates whether or not the kernel has been tainted but also indicates what type(s) of event caused the kernel to be marked as tainted. This information is encoded through single-character flags in the string following
"Tainted:" in a kernel error message.
* P: A module with a Proprietary license has been loaded, i.e. a module that is not licensed under the GNU General Public License (GPL) or a compatible license. This may indicate that source code for this module is not available to the Linux kernel developers
or to Novell's developers.
* G: The opposite of 'P': the kernel has been tainted (for a reason indicated by a different flag), but all modules loaded into it were licensed under the GPL or a license compatible with the GPL.
* F: A module was loaded using the Force option "-f" of insmod or modprobe, which caused a sanity check of the versioning information from the module (if present) to be skipped.
* R: A module which was in use or was not designed to be removed has been forcefully Removed from the running kernelusing the force option "-f" of rmmod.
* S: The Linux kernel is running with Symmetric MultiProcessor support (SMP), but the CPUs in the system are not designed or certified for SMP use.
* M: A Machine Check Exception (MCE) has been raised while the kernel was running. MCEs are triggered by the hardware to indicate a hardware related problem, for example the CPU's temperature exceeding a treshold or a memory bank signaling an uncorrectable
error.
* B: A process has been found in a Bad page state, indicating a corruption of the virtual memory subsystem, possibly caused by malfunctioning RAM or cache memory.
The taint flags above are implemented in the standard Linux kernel and indicate the information provided in kernel error messages is not necessarily to be trusted.
Usually in asterisk builds the taint is a "P" meaning they didn't specify a license r a compatible license so the kernel doesnt know the source is available for debugging
相关文章推荐
- linux kernel tainted
- arm linux kernel启动之start_kernel
- linux日志报错localhost kernel: BUG: soft lockup - CPU#0 stuck for 10s!
- 今晚9点:Linux内存管理的meltdown漏洞修复、usr/kernel安全等微课(2018.3.28晚)
- Linux kernel panic解决方法
- Linux 内核API文档(The Linux Kernel API)
- Linux驱动:TI达芬奇系列kernel中cup类型的判断,以cpu_is_ti81xx()为例
- Android筆記-Linux Kernel Ftrace (Function Trace)解析
- linux kernel development 3rd
- [OS]Assembly in Linux Kernel
- KSM(Kernel Samepage Merging) 剖析:Linux 内核中的内存去耦合
- linux kernel 编译工具链
- video : Write and Submit your first Linux kernel Patch
- Linux Kernel boot sequence
- linux-kernel调试技术大全<一>上海嵌入式索漫科技培训教材
- linux kernel Oops调试信息分析 异常调试
- Linux kernel memory management (ARM)
- [轉]Linux kernel <2.6.29 exit_notify() local root exploit分析(2009-1337)
- Build A Minimal Linux Kernel
- Compile the latest Kernel(linux-3.1-rc4) On Ubuntu Plateform