Description of problem: 当前机密虚拟机的IO完全依赖于swiotlb,由于swiotlb默认在低地址分配内存,并要求大块的连续地址空间,因此在测试AMD SEV中我们发现了如下问题: 1. 实例启停测试时部分机器启动失败,kernel panic 2. 大规格实例插入两张网卡时 IO Hang 经排查分别是因为: 1. 虚拟化组件提供的4G以下的内存空间过于松散,并且由于开启kaslr后部分内存的分配会打断大块的连续地址空间,从而导致swiotlb无法分配出内存而失败 2. 某些大规格实例的网卡对IO内存要求极高,需要配置极大的swiotlb才能满足这些大规格的多网卡使用,但是swiotlb机制限制在4G以下分配内存,先天限制了io内存的使用上线 Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. 机器多次启停 2. 128c大规格机器插入多张网卡(非机密虚拟机可以配置swiotlb=522144,force) Actual results: kernel panic & IO Hang Expected results: 运行正常 Additional info:
具体改动方案有争议,本次rc2先不合入
本Bug是由swiotlb的先天设计不足引入,只是最近机密虚拟机的测试强度增大,因此体现了出来了。该问题不会影响非机密虚拟机的场景,对正常用户业务影响不大