Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 是否可以从内存映射pcie设备就地执行?_Linux_Memory_Linux Kernel_Linux Device Driver_Pci E - Fatal编程技术网

Linux 是否可以从内存映射pcie设备就地执行?

Linux 是否可以从内存映射pcie设备就地执行?,linux,memory,linux-kernel,linux-device-driver,pci-e,Linux,Memory,Linux Kernel,Linux Device Driver,Pci E,在linux内核中,我知道可以在pcie内存中映射内存。如果内存映射pcie设备提供内存区域,是否可以从该设备执行 例如,我有一个带有FPGA和一些内存的PCIe卡。我希望将此区域映射到进程地址空间,并直接从PCIe内存区域执行。这意味着我不希望内核将数据从PCIe设备复制到DDR中的内存页 最终目标是将此PCIe内存添加到新的linux内存区域,并能够使用kmalloc来管理它。不清楚您想要做什么。指令或数据将被放入该内存中?从技术上讲,这应该是可能的,但我不知道linux是否允许您将该内存区

在linux内核中,我知道可以在pcie内存中映射内存。如果内存映射pcie设备提供内存区域,是否可以从该设备执行

例如,我有一个带有FPGA和一些内存的PCIe卡。我希望将此区域映射到进程地址空间,并直接从PCIe内存区域执行。这意味着我不希望内核将数据从PCIe设备复制到DDR中的内存页


最终目标是将此PCIe内存添加到新的linux内存区域,并能够使用kmalloc来管理它。

不清楚您想要做什么。指令或数据将被放入该内存中?从技术上讲,这应该是可能的,但我不知道linux是否允许您将该内存区域标记为可执行文件。与主存储器相比,它的速度非常慢。信任这种设备生成的代码也是非常危险的。将少量数据复制回主内存应该比以缓存线粒度访问单个数据字更快。为了执行,我至少需要在内存中放置指令。数据是可选的。我理解,如果PCIe内存耗尽,速度会变慢,并且可能存在其他风险。据我所知,PCIe内存可以缓存,无论哪种方式,性能问题都不重要。我认为linux必须进行修改才能支持这一点,但我试图了解硬件是否支持这一点。硬件是服务器主板上的x86_64 Xeon。尽管如此,其他x86_64硬件知识将是受欢迎的。由于数据是可选的,我相信DAX能够处理此功能: