NVME(学习杂谈)—Asynchronous Event
Asynchronous Event Request Host Software Recommendations
当一个异步事件请求完成(提供Event Type,Event Information,和Log Page详情):【注:事件的Type,Info,Log Page ID值在CQE的第一个Dword中】
- 如果已报告Log Page中的事件可以被异步事件配置【Asynchronous Event Configuration】特性(参考Set Feature command第5.21.1.11章节)禁用,那么主机软件为Asynchronous Event Configuration特性下发一个Set Feature命令,指定禁用利用Log Page报告的所有事件的报告。主机软件应该等待Set Feature命令到完成;
- 主机软件下发一个Get Log Page命令请求Log Page,作为Asynchronous Event Command completion的一部分报告的。主机软件应该等待Get Log Page命令到完成;
- 主机软件解析返回的Log Page。如果条件不是持久的,那么主机软件应该重新使能【re-enable】使用此Log Page的所有异步事件。如果条件是持久的,那么主机软件应该重新使能除了在此Log Page中已报告的那个/哪些之外的所有使用Log Page的异步事件。主机通过向Asynchronous Event Configuration特性下发一个Set Feature命令重新使能事件;
- 主机软件应该下发一个Asynchronous Event Request命令到controller(将这些待处理命令的数量还原为n);
- 如果禁用了事件报告,主机软件应该使用Asynchronous Event Configuration特性使能事件报告。如果报告的条件可能持续存在,主机软件应该继续监控此事件(例如低于阈值)以确定是否应该重新使能事件报告。