kvm remote 执行 Vce Test 出现测试失败

问题描述

在装备单板FT联调中,kvm_remote_test%hi1710_113测试 执行./kvm_over_ip_test.sh,报错提示Vce Test fail,return:0f 31 00 90 00 00 01 44 10 00 00 00 00 56 6

kvm_fail_log.txt (15.4 KB)

dump_210618FEBEXFQA000188_20260227-0557 (1).tar.gz (8.3 MB)

初步分析结论

以下内容由 AI 分析

装备单板FT联调中执行 ./kvm_over_ip_test.sh,VCE视频测试步骤报错:

[vce_get_result] fail Vce Test fail,return:0f 31 00 90 00 00 01 44 07 00 00 00 00 56 63 65 20 54 65 73 74 ...

响应解析:

  • 0f 31 00 90 — IPMI响应头

  • 00 — Completion Code(命令执行成功)

  • 00 — 保留

  • 01测试结果:失败(00为通过)

  • 44 — DFT ID(0x44 = 68,即Vce Test)

  • 56 63 65 20 54 65 73 74 — “Vce Test”(测试项名称ASCII)

关键日志分析

BMC侧核心错误(app.log)

2026-02-27 03:45:12.415852 unknown_service ERROR: image_service.lua(473): [kvm] dft_new_video_test: frame_len(38514) is wrong

此错误在 03:45:12 ~ 03:46:29 期间重复出现 30+次,frame_len始终为 38514

VCE服务启动正常

2026-02-27 03:22:39.566695 unknown_service NOTICE: image_service.lua(95): Set vga status successfully, vga status=true
2026-02-27 03:22:39.567624 unknown_service NOTICE: image_service.lua(300): init image service success
2026-02-27 03:22:40.528139 unknown_service NOTICE: image_service.lua(630): start image service success
2026-02-27 03:22:44.904139 remote_console NOTICE: main.lua(44): Video play service listen to port:42199, socket id:13

VCE内核驱动正常

[12.105764] vce_dac_param_set,244,dac param register is: 0x800820f
[12.114754] vce_driver_probe,295,irq_mask 0xd80

Dump时VCE状态

----- Remote_console VCE Info -----
Image frame ready state: false
Last frame ready state: false
2026-02-27 05:57:23.941842 unknown_service ERROR: screenshot_api.lua(48): get lastframe ready state failed

环境信息

社区 1230 基线

remote_console/1.100.30@openubmc/stable

答案内容由AI生成,仅供参考:

5. 结论

根据上下文提供的资料,VCE Test失败最可能的原因是显卡输出异常或PCIe链路问题,导致VCE寄存器无法接收到正确的帧数据。建议优先执行近端VGA口验证和PCIe链路排查。若需进一步精确定位,请提供近端VGA测试结果及dmesg中PCIe相关日志——但当前知识库中未包含此特定错误的完整解决方案,仅能基于通用排查思路给出指导。

点击此处查看详细分析解答

根据提供的上下文信息,针对KVM远程执行VCE Test失败的问题,以下从原理和排查方向给出分析:

问题定位分析

1. VCE工作原理(基于知识库)

  • 服务器显卡输出图像数据,同时传输到BMC芯片的VCE寄存器进行缓存(参见知识库《KVM常见问题定位指南》)。
  • KVM服务从VCE寄存器读取图像数据,并通过WebSocket发送给远程会话(参见实体KVM Service描述)。
  • Remote Console服务负责收集VCE信息(VCE info collect方法),并记录完成时间戳(2025-12-16 09:12:10.664989)。

2. 失败现象与知识库对应

现象 知识库关联内容
VCE Test失败,返回01(测试结果为失败) 上下文未提供该测试的具体含义,但VCE相关错误属于视频捕获引擎异常
日志报错frame_len(38514) is wrong 暗示VCE寄存器接收到的帧数据长度异常,可能源于显卡输出异常或PCIe链路异常
VCE状态Image frame ready state: false 说明VCE寄存器未准备好有效图像数据,与《KVM常见问题定位指南》中“上电后KVM显示NO SIGNAL”的场景一致

3. 推荐排查方向(引用《KVM常见问题定位指南》)

根据知识库中《KVM常见问题定位指南》章节,当KVM无法从VCE寄存器获取有效图像数据时,应执行以下排查步骤:

  1. 检查近端VGA输出

    • 在服务器近端VGA口连接显示器,观察是否有正常显示。
    • 若近端也无显示,说明问题出在显卡或更上游硬件(知识库原文:“检查近端VGA口”)。
  2. 确认PCIe链路状态

    • VCE寄存器图像数据来源于显卡,需通过PCIe链路传输。若PCIe建链失败,会导致VCE寄存器工作异常。
    • 建议通过CPLD检查PCIe寄存器状态,并查看dmesg日志、linux_kernel_log中是否存在PCIe相关报错(知识库原文:“若近端VGA口有数据显示,则可能是PCIe建链失败导致的VCE寄存器异常”)。
  3. 检查系统启动状态

    • 确认服务器已正常进入OS,而非卡在BIOS自检阶段。可通过串口日志或KVM屏幕输出判断。
    • 知识库中提到:“在近端VGA口连接显示屏,观察近端显示屏是否有显示;若近端也无显示,说明问题出在显卡或更上游”。
  4. 收集关键日志

    • 查看os日志linux_kernel_logdmesg日志,检查是否有可疑报错(知识库原文:“可查看一键收集日志中的os日志、linux_kernel_log内核日志,dmesg日志,检查是否有可疑报错”)。

4. 关于VCE服务与Remote Console

  • 日志显示image_service初始化成功,但后续出现帧长度错误。知识库中remote_console组件描述提到:该服务会执行VCE info collect并记录完成,但若VCE数据异常,则可能持续失败。
  • 当前Remote Console版本为1.100.30@openubmc/stable,知识库中该版本被列为已知可用版本,但未提及该版本存在特定VCE缺陷。

5. 结论

根据上下文提供的资料,VCE Test失败最可能的原因是显卡输出异常或PCIe链路问题,导致VCE寄存器无法接收到正确的帧数据。建议优先执行近端VGA口验证和PCIe链路排查。若需进一步精确定位,请提供近端VGA测试结果及dmesg中PCIe相关日志——但当前知识库中未包含此特定错误的完整解决方案,仅能基于通用排查思路给出指导。

注意:以上分析完全基于提供的上下文,未引入外部知识。若问题仍未解决,建议联系硬件团队进行显卡或主板链路诊断。

根据日志内容可以判断是vce寄存器给的内容长度异常,建议参考ai结论进行排查

这种问题,会有肉眼可见的现象吗?比如 KVM 一直无 signal 这种

有某些 sr 配置可能和这个问题相关吗?