高通平台PCIE EP模式log丢失问题
- 1 问题背景
- 2 问题分析
- 2.1 对比USB
- 2.1.1 Logtool优化
- 2.1.2 Device mhi与fs对比
- 2.2 优化方案
- 2.2.1 Diag系统优化
- 2.2.2 Host mhi优化
- 3 最终成果
1 问题背景
高通5G模组如SDX55\SDX62\SDX65\SDX72\SDX75等支持pcie ep模式。会通过pcie与host(如MT7621\IPQ5018\IPQ6018等)连接作为CPE\ODU等使用。在客户使用场景和研发debug时,均会出现各种问题,需要抓取qxdm log用于问题的分析。
当前在linux上使用的是logtool工具抓取log并保存到host,或直接透传与win qxdm工具连接抓取log到win上。这两种方式在pcie模式下均存在严重的log丢失问题,严重阻塞客户问题的分析。
Log丢失情况说明:如cfun0\1操作,让模组重新注网,我们仅可以抓到鉴权请求log,其他如鉴权响应、网络注册请求响应、pdu建立请求响应等均已丢失:
2 问题分析
2.1 对比USB
同样的上位机环境(如IPQ4019),不同的连接方式(PCIE\USB),通过抓log对比分析,发现usb下log不存在丢失问题,而pcie下log丢失严重。
初步我们怀疑是host cpu对于usb和pcie数据处理能力的差异导致,通过统计两种模式下diag口数据poll次数,发现存在很大的差异,usb每三秒poll次数在1000次左右,而pcie模式下每三秒poll次数在10000次左右,是usb的十倍: