gpt4 book ai didi

linux - procfs 位于内存中,但是在哪里呢?是否有可能获取其 DMA 地址?

转载 作者:太空宇宙 更新时间:2023-11-04 10:06:57 27 4
gpt4 key购买 nike

我正在 FPGA/SoC 上进行开发,需要通过 DMA 访问 procfs。我知道它是一个位于内存中的伪文件系统,我想知道是否有可能获得它的地址(类似于系统调用表地址在 System.map 中的访问方式)我想访问内存利用率和其他统计信息。

最佳答案

您已经从@Barmar 评论中得到了答案。我只想添加一些有关 procfs 的更多信息。

实际上 pesudo 是假装的东西。这意味着没有实际文件的伪文件系统,它具有文件系统可访问的虚拟条目。

Is it possible to obtain address of DMA?

答案是肯定的。

  1. DMA API 涉及多种地址,了解它们的区别很重要。

  2. 内核通常使用虚拟地址。 kmalloc()、vmalloc() 和类似接口(interface)返回的任何地址都是虚拟地址,可以存储在 void * 中。

  3. 从设备的角度来看,DMA 使用总线地址空间,但它可能仅限于该空间的一个子集。例如,即使系统支持主内存和 PCI BAR 的 64 位地址,它也可能使用 IOMMU,因此设备只需要使用 32 位 DMA 地址。

阅读此内核文档以获取有关 DMA-API-HOWTO.txt 的更多信息

关于linux - procfs 位于内存中,但是在哪里呢?是否有可能获取其 DMA 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51884391/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com