问题描述: 在5.10.134-12_rc3版本内核unixbench性能测试在海光x86机器上有严重的性能下降问题,在鲲鹏arm和intel x86机器上测试没有明显的性能下降。 引起性能下降的是合入#29组的patch引起的。 从commit:9fd979ab51bd x86/apic: Cleanup destination mode之后,有个别测试项稍微有所下降,到commit:1dfd5b985fce x86/io_apic: Cleanup trigger/polarity helpers开始,所有的测试项均明显下降,基本上下降10%以上。 重现性如何:必现 重现步骤: 1. 选取四个测试commit:328d3ac4df22、ee73fd795554、1dfd5b985fce和e71e3a5dcca3进行unixbench性能测试。 2. 在海光x86、鲲鹏arm和intel x86平台上部署测试环境 3. 以commit:328d3ac4df22的测试结果为基准,对比后三个commit测试结果,1dfd5b985fce和e71e3a5dcca3两个commit的性能有很严重的下降。 实际结果: 在海光机器上性能有严重的下降问题,鲲鹏arm和intel x86平台性能无明显下降。 预期成绩: 在海光x86机器上无性能下降问题。 附加信息:无
问题引入patch: a27dca645d2c0f31abb7858aa0e10b2fa0f2f659 在该patch重构时改动了原有逻辑,irq_is_level函数中将PCI设备和ISA设备的中断触发 方式搞反了,问题代码是level = test_bit(bus, mp_bus_not_pci);导致在AMD平台出现 了性能跌落的问题。 问题修复patch:aec8da04e4d71afdd4ab3025ea34a6517435f363 PCI's default trigger type is level and ISA's is edge. The recent refactoring made it the other way round, which went unnoticed as it seems only to cause havoc on some AMD systems.
bug has fixed, patch was merged into anck5.10