NVME之Device Self-test Operations
1、概念与介绍
Device Self-test Operations是一种诊断测试序列,用于测试控制器的完整性和功能,并包括与namespaces关联的媒体的测试。
在log page中The segment number in the Self-test Result Data Structure 用于报告测试失败的地方。
Device Self-test Operations在后台执行,允许并发处理一些命令,同时需要暂停device Self-test Operations来处理其他命令。
哪些命令可以并发处理,哪些命令需要暂停device Self-test Operations,是由供应商决定的。
如果控制器收到任何命令,要求暂停device Self-test Operations来处理和完成,则控制器应:
- 暂停device self-test运行;
- 处理并完成该指令;
- 恢复device self test;
2、Device Self-test command介绍
Device Self-test command用于启动device自检或中止device self test(0xF)。
设备自检命令主要用于:
A、启动short device self test
B、启动extend device self test
C、启动vender的device self test
D、stop正在处理中的device self test
device self-test operation由提交设备自检命令的控制器执行,Namespace Identifier field 控制设备selftest操作中包含哪些namespaces。如图所示:
Namespace id = 00000000h:指定device self test不包括任何namespace,device self test只包括控制器。
Namespace id = 00000001h-FFFFFFFEh:指定device self test应包括此字段指定的namespace。
如果这个字段指定了一个无效的namespace id,那么控制器将中止状态为无效namespace或格式的命令。
如果这个字段指定了一个未激活的namespace id,那么控制器应该中止状态为Invalid字段。
Namespace id = FFFFFFFFh:指定device self test应包括启动device self test时通过控制器可访问的所有活动namespace。
设备自检命令使用命令Dword 10字段。所有其他命令特定的字段都保留。
下图定义了设备自检命令的处理以及与正在进行的device self test的交互;
3、Device Self-test——identify controller data structure
Identify中相关标识设置查询
identify controller data structure byte(257-256)Bit4-命令支持情况
identify controller data structure byte(317-316)-extended device self-test time限制
identify controller data structure byte(318)-
如果第0位如果设置为“1”,则NVM子系统一次只支持一个device self test。
如果清除为“0”,则NVM子系统支持每个控制器同时进行一次device self test。
4、Device Self-test Operation类型
Device Self-test Operations有两种:
(1)short device self-test operation;
(2)extended device self-test operation;
对于short device self-test operation和the extended device self-test operation,在每一段中执行的测试可能相同。
下图是device Self-test Operation的示例。
第一项:写一个测试pattern到RAM,然后读和比较原始数据
第二项:检查smart/health information log中critical warning
第三项:验证易失性内存备份解决方案运行状况(例如,测量备份电源充电和/或放电时间)-PLP
第四项:确认/验证metadata的所有副本
第五项:写/读/比较每个NVM的预留区域;确保控制器的每个读/写通道都得到了执行-OP
第六项:执行后台管理任务按优先级排序,以增强存储数据的完整性;?-仅在extended device self-test operation
第七项:从每个可用的良好物理块执行随机读取
第八项:生命终止状态:评估drive是否适合继续写操作
第九项:smart check
由以上可以判断出,在device Self-test Operations作过程中,the NVM subsystem的性能可能会下降。
4.1 Short device self-test operation
short device self-test operation应在两分钟或更少的时间内完成,short device self-test operation完成的百分比显示在设备自检日志的“当前完成百分比”字段中;
测试终止情况:
A,在设备自检过程中,如果控制器级别复位影响到控制器,则终止;
B,应该被一个格式化命令中止,如图所示;
C,在开始sanitize操作时应终止;
D,处理自检码字段设为Fh的设备自检命令时,应终止;
E,如果指定的namespace从namespace目录中删除,则可能终止;
4.2 Extended device self-test operation
Extended device self-test operation应在识别控制器数据结构中扩展设备自检时间字段所指示的时间内完成;设备自检日志中“当前已完成百分比”字段表示扩展device self test完成的百分比;
extended device self-test operation应在任何控制器级复位期间持续,并应在复位完成或任何电源恢复(如果有)后恢复。extended device self-test operation恢复的段是是由供应商决定的,但实现应该只需要在重置之前正在测试的最后一个段中再次执行测试。
测试终止情况:
A,应该被一个格式化命令中止,如图所示;
B,在开始sanitize操作时应终止;
C,处理自检码字段设为Fh的设备自检命令时,应终止;
D,如果指定的namespace从namespace目录中删除,则可能终止;
5、Get log page-Device Self-test (Log Identifier 06h)
日志页面用于显示:
A、任何设备正在进行的自检操作的状态和已完成的百分比;
B、最近20次device self test结果;
最新的自检结果数据结构字段中包含的自检结果数据结构始终是上次完成或中止的自检操作的结果;
设备自检日志中的下一个自检结果数据结构字段包含第二次最新的自检操作的结果,以此类推。
如果自检完成或中止的次数少于20次,在未使用的自检结果数据结构字段中,将设备自检状态字段设置为Fh,忽略该自检结果数据结构中的其他字段。
NVME之Device Self-test Operations相关推荐
- nvme驱动_用户态NVMe运维利器 SPDK NVMe 字符设备
------------ 作者简介 刘孝冬 Intel 高级软件工程师 专注于开源存储SPDK及ISA-L软件的开发. ------------ 随着数据中心规模的不断扩大与延展,硬件设备的运行维护已 ...
- 【协议】NVMe over RoCE 初探 SATA接口(AHCI协议)、PCIe 接口(NVMe 协议)
简略 详细 RDMA RDMA网络配置 硬/软件信息 RDMA驱动安装 验证RDMA连通性 NVMe Initiator 和 target 配置 target 端配置 initiator 端配置 配置 ...
- 【协议】NVMe over RoCE 初探 SATA、PCIe 接口和AHCI、NVMe 协议
原文:NVMe over RoCE 初探 - 知乎 常见的 SSD 主要分为 SATA和 PCIe 接口,其接口协议对应着 AHCI.NVMe 协议.相比于最原始的 ATA 协议,AHCI 有 2 个 ...
- nvme metadata end to end 简介和测试
单独对于Metadata的测试只是校验Metadata的写入和读出是否正常就可以了,在格式化成metadata的格式后,不会对lba的数据传输产生影响;metadata的写入读出也都正确.前者可以通过 ...
- Linux | NVMe | APST 不完全总结
本文简要地从 Linux 内核和 NVMe 驱动的角度对 APST 相关问题及分析.解决进行不完全总结 1. 更新:2023 / 2 / 13 Linux / NVMe | APST 不完全总结 背景 ...
- Palo Alto 防火墙升级 Software
今天早上豆子需要升级一下Palo Alto 防火墙的软件.上一次升级已经是半年前的事情了,目前使用的版本是8.0.8,而最新的版本是8.1.2.由于中间跨越了多个版本,因此升级需要从8.0.8 -&g ...
- CSR8670的A2DP与AVRCP的应用笔记
1. A2DP 1.1. 基本概念 阅读A2DP SPEC V12的1.1章,可知: Advanced Audio Distribution Profile(A2DP) 典型应用是立体声音乐播放器的音 ...
- linux生成驱动编译的头文件,嵌入式Linux字符设备驱动——5生成字符设备节点
嵌入式Linux字符设备驱动开发流程--以LED为例 前言 留空 头文件 #include 查看系统设备类 ls /sys/class 设备类结构体 文件(路径):include/linux/devi ...
- 【转】linx 设备名字来由 sd sr sg st
转自:/dev/sr0 与/dev/cdrom_luoweifeng1989的博客-CSDN博客_/dev/sr0 一直不知道 sda sdb sr0 这些名字的前两两个字母是什么意思 > &g ...
最新文章
- 推荐一位二本毕业1年,上海买房的大佬,牛逼!
- 高分辨率下IE浏览器缩放导致出现右侧滚动条问题的解决
- LVS(DR模式)的realserver配置(windows)
- 从零开始用TensorFlow搭建卷积神经网络
- Interview:人工智能岗位面试—人工智能岗位求职之机器学习算法工程师必备知识框架结构图
- geometry-api-java 学习笔记(三)多点 multipoint
- 中以什么开头仅可注释单行_Python从入门到精通第006课--注释与变量
- vmos切换安卓版本_安卓之中还能运行安卓!神奇的安卓虚拟机App
- SAP Cloud for Customer和SAP Fiori系统里的OData测试工具
- 详解STL中的空间配置器(SGI版本)
- Git submodule 的笔记
- C# WinForm 中Label自动换行 解决方法
- java获取tomcat启动时间不对_部署在Tomcat 服务器中的web应用读取时间与系统时间不一致问题...
- java必须会的linux_java程序员必须要学会的linux命令总结(推荐)
- Java字节码技术javassist
- win11系统安装vmware虚拟机win10 汇总
- python实战:基于链家网二手房数据解析任务
- mro python_python中的MRO算法[转]
- python爬虫之爬取微信公众号文章中的图片
- 基于火焰传感器的火焰警报