如何在内核中分配不可缓存的物理内存?

发布于 2025-01-07 16:12:29 字数 170 浏览 1 评论 0原文

如果要分配不可缓存的物理内存(DRAM)供驱动程序使用, (即,不希望数据被缓存到CPU的数据缓存中 数据被访问)我该怎么做?

有像 kmalloc()、get_free_pages、vmalloc 等函数, 但似乎我无法指定数据是否可以缓存或不使用这些函数? 关于如何做有什么建议吗?

谢谢!

if want to allocate non-cacheable physical memory (DRAM) for usage in the driver,
(ie. don't want the data being cached into the CPU's data cache when
the data are accessed) how could I do this?

there are functions like kmalloc(), get_free_pages, vmalloc, etc,
but seems like that I can't specify if the data can be cached or not using these functions?
any suggestion on how to do it?

thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小耗子 2025-01-14 16:12:29

简而言之,没有简单的方法可以做到这一点,它非常依赖于平台。

如果您想尝试一下,请阅读 drivers/char/mem.c 和《Linux 设备驱动程序第三版》一书的第 15 章。

In short there is no easy way to do this, it is very platform dependent.

If you want a go at it read drivers/char/mem.c and Chapter 15 of the Linux Device Drivers 3rd Edition book.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文