客户问题:2个不同的汽车客户(T,C)分别报了2个WiFi 5 掉卡问题。
问题描述:
在MDM4xx with kernel 4.9平台上,尝试做WiFi SSR恢复,发现WiFi5掉卡,PCIE link downr,无法恢复。
复现:
本地实验室容易复现。
但是在MDM5xx with kernel 4.14,这个问题无法复现。
其中有2个变量,一个是平台不同,一个是kernel 不同,跟印度PCIE RC SW team开会讨论过,他们过log,也想不到什么线索。于是WiFi team继续debug。
分析Triage:
庆幸的是,我们请到了pcie专家,他帮忙抓了pcie sniffer log,对比MDM4xx和MDM5xx,坏的和好的case,发现MDM4xx在SSR之后,PCIE没有恢复config space。
根本原因和解决办法:
于是我们一起对比kernel 4.9和kernel 4.14 的code,发现kernel 4.14里面调用了msm_pcie_cfg_recover if pcie link出现问题的话。于是WiFi team就把这段code 加回到kernel 4.9里面,解决了这个问题。
原则上,这个问题的owner应该是 PCIE RC SW team,他们应该是忘记merge这段code,结果被WiFi SSR给撞上了。虽然印度人没有找到任何有用的线索,但是借助WiFi team+pcie专家一起,很快定位了问题并给出了解决方案。
Ankie的评论:
在应对PCIE linkdown问题,我们需要超越表面的现象,深入探究其背后的根本原因。问题可能源WiFi这边,也可能是在平台端。有时候通过driver的打印即可判断,有时候需要通过PCIE sniffer log 抓包,看看问题到底出在哪里。面对这些挑战,我们必须借助多样化的测试和分析手段,层层剥离,逐步逼近问题的核心。只有这样,我们才能制定出最为恰当、有效的解决方案。