从虚拟化前端Bug学习分析Kernel Dump(11)

struct vring_virtqueue ffff917c6c67d000 的时候已经把 indirect 的值打印出来了 , vm 确实使用了 indirect descriptors , 因此这个 bug 实际上触发得并不合理 , 仅仅只判断 total_sg > vq->vring.num 就触发宕机的条件太过严格了 。

总结

这个宕机问题到这里就算分析完了 , 最后解决的方案是升级内核 , 考虑到目前 Centos 官方还未接受该 patch , 需要手动编译修复或通过第三方 repo 升级 。 实际上很多奇奇怪怪的问题都可以通过升级内核来解决 , 但是最新的内核同样可能遇到奇奇怪怪的问题 , 谁知道下一个发现内核 bug 后写了 patch 最后被社区接受的会不会是自己呢?希望大家通过这篇文章能有所收获 。 文章写得不好或不对的地方请各位大佬不吝赐教 。

作者:半人前

阅读原文

推荐阅读