DMAR:[fault reason 06] PTE Read access is not set

简介:

    场景说明:使用USB设备启动Linux系统,出现这个情况下很可能导致根文件系统损坏,这种情况下的日志异常如下:

dmar:DRHD: handling fault status reg 2
dmar:DMAR:[DMA Read] Request device [00:1f.2] fault addr caa40000
DMAR:[fault reason 06] PTE Read access is not set

然后提出如下的问题:

问题1:DRHD是什么
问题2:DMAR是什么
问题3:00:1f.2是什么地址,指向谁
问题4:PTE是什么
问题5:NIC是什么
问题6:DPDK是什么
If you don't test the DPDK in virtualization environment.
The easy way to fix it is to disable the VT-d in the BIOS

如下是google的原文:

 


google上说该问题可以通过修改内核参数消除:
intel_iommu=off or intel_iommu=pt
但是无效。由于水平有限如下是:
I've googled that the errors should dissapear after setting intel_iommu=off or intel_iommu=pt kernel parameter but for me it's not

working at all. I've only learned that I shoudn't ignore this error as it affects 
performance (which is correct as my fps in games dropped badly) and destroy filesystems(关注点在
损坏文件系统) (I don't understand why as it suppouse to be problem with video driver)
确实在现场中发现这个问题,根文件系统严重损坏,并且导致整个U盘无法格式化,变成只读,
完全over了。

I solved it by disabling virtualization support in bios... I don't get a thing now but I'm not using it anyway so... solved?
Edit: not solved, sorry, it was just for one reboot, probably prompt didn't appear for some reason...

查了资料发现参数是: intel_iommu=igfx_off 问题dmar表或者bios损坏了针对这个问题不得而知
Okay, so basically the command needs to be intel_iommu=igfx_off now (this error is rare and my previous search gave me solution

from 2009) and it fixed the issue. As I've learned, the error is because dmar tables or my BIOS are broken... don't really know

what it does, I'll check for upgrade but it's not Linux fault so I'm markin it as solved after all...


以上是问题的难点:
1)该错误是否会引起文件系统损坏
2)该错误是否是硬件问题




     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1387042,如需转载请自行联系原作者


相关文章
content‘ is declared but its value is never read.富文本编辑器中这里必须的script中添加setup,引入到set当中时,带title的富文本写法
content‘ is declared but its value is never read.富文本编辑器中这里必须的script中添加setup,引入到set当中时,带title的富文本写法
|
11月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
593 2
|
存储 缓存 JavaScript
Set和Map有什么区别?
Set和Map有什么区别?
829 1
|
编译器 C++ 容器
【c++丨STL】基于红黑树模拟实现set和map(附源码)
本文基于红黑树的实现,模拟了STL中的`set`和`map`容器。通过封装同一棵红黑树并进行适配修改,实现了两种容器的功能。主要步骤包括:1) 修改红黑树节点结构以支持不同数据类型;2) 使用仿函数适配键值比较逻辑;3) 实现双向迭代器支持遍历操作;4) 封装`insert`、`find`等接口,并为`map`实现`operator[]`。最终,通过测试代码验证了功能的正确性。此实现减少了代码冗余,展示了模板与仿函数的强大灵活性。
467 2
|
存储 JavaScript 前端开发
for...of循环在遍历Set和Map时的注意事项有哪些?
for...of循环在遍历Set和Map时的注意事项有哪些?
896 156
|
11月前
|
存储 算法 容器
set_map的实现+set/map加持秒杀高频算法题锻炼算法思维
`set`基于红黑树实现,支持有序存储、自动去重,增删查效率为O(logN)。通过仿函数可自定义排序规则,配合空间配置器灵活管理内存。不支持修改元素值,迭代器失效需注意。`multiset`允许重复元素。常用于去重、排序及查找场景。
|
存储 C++ 容器
unordered_set、unordered_multiset、unordered_map、unordered_multimap的介绍及使用
unordered_set是不按特定顺序存储键值的关联式容器,其允许通过键值快速的索引到对应的元素。在unordered_set中,元素的值同时也是唯一地标识它的key。在内部,unordered_set中的元素没有按照任何特定的顺序排序,为了能在常数范围内找到指定的key,unordered_set将相同哈希值的键值放在相同的桶中。unordered_set容器通过key访问单个元素要比set快,但它通常在遍历元素子集的范围迭代方面效率较低。它的迭代器至少是前向迭代器。前向迭代器的特性。
831 0
|
编译器 C++ 容器
用一棵红黑树同时封装出map和set
再完成上面的代码后,我们的底层代码已经完成了,这时候已经是一个底层STL的红黑树了,已经已符合库里面的要求了,这时候我们是需要给他穿上对应的“衣服”,比如穿上set的“衣服”,那么这个穿上set的“衣服”,那么他就符合库里面set的要求了,同样map一样,这时候我们就需要实现set与map了。因此,上层容器map需要向底层红黑树提供一个仿函数,用于获取T当中的键值Key,这样一来,当底层红黑树当中需要比较两个结点的键值时,就可以通过这个仿函数来获取T当中的键值了。我们就可以使用仿函数了。
207 0
|
存储 编译器 容器
set、map、multiset、multimap的介绍及使用以及区别,注意事项
set是按照一定次序存储元素的容器,使用set的迭代器遍历set中的元素,可以得到有序序列。set当中存储元素的value都是唯一的,不可以重复,因此可以使用set进行去重。set默认是升序的,但是其内部默认不是按照大于比较,而是按照小于比较。set中的元素不能被修改,因为set在底层是用二叉搜索树来实现的,若是对二叉搜索树当中某个结点的值进行了修改,那么这棵树将不再是二叉搜索树。
504 0