Memory management Linux中中毒页面的用途是什么?调用check\u poison\u mem后出现页面损坏错误意味着什么?

Memory management Linux中中毒页面的用途是什么?调用check\u poison\u mem后出现页面损坏错误意味着什么?,memory-management,linux-kernel,linux-device-driver,embedded-linux,memory-corruption,Memory Management,Linux Kernel,Linux Device Driver,Embedded Linux,Memory Corruption,我正在开发一个设备驱动程序系统,目前正在进行崩溃后的日志分析。我在日志中发现以下错误 损坏页面:e5b06d60 pfn:0xc07eb中毒 而且 pagealloc:内存损坏 ffedd90:8080….. … ffede40:80 80….. 这是什么意思?什么是中毒?为什么使用 当我跟踪调用跟踪时,它会一直返回到一些内存分配IOCTL。为什么内存分配调用会一直滴到这个错误消息 如果被扫描的内存区域确实有非PAGE_POINTION的值,那么它是如何发生的 在Linux内核(4.1.1

我正在开发一个设备驱动程序系统,目前正在进行崩溃后的日志分析。我在日志中发现以下错误

损坏页面:e5b06d60 pfn:0xc07eb中毒

而且

pagealloc:内存损坏

ffedd90:8080…..

ffede40:80 80…..

  • 这是什么意思?什么是中毒?为什么使用

  • 当我跟踪调用跟踪时,它会一直返回到一些内存分配IOCTL。为什么内存分配调用会一直滴到这个错误消息

  • 如果被扫描的内存区域确实有非PAGE_POINTION的值,那么它是如何发生的

  • 在Linux内核(4.1.10)中,PAGE_毒药定义为0xaa。为什么我会看到80?“80”是内存损坏吗


  • 很抱歉,如果这太琐碎了,我是Linux新手,我找不到简单的解释来说明中毒的必要性以及在这种情况下发生了什么。

    您有一些代码要显示吗?页面管理错误可能会产生延迟效果。@0andriy:嗯,很遗憾没有。我的意思是,由于策略的原因,我无法添加任何代码。此外,调用堆栈至少有20个调用深度。然后您可以自己处理。对不起,但是你看到了开源的力量!页面中毒是一种调试辅助工具。页面在释放时会中毒,在分配时会被检查。所以,如果它试图分配一个未中毒的页面,那么有什么东西一直在破坏可用内存。