dma

现代系统中如何处理 I/O 加密?
dma

现代系统中如何处理 I/O 加密?

首先:我一直在纠结应该在哪个 stackexchange 上发布这个问题,因为它涉及操作系统知识、硬件知识,但可能还涉及其他 CS 领域。欢迎提出更好的堆栈站点建议。 我刚刚突然意识到……我已经够老了,可以记住派欧;你知道……CPU 参与将几乎每个字节从连接的外围设备(硬盘、CD-ROM、网络适配器等)传输到内存。有时这可能是一项非常耗费 CPU 的任务。于是出现了直接接入本质上,它只是告诉设备:“这是给你的内存片段,把你的东西放在那里,等你用完后告诉我”。当我注意到驱动器上的 bitlocker 图标时,我...

Admin

强制进程始终位于 Windows 的 RAM 中
dma

强制进程始终位于 Windows 的 RAM 中

我希望我正在使用的进程永远不会出现在 Windows 页面文件中。这不是为了性能,而是希望使用 DMA 来监视它。如果使用的虚拟地址空间不在 RAM 中,我就无法访问它。我曾尝试在 Windows 上禁用页面文件,但虚拟地址空间仍然没有出现在 RAM 的 VAD 中。任何关于如何强制将进程放入 RAM 的建议都将不胜感激。 ...

Admin

什么限制了 PCIe 设备可以寻址的内存量?
dma

什么限制了 PCIe 设备可以寻址的内存量?

某些 PCIe 设备在没有附加驱动程序或修改驱动程序的情况下无法读取超过 4 GB 的地址空间。在这种情况下,是什么限制了它们可以读取的内存量?是内存控制器吗?是 PCIe 设备的固件吗?还是其他什么?我不认为这是因为设备驱动程序本身,因为 PCIe 设备无需驱动程序即可读取或写入 RAM。有人告诉我这是 32 位与 64 位的问题,但我不明白为什么 PCIe 设备只能寻址 32 位。 ...

Admin

CPU 给 DMA 发出什么指令?
dma

CPU 给 DMA 发出什么指令?

我非常清楚地理解 CPU 指示 DMA 从硬盘获取数据并将其加载到 RAM 中。 尽管我是一名.Net 开发人员,并且在日常工作中不需要这些,但我仍然不愿意使用一些我不了解(但不是太深)的东西来达到我自己可以实现的程度。 DMA 的具体输入是什么? 但是CPU如何知道要读取硬盘上的哪个内存地址以及读取多长的长度呢? 是否有任何 CPU 指令可以读取“气缸盖扇区 ID”,例如 readhdd“sector_id”? 如果文件有分区或者有错误扇区,DMA 如何知道这一切? 硬盘中是否有一个单独的嵌入式程序来解决这个问题? 在这张图片中,OS Fil...

Admin

使用 DMA api - dma_alloc_coherent 扩展内核 4MB 内存分配限制
dma

使用 DMA api - dma_alloc_coherent 扩展内核 4MB 内存分配限制

我使用的是 Ubuntu 16.04,我想使用 dma_alloc_coherent 分配大于 4MB 的 DMA 缓冲区(非缓存)。当我尝试执行此操作时,调用返回 NULL。我尝试使用内核标志 CONFIG_DMA_CMA 等来启用通过连续内存分配器的分配。我看到 CMA 内存被保留,并且我看到 cma_allocator 分配内存,但我仍然无法超过 4MB,即使内存已通过 CMA 分配器为我的驱动程序保留。 ...

Admin

检测到不允许的 DMA 总线/设备
dma

检测到不允许的 DMA 总线/设备

我的问题是如何找出我的笔记本电脑上哪个设备具有不允许的 DMA 功能。我尝试禁用我的 USB 设备并从扩展坞上拔下笔记本电脑。我的同事有相同型号的笔记本电脑,但他没有遇到与我相同的问题。 系统信息 OS Name Microsoft Windows 10 Enterprise Version 10.0.16299 Build 16299 Other OS Description Not Available OS Manufacturer Microsoft Corporation System Name NB-SOKRE System Manufactu...

Admin

我无法在 Linux 中将 SATA 硬盘(在 UDMA 中工作)更改为 PIO 模式
dma

