Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 通过x86 PAT表将内存设置为不可缓存大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我想在用户空间进程中将一系列内存设置为不可缓存( Linux,x86-86). This question接近,但只提到了与物理内存一起工作的MTRR寄存器.我想使用PAT表来实现这一点,因为它们提供了更细粒度的控制,它们允许虚拟内存在逐页的基础上设置为不可缓存. Linux文档,Documentation/x86/pat.txt,建议应该有mmap和SYNC标志,但我在实践中找不到如何做到这一点
我想在用户空间进程中将一系列内存设置为不可缓存( Linux,x86-86). This question接近,但只提到了与物理内存一起工作的MTRR寄存器.我想使用PAT表来实现这一点,因为它们提供了更细粒度的控制,它们允许虚拟内存在逐页的基础上设置为不可缓存.

Linux文档,Documentation/x86/pat.txt,建议应该有mmap和SYNC标志,但我在实践中找不到如何做到这一点.理想情况下,我想使用诸如mprotect(地址,范围,O_UNCACHABLE)之类的调用.

解决方法

我建议编写内核模块,为用户级进程提供必要的接口.在内核模块中,您可以使用 set_memory_uc来控制页面属性.

关于模拟器:除非你在门级进行模拟,否则它应该慢一到几千倍 – 不是一百万倍.不要忘记虑编写内核模块所花费的时间.如果您花费几周的时间来编写和调试模块,那么最好使用模拟器进行一次性实验.

大佬总结

以上是大佬教程为你收集整理的linux – 通过x86 PAT表将内存设置为不可缓存全部内容,希望文章能够帮你解决linux – 通过x86 PAT表将内存设置为不可缓存所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。