腾讯云
开发者社区
文档
建议反馈
控制台
首页
学习
活动
专区
工具
TVP
最新优惠活动
文章/答案/技术大牛
搜索
搜索
关闭
发布
登录/注册
精选内容/技术社群/优惠产品,
尽在小程序
立即前往
文章
问答
(9999+)
视频
沙龙
1
回答
是否可以为网卡设置
dma
缓冲区地址?
windows
、
networking
、
dma
我对网卡的理解是,当接收到数据时,通过网卡驱动程序将数据
DMA
输入主存储器。然后,内核将这个
内存
复制到用户空间,并发送任何必要的消息。 我的问题是,在Windows中,是否可以设置
DMA
写入的地址?我的目标是消除额外的
内存
拷贝
,类似于NVidia的GPUDirect管道的工作方式。
浏览 7
提问于2014-07-22
得票数 1
回答已采纳
2
回答
拼接中的
DMA
复制()
linux-kernel
、
splice
、
dma
我是
linux
内核的新手。最近,我研究了内核2.6.33中的sendfile syscall。splice_direct_to_actor()=> do_splice_from()在整个序列中,我没有找到splice使用
DMA
拷贝
的位置。那么
DMA
复制在哪里进行呢?
浏览 2
提问于2011-09-28
得票数 5
回答已采纳
1
回答
Linux
PCIe
DMA
驱动程序
linux-kernel
、
linux-device-driver
、
dma
、
pci-e
我目前正在为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
引擎
linux
、
xilinx
、
alsa
、
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
2
回答
在两个进程之间交换大容量数据的最有效方法是什么?
linux
Socket,Pipe,还是共享
内存
? 目前我们使用的是socket。
浏览 0
提问于2009-08-29
得票数 4
回答已采纳
3
回答
是否每个
dma
_map_single调用都需要相应的
dma
_unmap_single?
linux
、
linux-kernel
、
linux-device-driver
我正在将一个大的代码库移植到
Linux
内核设备驱动程序。ASIC使用大量的
DMA
通道。 我用GFP_KERNEL|GFP_
DMA
实现了kmalloc
内存
。在启动
DMA
之前,我使用
dma
_map_single获取硬件(物理)
内存
地址,将其提供给硬件。(还会刷新/无效dcache中的
内存
吗?)在
DMA
完成后,我有时需要CPU访问数据,但并不经常。在我通过代码访问数据之前,我做了一个
dma
_unmap_singl
浏览 4
提问于2013-04-23
得票数 5
回答已采纳
1
回答
在虚拟寻址中,当使用Intel I/OAT时,设备
内存
映射到哪里?
c++
、
c
、
intel
、
dma
、
zero-copy
当我使用进行
DMA
零
拷贝
/零周期(没有CPU)通过传输时,在虚拟寻址中,设备
内存
映射到哪里:到内核缓冲区(内核空间)还是用户缓冲区(用户空间)?在现代x86_64 CPU中使用I/OAT (当CPU核心可以在没有芯片组北桥的情况下快速访问
内存
时)有什么意义吗?
浏览 4
提问于2013-09-01
得票数 1
回答已采纳
2
回答
零
拷贝
用户空间TCP发送
dma
_mmap_coherent()映射
内存
linux
、
linux-kernel
、
embedded-linux
、
splice
、
zero-copy
我现在正试图使零
拷贝
TCP传输工作,以提高吞吐量,但我正在碰壁。 为了将数据从FPGA输出到
Linux
用户空间,我编写了一个内核驱动程序。该驱动程序使用FPGA中的
DMA
块将大量数据从外部接口复制到附加到DDR3核的ARMv7
内存
中。当使用
dma
_alloc_coherent()与GFP_USER探测时,驱动程序将此
内存
分配为一组连续的1MB缓冲区,并通过在/dev/中的文件上实现mmap()并在预先分配的缓冲区上使用
dma
_mmap_coheren
浏览 7
提问于2019-10-30
得票数 14
回答已采纳
1
回答
PCIe内核驱动程序
DMA
写入错误地址
linux-kernel
、
pci
、
fpga
我目前正在为
Linux
4.19编写一个PCIe内核驱动程序。首先初始化PCIe驱动程序。分配后,我将物理地址推入
DMA
配置并启动传输。我遇到的问题是,当使用虚拟地址读取
DMA
数据时,我只读取零,而不是通过
DMA
写入任何零。我还测试了
内存
区域,首先通过CPU将ramp写入
内
浏览 5
提问于2020-03-30
得票数 0
1
回答
从PCIe到其他设备的
DMA
linux
、
cuda
、
dma
、
nic
、
pci-e
我试图直接从
Linux
中的另一个PCIe设备访问NIC中的
DMA
地址。具体来说,我试图从NVIDIA GPU读取这一点,以绕过CPU所有在一起。我研究过零
拷贝
网络和
DMA
到用户空间的帖子,但是他们要么没有回答这个问题,要么涉及到从内核空间到用户空间的一些
拷贝
。我试图避免使用任何CPU时钟,因为与延迟不一致,我有非常紧的延迟要求。正如我从我之前读过的一篇文章中了解到的,我会对
dma
_addr_t类型的描述符感兴趣,他们也有一个名为
dma
的rx_ring结构的成员。我使用i
浏览 3
提问于2013-10-22
得票数 3
2
回答
Linux
内核拼接()是零
拷贝
吗?
c
、
linux
、
linux-kernel
我知道splice()是为零
拷贝
而设计的,并使用
Linux
内核管道缓冲区来实现这一点。loff_t *pos)和我认为"aio_write()“和"file->f_op_write()”都会执行真正的数据复制,splice()真的会执行零
拷贝
吗
浏览 3
提问于2014-01-10
得票数 6
2
回答
是否可以使用
dma
_set_mask()告诉内核不要在4G下使用
内存
linux-kernel
、
linux-device-driver
、
kernel-module
、
dma
、
pci-e
我的pcie设备有一个错误,它不能将地址设置在4G以下,我应该用什么掩码和
dma
_set_mask一起告诉内核呢?
浏览 19
提问于2015-03-12
得票数 0
回答已采纳
2
回答
如何处理作为网络的物理地址以及
DMA
如何连接到它?
linux
、
linux-kernel
、
kernel
、
dma
我正在开发一个网络驱动程序,对
内存
管理有点困惑。在TX路径上,我收到一个skb,因为下层只希望获得物理地址,我想我需要调用*virt_to_phys*并将返回值发送到下层。(这有道理吗?)现在,我知道有函数*
dma
_map_single*和*
dma
_unmap_single*。我仍然不知道他们是如何来到这里的。所以下层想要用
DMA
..。我也不确定我是否理解
dma
_map_single描述的含义会很感激你的帮助。
浏览 4
提问于2013-11-11
得票数 0
回答已采纳
1
回答
用户空间缓冲区与
内存
映射文件之间的
DMA
c++
、
linux
、
memcpy
、
dma
内存
通过用户空间
DMA
:在
linux
中可以通过用户空间
DMA
实现memcpy吗?我知道有一些方法可以通过
DMA
将内核缓冲区复制到用户空间缓冲区,但是想要在用户空间中通过
DMA
对memcpy进行扩展吗?
浏览 1
提问于2014-04-07
得票数 1
回答已采纳
1
回答
pci_alloc_consistent无缓存存储器
linux-kernel
、
dma
、
pci
、
pci-e
公平地说,pci_alloc_consistent分配一个连续的、非缓存的、非分页的内核
内存
块。我问这个问题的原因是,我在一些内核/驱动程序代码(不是在普通内核源代码中)中看到了这样的评论,我认为我理解
内存
是连续的,但是不能确定它是否被分配到非缓存中,因为缓存一致性的思想是保持缓存和
DMA
内存
中的数据一致例如,在Part Ia一节中说:因此,人们无法推断
内存
是非缓存的,所
浏览 6
提问于2015-08-04
得票数 1
回答已采纳
2
回答
获取
Linux
下缓冲区的物理地址
linux-kernel
、
embedded
、
embedded-linux
、
mmap
、
microblaze
我在Xilinx的Microblaze上运行
Linux
内核3.3,带有完整的MMU。之所以需要这样做,是因为我有一个
DMA
引擎,可以从预设的物理
内存
地址流式传输数据,所以我需要强制
Linux
在那个确切的
内存
位置创建缓冲文件,这样当我将数据写入这个文件时,它会立即由
DMA
引擎传输到另一个硬件核心更多详细信息: 我的系统有一个512MB的
DMA
通过“Xilinx的多端口
内存
控制器连接到系统上,这个
内存
控制器的基地址是0x90000000,
浏览 11
提问于2013-06-13
得票数 7
1
回答
我可以使用
dma
_map_single()返回的地址在DeviceB上调用DeviceA吗?
linux-kernel
、
linux-device-driver
、
embedded-linux
、
dma
、
iommu
我正在编写自定义
linux
驱动程序,它需要多个PCIE设备之间的
DMA
内存
。我有以下情况:如果#1是"ok",则仍不确定是否有必要调
浏览 3
提问于2021-07-26
得票数 0
1
回答
如何创建100M字节的缓冲区
linux-kernel
我正在测试
Linux
上的一个接口的吞吐量。我正在使用
DMA
进行数据传输。
DMA
需要连续的
内存
位置。但是kmalloc无法分配超过1MB的
内存
。有没有其他方法可以创建高达100M字节的大缓冲区?
浏览 0
提问于2011-05-01
得票数 4
1
回答
DMA
的快速
内存
缓冲器
c
、
memory
、
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
回答
从CUDA设备写入输出文件
cuda
、
gpu
、
printf
我是一个在CUDA编程和过程中重新编写C代码为并行的CUDA新代码的新手。抱歉,如果前面的话题已经给出了答案,我似乎找不到.
浏览 0
提问于2014-01-23
得票数 2
回答已采纳
点击加载更多
扫码
添加站长 进交流群
领取专属
10元无门槛券
手把手带您无忧上云
相关
资讯
零拷贝技术在 Java 中为何这么牛?
深入理解 Linux的I/O 系统
一种技法:使用共享内存拷贝大型数据
零拷贝原理的文章网上满天飞,但你知道如何使用零拷贝吗?
linux零拷贝原理,RocketMQ&Kafka使用对比
热门
标签
更多标签
云服务器
即时通信 IM
ICP备案
对象存储
实时音视频
活动推荐
运营活动
广告
关闭
领券