Linux内核的x86 32位支持已经开始出现一些轻微的问题。大多数内核开发人员不再积极测试x86-32,发行版供应商也开始放弃对32位的支持。其最新例子是,自Meltdown漏洞缓解措施以来,在过去一年中,出现在主线内核中的一些错误的、未定义的行为功能。
英特尔的Meltdown漏洞公布几个月后( x86_64被缓解),Linux KPTI支持x86 32位以试图解决这个问题(从1月份的公开到7月份的主流就绪),但事实证明,它结果暴露了一个32位的错误。
内核页表隔离支持暴露了x86 32位上的I/O TLB映射问题。该原因是内核中未定义的行为,导致数据损坏、内核Oopes/Panics和自发重新启动。
内核的vmalloc代码现在正在积极同步取消对系统中所有页表的映射,然后再重用这些区域,这将解决过去一年一直存在于崩溃x86-32内核上的32位未定义行为。这个补丁将用于Linux5.3-Rc2,并可能会在短时间内移植到稳定的系列中。