LightNVM 代码分析总结
内核版本:Linux-4.19Lightnvm 与 pblkLightnvm 与 pblk 的关系,类似于 linux 块层与 IO 调度器之间的关系。即在 lightnvm 中可以有多种 FTL 的实现,这里 pblk 就是一种 FTL 的实现。Lightnvm 子系统在支持PPA接口的块设备的基础上进行初始化。该模块使内核能够通过内部 nvm_dev 数据结构和 sysfs 等来暴露设备的几何
内核版本:Linux-4.19Lightnvm 与 pblkLightnvm 与 pblk 的关系,类似于 linux 块层与 IO 调度器之间的关系。即在 lightnvm 中可以有多种 FTL 的实现,这里 pblk 就是一种 FTL 的实现。Lightnvm 子系统在支持PPA接口的块设备的基础上进行初始化。该模块使内核能够通过内部 nvm_dev 数据结构和 sysfs 等来暴露设备的几何
这篇 IO 通路简析主要偏向于模块之间的衔接,不涉及模块内的细节,主要回答下面的 4 个问题:在何处向请求队列注册 make request function 函数(这里是 pblk_make_rq)在何处调用了(1)注册的 make request function 函数在何处向请求队列注册了 request function 函数(这里是 pci.c 中的 nvme_queue_rq)在何处调
基于 UFS 的 Open Channel FTL 实现与基于 NVMe 的实现思路类似,可按层划分为三个大步骤,自下而上分别为:UFS 设备侧的 FTL 相关功能修改;主机侧 UFS 驱动程序的操作命令扩展;主机侧软件定义的 FTL 功能实现。此外我们还需要一个工具用于获取运行数据和验证,例如获取设备的详细参数,例如 channels,luns,blocks,pages 等固有属性,以及 bad