2024年3月14日
摘要: 引子:本人正在参与Red Hat(以下简称为RH)公司的测试管理工具(Test Management Tool,简称为TMT)开发,因TMT是一款基于灵活的元数据格式(Flexible Metadata Format,简称为FMF)而开发的开源测试管理工具,故首先对FMF进行技术内幕分析,以期为后续 阅读全文
posted @ 2024-03-14 10:28 vlhn 阅读(11) 评论(0) 推荐(0) 编辑
  2018年1月17日
摘要: 使用RDMA, 必然关系到内存区域(Memory Region)的注册问题。在本文中,我们将以mlx5 HCA卡为例回答如下几个问题: 1. 为什么需要注册内存区域? 首先,我们知道,由于DMA设备只访问物理内存地址,因此,DMA引擎需要主机系统内存的物理地址连续,这一点无可非议,因为如果物理地址不 阅读全文
posted @ 2018-01-17 10:24 vlhn 阅读(5256) 评论(0) 推荐(3) 编辑
  2017年12月26日
摘要: NVMe over PCIe最新的NVMe协议是1.3。 在7.2.1讲了Command Processing流程。有图有真相。 This section describes command submission and completion processing. Figure 251 shows 阅读全文
posted @ 2017-12-26 09:38 vlhn 阅读(4288) 评论(0) 推荐(0) 编辑
  2017年12月9日
摘要: Dissecting a Small InfiniBand Application Using the Verbs API Abstract | 摘要 InfiniBand is a switched fabric interconnect. The InfiniBand specification 阅读全文
posted @ 2017-12-09 10:20 vlhn 阅读(4923) 评论(0) 推荐(0) 编辑
  2017年12月7日
摘要: OFA定义了一组标准的Verbs,并提供了一个标准库libibvers。在用户态实现NVMe over RDMA的Host(i.e. Initiator)和Target, 少不了要跟OFA定义的Verbs打交道。但是,仅仅有libibverbs里的API是不够的,还需要对应的RDMA硬件的用户态驱动 阅读全文
posted @ 2017-12-07 09:02 vlhn 阅读(4535) 评论(0) 推荐(3) 编辑
  2017年12月6日
摘要: OFA定义了一组标准的Verbs,并在用户态提供了一个标准库libibverbs。例如将一个工作请求(WR)放置到发送队列的Verb API是ibv_post_send(), 但是在Linux内核,对应的API则是ib_post_send()。本文将使用Linux内核提供的mlx5卡(Mellano 阅读全文
posted @ 2017-12-06 16:59 vlhn 阅读(3292) 评论(0) 推荐(0) 编辑
  2017年12月5日
摘要: 在NVMe over PCIe中,I/O命令支持SGL(Scatter Gather List 分散聚合表)和PRP(Physical Region Page 物理(内存)区域页), 而管理命令只支持PRP;而在NVMe over Fabrics中,无论是管理命令还是I/O命令都只支持SGL。NVM 阅读全文
posted @ 2017-12-05 16:10 vlhn 阅读(7970) 评论(0) 推荐(1) 编辑
  2017年11月29日
摘要: 1. What is RDMA | 什么是RDMA RDMA is Remote Direct Memory Access which is a way of moving buffers between two applications across a network. RDMA differs 阅读全文
posted @ 2017-11-29 11:14 vlhn 阅读(3572) 评论(0) 推荐(0) 编辑
  2017年11月28日
摘要: 毫无疑问地,用来取代iSCSI/iSER(iSCSI Extensions for RDMA)技术的NVMe over Fabrics着实让RDMA又火了一把。在介绍NVMe over Fabrics之前,先科普一下RDMA。 1. DMA和RDMA的概念 1.1 什么是DMA? Direct Me 阅读全文
posted @ 2017-11-28 15:51 vlhn 阅读(13107) 评论(1) 推荐(5) 编辑
  2017年11月1日
摘要: UIO(Userspace I/O)是运行在用户空间的I/O技术。在Linux系统中,一般的设备驱动都是运行在内核空间,而在用户空间使用应用程序调用即可。而UIO则是将设备驱动的很少一部分运行在内核空间,而在用户空间实现驱动的绝大多数功能。那么,在内核空间UIO要做的事情就变得很简单,分为两种: 为 阅读全文
posted @ 2017-11-01 19:28 vlhn 阅读(4821) 评论(0) 推荐(1) 编辑