腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(7495)
视频
沙龙
1
回答
带iommu=on和不带VFIO的
Linux
用户空间
DMA
、
、
Linux
用户空间应用程序是否有可能在不被IOMMU阻塞和不使用VFIO的情况下为
DMA
使用自己的
内存
?但是,当启用IOMMU (intel_iommu=on)时,它不能工作,因为我们在用户空间中分配的
内存
不允许
DMA
。官方的解决方案是使用
Linux
接口来
管理
IOMMU,但是我们认为VFIO特性还不是很成熟,我们更希望找到一个更简单的解决方案。 我们能否以某种方式指示IOMMU为我们分配的物理
内存
允许
DMA
?有关如何分配
内存<
浏览 4
提问于2015-05-01
得票数 3
1
回答
Linux
PCIe
DMA
驱动程序
、
、
、
我目前正在为PCIe设备编写一个驱动程序,该驱动程序应该使用
DMA
将数据发送到
Linux
系统。据我所知,我的PCIe设备需要一个
DMA
控制器(
DMA
主),我的
Linux
系统也需要(
DMA
从机)。目前,PCIe设备没有
DMA
控制器,不应该有一个控制器。这让我很困惑。 启动从
内存
映射的PCIe寄存器到的
DMA
传输。从用户空间中的
内存<
浏览 13
提问于2019-07-09
得票数 1
1
回答
Xilinx Zynq平台上使用AXI-
DMA
IP的PCM
DMA
引擎
、
、
、
、
我正在尝试在基于Zynq-7000的平台上使用
DMA
引擎来将PCM流传输到Zynq中的自定义I2S控制器。我的I2S控制器连接到外部放大器。我想通过AXI-
DMA
控制器使用
DMA
。这是我当前的数据路径: 我在Zynq PS上使用的是
Linux
4.10内核。我使用
Linux
的ASoC子系统来产生pcm流和控制我的外部音频放大器。我有512MB的DDR
内存
连接到Zynq。", "
dma
1", "
dma
2&qu
浏览 57
提问于2017-02-24
得票数 3
1
回答
在非
DMA
场景中,存储设备/磁盘内容是否先到CPU寄存器,然后在磁盘读取期间进入主
内存
?
、
、
、
、
在非
DMA
方案中,是否按照以下顺序读取所有磁盘以进入主
内存
: 主存-> CPU寄存器->磁盘寄存器->磁盘存储面(我知道,在
DMA
场景中,CPU只启动传输,然后磁盘的内容直接传输到主
内存
)。如果是的话,在
DMA
出现之前,上述序列是否是一个严重的瓶颈,因为与主
内存
和存储磁盘相比,总体CPU寄存器的容量要小得多?或者它是如此
之
快,以至于人类用户不会注意到
浏览 3
提问于2016-09-18
得票数 2
回答已采纳
3
回答
是否每个
dma
_map_single调用都需要相应的
dma
_unmap_single?
、
、
我正在将一个大的代码库移植到
Linux
内核设备驱动程序。ASIC使用大量的
DMA
通道。 我用GFP_KERNEL|GFP_
DMA
实现了kmalloc
内存
。在启动
DMA
之前,我使用
dma
_map_single获取硬件(物理)
内存
地址,将其提供给硬件。(还会刷新/无效dcache中的
内存
吗?)在
DMA
完成后,我有时需要CPU访问数据,但并不经常。在我通过代码访问数据之前,我做了一个
dma
_unmap_singl
浏览 4
提问于2013-04-23
得票数 5
回答已采纳
1
回答
如何使用FBO提高glTexImage2D性能
、
、
它对pCameraBuffer做了额外的
内存
复制。 1)有什么方法可以提高glTexImage2D的性能吗? 2) FBO会有帮助吗?如何使用帧缓冲区对象进行渲染。
浏览 16
提问于2019-07-02
得票数 0
2
回答
页面错误上的缓存发生了什么?
、
、
、
在处理器中,如果没有足够的空间在
内存
中保存所有正在运行的进程的页面,那么当操作系统替换一个页面时,缓存会发生什么情况?它需要刷新每个页面替换上的缓存吗? 谢谢您的答复。
浏览 3
提问于2013-09-14
得票数 3
回答已采纳
1
回答
PCIe内核驱动程序
DMA
写入错误地址
、
、
我目前正在为
Linux
4.19编写一个PCIe内核驱动程序。首先初始化PCIe驱动程序。分配后,我将物理地址推入
DMA
配置并启动传输。我遇到的问题是,当使用虚拟地址读取
DMA
数据时,我只读取零,而不是通过
DMA
写入任何零。我还测试了
内存
区域,首先通过CPU将ramp写入
内
浏览 5
提问于2020-03-30
得票数 0
2
回答
是否可以使用
dma
_set_mask()告诉内核不要在4G下使用
内存
、
、
、
、
我的pcie设备有一个错误,它不能将地址设置在4G以下,我应该用什么掩码和
dma
_set_mask一起告诉内核呢?
浏览 19
提问于2015-03-12
得票数 0
回答已采纳
2
回答
如何处理作为网络的物理地址以及
DMA
如何连接到它?
、
、
、
我正在开发一个网络驱动程序,对
内存
管理
有点困惑。在TX路径上,我收到一个skb,因为下层只希望获得物理地址,我想我需要调用*virt_to_phys*并将返回值发送到下层。(这有道理吗?)现在,我知道有函数*
dma
_map_single*和*
dma
_unmap_single*。我仍然不知道他们是如何来到这里的。所以下层想要用
DMA
..。我也不确定我是否理解
dma
_map_single描述的含义会很感激你的帮助。
浏览 4
提问于2013-11-11
得票数 0
回答已采纳
1
回答
用户空间缓冲区与
内存
映射文件之间的
DMA
、
、
、
内存
通过用户空间
DMA
:在
linux
中可以通过用户空间
DMA
实现memcpy吗?我知道有一些方法可以通过
DMA
将内核缓冲区复制到用户空间缓冲区,但是想要在用户空间中通过
DMA
对memcpy进行扩展吗?
浏览 1
提问于2014-04-07
得票数 1
回答已采纳
2
回答
内存
映射IO和
DMA
?
、
、
、
,我编辑了这个问题,使
之
更有针对性:在第一次
DMA
之前,CPU必须设置诸如RAM地址范围这样的内容,以便为
DMA
设备所使用。一旦安装工作完成,设备是否可以随意启动传输,基本上拥有这部分RAM,或者在每次直接
DMA
传输之前仍然需要从CPU获得某种许可?MMIO: 通过mmio访问设备
内存
的CPU比CPU访问RAM要昂贵得多,但我可以在我的桌面上看到,pci设备为mmio保留了数百兆字节,有什么例子可以有效地使用这一点(而不是使用
DMA
将数据复制回RAM
浏览 0
提问于2019-09-27
得票数 1
1
回答
pci_alloc_consistent无缓存存储器
、
、
、
公平地说,pci_alloc_consistent分配一个连续的、非缓存的、非分页的内核
内存
块。我问这个问题的原因是,我在一些内核/驱动程序代码(不是在普通内核源代码中)中看到了这样的评论,我认为我理解
内存
是连续的,但是不能确定它是否被分配到非缓存中,因为缓存一致性的思想是保持缓存和
DMA
内存
中的数据一致例如,在Part Ia一节中说:因此,人们无法推断
内存
是非缓存的,所
浏览 6
提问于2015-08-04
得票数 1
回答已采纳
1
回答
为什么我们需要
DMA
池?
、
、
我正在阅读,我不明白为什么需要
DMA
池。什么是<1KB数据传输的最佳性能?
浏览 3
提问于2020-03-07
得票数 0
回答已采纳
2
回答
获取
Linux
下缓冲区的物理地址
、
、
、
、
我在Xilinx的Microblaze上运行
Linux
内核3.3,带有完整的MMU。之所以需要这样做,是因为我有一个
DMA
引擎,可以从预设的物理
内存
地址流式传输数据,所以我需要强制
Linux
在那个确切的
内存
位置创建缓冲文件,这样当我将数据写入这个文件时,它会立即由
DMA
引擎传输到另一个硬件核心更多详细信息: 我的系统有一个512MB的
DMA
通过“Xilinx的多端口
内存
控制器连接到系统上,这个
内存
控制器的基地址是0x90000000,
浏览 11
提问于2013-06-13
得票数 7
1
回答
如何创建100M字节的缓冲区
我正在测试
Linux
上的一个接口的吞吐量。我正在使用
DMA
进行数据传输。
DMA
需要连续的
内存
位置。但是kmalloc无法分配超过1MB的
内存
。有没有其他方法可以创建高达100M字节的大缓冲区?
浏览 0
提问于2011-05-01
得票数 4
1
回答
我可以使用
dma
_map_single()返回的地址在DeviceB上调用DeviceA吗?
、
、
、
、
我正在编写自定义
linux
驱动程序,它需要多个PCIE设备之间的
DMA
内存
。我有以下情况:如果#1是"ok",则仍不确定是否有必要调
浏览 3
提问于2021-07-26
得票数 0
1
回答
DMA
的快速
内存
缓冲器
、
、
我目前正在为
DMA
开发
linux
驱动程序。驱动程序使用
dma
_alloc_coherent分配
内存
区域,我使用_
dma
_mmap_id = (int*) mmap(NULL, buffer_size, PROT_READ | PROT_WRITE我试图为测试目的分配非相干
内存
(使用kmalloc和
dma
_alloc_noncoherent) (只是为了查看这是否加速了
内存
访问),但在这些情况下,我能够分配的
内存
量非常有限(例如,4MB
浏览 1
提问于2016-05-16
得票数 2
1
回答
如果使用顺序大于1的vm_area (),如何创建__get_free_pages映射?
、
、
、
在此之前,我使用
dma
_alloc_coherent为
DMA
分配一块
内存
,并使用remap_pfn_range构建将进程的虚拟
内存
与物理
内存
相关联的页表。原因如下:背景: 当用户空间进程调用mmap将设备
内存
映射到其地址空间时,系统响应创建一个新的VMA来表示该映射。一切看起来都正常,除了进程看到的是私有的、零填充的页面,而不是它所希望的
内存
。scullp根本不知道如何正确
管理</em
浏览 11
提问于2022-03-03
得票数 1
1
回答
在
Linux
内核模块中为RDMA注册大缓冲区
、
该系统运行在64位
Linux
上,它有一个定制的3.10
Linux
内核,需要禁用透明的巨大页面。问题: 用户空间rdma如何
管理
这种缓冲区?我记得我只使用ma
浏览 20
提问于2017-06-22
得票数 0
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
iOS内存管理之Tagged Pointer
解读 Linux 内存管理新特性 Memory folios
Python之“内存管理机制”初探
Python“内存管理”之引用计数
一篇读懂Linux 是如何管理内存的
热门
标签
更多标签
云服务器
ICP备案
云直播
对象存储
腾讯会议
活动推荐
运营活动
广告
关闭
领券