面壁UNH IOL NVMe一致性测试之6 – Asynchronous Events

原创内容,转载请注明:  [http://www.ssdfans.com]  谢谢!

Group 1 Admin Command Set的第7项是Asynchronous Event测试。

Asynchronous Event Request command由Host发送,用于让SSD上报Asynchronous Event (异步事件),这个命令是没有timeout的。当SSD上报Asynchronous Event时,会发送CQ给Host。在SSD reset时如果还有未完成的Asynchronous Event Request命令,该命令会被Abort。

Host可以发送多个Asynchronous Event Request command,用于降低SSD上报时的Latency,SSD在Identify Data Structure中会提供信息,告知Host自己同时可支持的Asynchronous Event Request command数量。

如果SSD希望在没有接收到可用的Asynchronous Event Request command时上报Asynchronous Event,需要在接收到Asynchronous Event Request command时发送一个该事件类型的notification给Host。

如果在接收到Asynchronous Event Request command前Get Log Page command已经清除了该Event,或者发生Power off,SSD不会发送Notification。

当SSD上报某种Event并回复CQ时,会自动屏蔽该类型的其他Event,直到Host清除该Event。Host 通过发送Get Log Page command清除Event。

Case1:Asynchronous Event Request Command

NVMe 规定了以下Event Type:

  • Error Event
  • SMART/Health Event
  • Notice Events
  • I/O Command Set Specification (NVMe Command Set) Events:
    • Reservation Log Page available Event
  • Vendor Specific Events

测试步骤:

  1. 针对以上每一种Event Type:
    1. Host发送Asynchronous Event Request command
    2. Host创造条件产生该Event;

期望结果:

  • 针对Host 发送的Asynchronous Event Request command,SSD不会立即回复CQ,而是相关Event发生并上报以后才回复CQ;
  • 回复的CQ格式,以及Dword 0中的Event信息描述符合NVMe协议要求;
  • 所有Reserved字段应该填充为0;

Case2: Outstanding Commands Aborted after Reset

测试步骤:

  • Host发送Asynchronous Event Request command;
  • 对SSD进行Controller Level Reset;

期望结果:

  • Controller Level Reset后,SSD回复Admin CQ告知Asynchronous Event Request command被Abort;
  • 所有Reserved字段应该填充为0;

Case3: Clearing Events

测试步骤:

  • 针对每一种Event类型
    • Host创造条件产生该Event;
    • Host发送Get Log Page Command给SSD以清除该Event;
    • Host 发送Asynchronous Event Request command;
    • 2秒后,对SSD进行Controller Level Reset清除outstanding 的Asynchronous Event Request command;

期望结果

  • 针对每一个Get Log Page command,SSD正确回复CQ;
  • 针对Host 发送的Asynchronous Event Request command,SSD不会立即回复CQ,在Controller Level Reset以后SSD回复CQ告知Host该命令被Abort;
  • 所有Reserved字段应该填充为0;

Case4:Masking Events

测试步骤:

  • 针对每一种可以被Disable的Event:
    • Host发送Set Feature Command (Feature ID=0Bh,Asynchronous Event Configuration),禁用该事件;
    • Host发送Asynchronous Event Request command;
    • Host创造条件产生该Event;
    • 2秒后,对SSD进行Controller Level Reset清除outstanding 的Asynchronous Event Request command;

期望结果:

  • SSD正确回复Set Feature Command的CQ;
  • 针对Host 发送的Asynchronous Event Request command,SSD不会立即回复CQ,在Controller Level Reset以后SSD回复CQ告知Host该命令被Abort, 并且在Dword0内不包括该Event的信息;
  • 所有Reserved字段应该填充为0;
分类目录 存储, 技术文章.
扫一扫二维码或者微信搜索公众号ssdfans关注(添加朋友->点最下面的公众号->搜索ssdfans),可以经常看到SSD技术和产业的文章(SSD Fans只推送干货)。
ssdfans微信群介绍
技术讨论群 覆盖2000多位中国和世界华人圈SSD以及存储技术精英
固件、软件、测试群 固件、软件和测试技术讨论
异构计算群 讨论人工智能和GPU、FPGA、CPU异构计算
ASIC-FPGA群 芯片和FPGA硬件技术讨论群
闪存器件群 NAND、3D XPoint等固态存储介质技术讨论
企业级 企业级SSD、企业级存储
销售群 全国SSD供应商都在这里,砍砍价,会比某东便宜20%
工作求职群 存储行业换工作,发招聘,要关注各大公司招聘信息,赶快来
高管群 各大SSD相关存储公司高管和创始人、投资人

想加入这些群,请微信扫描下面二维码,或搜索nanoarchplus,加阿呆为微信好友,介绍你的昵称-单位-职务,注明群名,拉你进群。SSD业界需要什么帮助,也可以找阿呆聊。