我无法在 Linux 中将 SATA 硬盘(在 UDMA 中工作)更改为 PIO 模式

我正在尝试禁用 SATA 3.5 英寸硬盘驱动器中的 DMA,使其在 PIO 模式下工作,因为要使用 GNU ddrescue 从故障磁盘中恢复一些坏扇区 我正在使用 PartedMagic Linux live CD,并尝试使用 hdparm 对其进行修改。磁盘使用 UDMA6,因此我运行: hdparm -p4 /dev/sda 它显示了以下错误(我尝试了几种模式,不仅仅是 PIO4): Attempting to set PIO mode to 0 HDIO_SET_PIO_MODE failed: Inappropriate ioc...

Admin

一个 DMA 块的大小
dma

一个 DMA 块的大小

什么时候直接接入使用时,整个内存块从 I/O 设备传输到主内存。 我对这个区块的大小很感兴趣,更具体地说是对这些问题的答案: 块的大小是否恒定(如果不是,那么在什么条件下它会改变)? 块的大小是由硬件还是软件决定的,或者两者兼而有之? ...

Admin

Windows 视频内存的位置
dma

Windows 视频内存的位置

我目前正在分析 KVM 解决方案。为此,我想找到 KVM 可能使用 DMA 使用的 Windows 视频内存。有办法实现这一点吗? 该系统当前运行的是 Windows Server 2016。该系统没有显卡,因此内存应该驻留在 RAM 中吗? ...

Admin

如何使用 Linux DMA 实现应用程序
dma

如何使用 Linux DMA 实现应用程序

据我所知,Linux 为各种 DMA 引擎提供了通用的 DMA 框架,并且必须基于该框架实现 DMA 引擎的设备驱动程序。 框架是否为用户应用程序提供任何系统调用或机制,例如:open()?ioctl()或者开发人员是否必须为用户空间实现文件操作? ...

Admin

在 Windows 中监控 DMA 性能?
dma

在 Windows 中监控 DMA 性能?

为什么 DMA 没有列在 Windows 性能监视器的可用计数器中?RDMA Activity已经存在但不是 DMA。是否可以在 Windows 中监视 DMA? ...

Admin

Windows 10 中的 DMA 设置
dma

Windows 10 中的 DMA 设置

我的 Acer Aspire One 2GB 突然开始运行得像糖浆一样慢。有时打开一个程序可能需要一分钟的时间。通过谷歌搜索我发现我的硬盘可能在几次崩溃后从 DMA 切换到了 PIO。 我找到了一些信息来查看以前的 Windows 版本是否存在这种情况,但在 Windows 10 的设备管理器中,我似乎找不到任何信息。我​​在哪里可以找到它处于什么模式,以及如果它已经进入 PIO,如何将其切换回来? 谢谢。 ...

Admin

硬件中断的延迟是硬件、驱动程序还是内核问题?
dma

硬件中断的延迟是硬件、驱动程序还是内核问题?

作为高级用户,我花了无数的时间调整系统,检查 DPC 延迟等等 所有这些都引出了一个问题:为什么我们仍在处理这些问题?我个人无法判断这是否是 Windows 独有的问题,还是 Linux 也存在这个问题。我只在 Windows 上注意到了这个问题,因为我大部分繁重的工作都是在 Windows 上完成的,而我对 Linux 的使用纯粹是 Web 或商业开发。 所以我坐在这里,用我的 Win10 设备运行 hyper-v,并安装了一些开发环境。我有更多的 CPU RAM 和 SSD 存储,你应该知道该怎么用它们。我刚刚放弃了 VMware 工作站,转而使用 ...

Admin

SSD 中的少数 UDMA_CRC_Error_Count 错误是个问题吗?
dma

SSD 中的少数 UDMA_CRC_Error_Count 错误是个问题吗?

一些 SMART 统计数据: Device Model: Samsung SSD 850 EVO 500GB Firmware Version: EMT01B6Q 9 Power_On_Hours 0x0032 099 099 000 Old_age Always - 252 12 Power_Cycle_Count 0x0032 099 099 000 Old_age Always - 75 199 UDMA_CRC_E...

Admin