in the Linux 6.0 core, which is expected the next Monday, accepted turned out to be the code added 20 years ago to bypass the hardware problem in Some chipsets. The hardware problem has long been eliminated and does not manifest in current chipsets, but the old circumvention of the problem was forgotten and has become a source of decrease in performance on systems based on modern CPU AMD. The old round -up maneuver does not affect the new systems on the CPU Intel, since they are accessed by the ACPI using a separate Intel_idle driver, and not the general driver Processor_idle.
bypass maneuver was added to the core in March 2002 to block the manifestation of error in chipsets associated with the absence of proper installation, the state of downtime (IDLE) due to delaying the processing of the STPCLK#signal. To go around the problem in the implementation of the ACPI, an additional Wait instruction was added, slowing down the processor so that the chipset manage to go into a state of downtime. When conducting profiling using IBS (Instruction-Based Sampling instructions) on AMD Zen3 processors, it was revealed that the processor spends a considerable time, which leads to the incorrect interpretation of the load state and the deeper sleep modes (C-STATE) Cpuidle.
Such behavior is reflected in a decrease in performance at loads in which the states of downtime (IDLE) and activity (BUSY) often alternate. For example, when using a patch that turns off the bypass maneuve, the average TBENCH test indicators increase from 32191 MB/S to 33805 MB/S.