新式待机压力和耐久测试
系统设计人员应在其新式待机系统上运行压力测试和耐久测试,以帮助识别和解决潜在的可靠性问题。 新式待机使系统能够持续运行,即使处于低功耗的屏幕关闭状态下也是如此。 这种状态不同于传统的 ACPI 睡眠 (S3) 和休眠 (S4) 状态,在这两种状态下,大部分系统硬件和软件已停止,并保持不活动状态,直到稍后重新启动时才会恢复工作状态。
新式待机使系统可以保持启动并运行更长的总时间,因此可以暴露出仅支持 S3 和 S4 的系统上不会发现的硬件和软件可靠性问题。
进入和退出
应验证每个新式待机系统,确保至少 1,000 次循环进入和退出新式待机状态而不会发生故障。 进入和退出新式待机状态是用户与系统上低能耗操作的主要交互,应该非常可靠。
成功进入和退出新式待机会验证许多硬件、固件和设备驱动程序组件,这些组件包括:
- 管理电源按钮操作的平台硬件,包括电源管理 IC (PMIC)。
- 显示面板管理和初始化硬件。
- Wi-Fi 和网络设备固件及驱动程序。
- 图形设备驱动程序。
可以使用 PwrTest 工具自动执行新式待机的进入和退出压力测试。 PwrTest 应作为 Windows 驱动程序工具包 (WDK) 的一部分安装在目标系统中,其中包括用于在新式待机系统上自动操作系统电源按钮的附加软件。
测试方案 | 预期结果 | 诊断说明 |
---|---|---|
系统可以在至少 1,000 次循环中可靠地进入和退出新式待机。 |
使用 PwrTest 工具和 /cs 命令行选项,自动让系统经历 1,000 次新式待机循环。 预期结果是系统完成所有 1,000 次循环。 |
建议将压力测试的循环次数逐渐增加到 1000 次。 首先,测试 100 次循环。 如果发现错误,请将系统连接到内核调试器和 SoC 硬件调试器,并重复 100 次循环测试来捕获和确定问题的根本原因。 100 次循环测试成功完成后,将循环次数增加到 500 次,然后再增加到 1000 次。 |
SoC 低功率状态转换
负责管理空闲和活动电源状态之间的 SoC 转换的固件和驱动程序必须高度可靠,以经受长时间运行新式待机的压力。 应通过长时间的新式待机测试对 SoC 低功耗状态转换施加压力。 此测试有助于确保系统在长时间的新式待机持续时间内(例如在周末)保持可靠的运行状态。 此测试应在连接到交流电源时执行。
测量场景 | 预期结果 | 电源说明 |
---|---|---|
系统能够连续 100 小时处于新式待机状态,并且在退出时正常运行。 系统在 100 小时内保持 Wi-Fi 连接,并且在退出时 Wi-Fi 连接正常运行。 |
将系统置于新式待机模式,并在 100 小时后通过电源按钮唤醒。 预期结果是系统立即开机并且 Wi-Fi 连接正常运行,无需额外配置或选择 Wi-Fi 网络。 |
建议将耐久测试逐步增加到 100 小时。 首先测试 24 小时。 如果发现错误,请将系统连接到内核调试器和 SoC 硬件调试器,并重复 24 小时的测试来捕获和确定问题的根本原因。 在24小时测试成功完成后,将持续时间延长到 100 小时。 |
Windows HLK 新式待机压力测试
Windows Hardware Lab Kit (HLK) 包括一个名为“已连接待机压力”的新式待机压力测试,该测试使用驱动验证器的并发压力,在将设备驱动程序用于设备运行的同时执行自动新式待机转换。 此测试旨在验证设备及其驱动程序在系统转换到新式待机功耗状态和从该状态转换时是否继续运行。
此测试是验证系统在退出新式待机模式后是否继续按预期运行的关键部分。 此测试包含在 Windows HLK 中,是系统认证所必需的。
测试操作
测试使用 Windows 设备测试框架 (WDTF) SimpleIO 接口来测试系统上枚举的设备。 这些设备包括传感器、摄像头、音频、图形、Wi-Fi、存储和蓝牙设备。 测试将系统置于新式待机状态一分钟,然后将系统退出新式待机状态,并对设备进行 30 秒的试验。 此循环重复 150 次。
测试执行过程中启用了驱动程序验证器,以帮助确定驱动程序 bug 和内存泄漏。
此测试有助于识别以下系统或设备驱动程序问题:
- 在新式待机会话之后,系统在设备操作过程中停止响应或发生崩溃。
- 设备活动后,系统无法进入低功耗状态(最深的运行时空闲平台状态,即 DRIPS)。
- 驱动程序验证器识别到驱动程序问题,包括系统损坏、驱动程序故障和内存泄露。
- 从新式待机状态恢复之后出现驱动程序问题,包括无响应、崩溃或问题代码。
解决测试失败问题
测试使用多个设备,这可能导致不同类型的测试失败。 确定测试失败的类型是查找系统或驱动程序问题根本原因的第一步。
测试通常会在以下三种故障模式之一中失败:
- 测试失败,并且失败记录在 Windows HLK 日志中,其中包含有关检测到的故障的数据。
- 测试失败,系统没有因为测试失败而将其报告给 Windows HLK 服务器;但系统会响应并能够处理本地交互。
- 测试未完成,正在接受测试的系统崩溃或无响应(冻结在黑屏界面)。
调试 Windows HLK 日志中记录的测试故障
Windows HLK 日志中记录测试失败时,有两种常见的故障类型:
- 系统在测试期间未能进入低功耗状态 (DRIPS)。
- 测试检测到它无法再与驱动程序通信,并发生超时。
可以使用包含在测试日志中的 SleepStudy 报告来确定哪些组件负责阻止系统进入低功耗状态 (DRIPS)。 有几个常见的原因:
- 测试设置和配置问题,包括使用不支持 NDIS 6.3 和新式待机功能的有线以太网适配器。
- 有线 LAN 网络上的 DHCP 服务器问题。
- 设备和/或驱动程序未在新式待机期间正确空闲到其自身的低功耗模式。
测试日志可能还包括一条错误消息,指示哪些设备未及时响应 I/O 请求。 这种情况被视为测试故障,因为当系统从新式待机状态恢复时,它可以阻止用户或应用正常工作。
测试日志指示最后一台设备执行 I/O 操作,这些设备是测试失败的原因。 以下示例中的测试日志输出显示 ACPI\XXXX\2&DAFA3FF&1 设备已超时。
消息 |
2013/7/16 中午 12:50:24.333 |
WDTF_SIMPLEIO_STRESS_PROC:- WaitAsyncCompletion(某些位置传感器设备 ACPI\XXXX\2&DAFA3FF&1) |
消息 |
2013/7/16 中午 12:59:50.333 |
WDTF_SIMPLEIO_STRESS_PROC:- WaitAsyncCompletion(某些其他设备 XXX_XXX\UART_XXX\3&2F829BAD&0&F00D) |
常见的失败原因是 GPS 接收信号不佳,这会导致 GPS 设备花费极长的时间来回复 I/O 请求。 有关在配备 GPS 设备的系统上运行此测试的详细信息,请参阅配备 GPS 的系统的说明。
调试无日志(以及响应系统)的测试故障
如果受测系统仍在运行,但没有迹象表明测试仍在运行,最可能的原因是系统遇到了严重错误或进行了重新启动。 若要调试这些问题,请检查系统目录中是否有任何转储文件,并禁用可能会重置系统的任何硬件监视程序。
调试系统无响应(黑屏)时的测试故障
如果系统冻结在黑屏界面,则必须将内核调试器连接到系统才能诊断问题。
如果内核调试器已经连接,但系统未响应内核调试器,则需要使用硬件调试器来识别系统锁定的原因。 可以咨询核心芯片/SoC 提供商以获取有关调试的更多帮助。
其他 HLK 文档
配备 GPS 的系统的说明
如果受测系统配有 GPS 设备或位置传感器设备,则在运行测试之前,必须启用以下 Windows 设置:
- “控制面板”\“硬件和声音”\“位置设置”\“打开 Windows 位置平台”
- “PC 设置”\“隐私”\“位置:让 Windows 和应用使用我的位置”
可以在测试站点使用 Windows 驱动程序工具包 (WDK) 中的传感器诊断工具来确认接收到 GPS 信号。 有关详细信息,请参阅使用传感器诊断工具测试传感器功能。