记忆频道

时间:2015-01-07 18:47:11

标签: linux memory memory-management allocation

问题(背景):

我的目标是一台有四个内存通道和一张pcie卡的机器,我希望尽快流式传输数据。考虑到理论上卡可以单向传输大约8GB / s(7.88GB / s),这将导致大约15.8GB / s的吞吐量。看this我知道我的最大内存传输速率是12.8GB / s。即使没有考虑实际安装的内存,显然PCIe吞吐量超过了一个内存通道可以做的事情。

为了避免这种情况,我想确保流向设备的内存块I最终位于与我收到的通道不同的通道上。

问题

  1. 是否可以在linux内核中的特定通道上分配内存?如果可以,那么要使用的接口是什么?
  2. 无论如何都要获取有关物理内存映射到不同通道的信息(哪个地址范围/页面框架在哪个通道上)?
  3. 是否有请求将页面移动到特定帧/在特定帧上分配的接口?
  4. 如何确保页面在换出/重新定位之前被固定? (假设我必须做magic_allocate_page_on_channel(); get_user_pages(...)我会有一个短暂的时间,页面可以(理论上)再次换出,并可能通过get_user_pages交换到不同的框架)

0 个答案:

没有答案