然后再来看看龙芯关于这个bug的解决方案回复,从龙芯的回复看,龙芯在试图使用1998年的百兆网络体系结构硬件(单核14万中断dma处理能力)解决今天的问题,一个是体现出龙芯的技术落后与无知,另一个也证明龙芯的cpu发展到今天问题已经深入骨髓积重难返神仙难救了。
从问题回复看龙芯在试图使用单核cpu的逻辑来严格的保证dma的缓存一致性问题,但是这个问题实际上在奔4引入HT后就解决了,在xAPIC中多核cpu可以同时处理多路中断并发起DMA,并随后在2004年研发成功支持多cpu的多队列网卡82574,这种网卡的原理就是使用多核cpu来处理中断发起dma,随后在82599 sr-iov dpdk 以及显卡上出现的vlukan等都是以该技术为基础,多核dma可以让你的显卡在玩游戏时桌面依然不会卡死,并提升显卡算力的利用效率,降低潜伏期。
但龙芯cpu就比较奇葩了,在1998百兆体系结构上没有做出改进的情况下强上多核,把自己做成了大号蝌蚪,在龙芯这种奇葩硬件上,amd显然更加无奈,从amd的代码中可以看出amd在试图使用2PC来解决多核cpu同时发起dma时出现的缓存不一致,多核dma即便是在没有vlukan的opengl双缓存时代依然是很重要的,但这个需求在1998百兆体系结构上带来了4倍的缓存回写开销(龙芯相对奔4是40倍),但是他在理论上能够缓解随机蓝屏出现的概率,所以现在回过头来再看龙芯的回复是多么的无知和经验欠缺,龙芯既然在造显卡是不是考虑从amd挖点有经验的人过来,一步一步来先把奔4的xAPIC体系结构课程补起来。
我为amd能被这样的猪队友爬上表示深感同情。
