nvdimm初探

最近研究nvdimm,发现这玩意还真有点复杂。

简单记录之。

使用手册

写了一半发现得先写个使用手册,这样一来自己做个记录,二来也清楚正常使用流程,三来部分内容可以帮助解释代码。

所以加一个使用手册

上帝视角

经过了设备模型的洗礼,那就先从总线,驱动和设备角度看看都有些什么。

上帝视角

nvdimm_bus

首先创建的是nvdimm_bus设备,而且从树形结构中可以看到它是nvdimm设备树的根。

nvdimm_bus

nvdimm

在整个设备树中,有一个孤零零的存在:nvdimm。这就是是用来表示物理dimm设备的。

nvdimm

nd_region

接着我们就来看nvdimm_bus下,另一个子树。而这颗子树的根就是nd_region了。

nd_region

而在nd_region下,有四个并列的设备:

dev_dax

在着重描述了namespace和nd_dax后,终于要到整个驱动的最后也就是dev_dax

这是用户使用nd_dax设备的接口。

Last updated