Π’ ядрС Linux Π½Π°ΠΉΠ΄Π΅Π½Π° забытая Π·Π°ΠΏΠ»Π°Ρ‚Π°, Π²Π»ΠΈΡΡŽΡ‰Π°Ρ Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ CPU AMD

Π’ ядро Linux 6.0, Ρ€Π΅Π»ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ оТидаСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ понСдСльник, принято ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ систСм Π½Π° процСссорах AMD Zen. Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊΠΎΠΌ падСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ оказался ΠΊΠΎΠ΄, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹ΠΉ 20 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄ для ΠΎΠ±Ρ…ΠΎΠ΄Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… чипсСтах. Аппаратная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΄Π°Π²Π½ΠΎ устранСна ΠΈ Π½Π΅ проявляСтся Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… чипсСтах, Π½ΠΎ старый ΠΎΠ±Ρ…ΠΎΠ΄ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±Ρ‹Π» Π·Π°Π±Ρ‹Ρ‚ ΠΈ стал источником сниТСния ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° систСмах Π½Π° Π±Π°Π·Π΅ соврСмСнных CPU AMD. НовыС систСмы Π½Π° CPU Intel старый ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°Π½Ρ‘Π²Ρ€ Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°Π΅Ρ‚, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² Π½ΠΈΡ… доступ ΠΊ ACPI осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° intel_idle, Π° Π½Π΅ ΠΎΠ±Ρ‰Π΅Π³ΠΎ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° processor_idle.

ΠžΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°Π½Ρ‘Π²Ρ€ Π±Ρ‹Π» Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Π² ядро Π² ΠΌΠ°Ρ€Ρ‚Π΅ 2002 Π³ΠΎΠ΄Π° для блокирования проявлСния ошибки Π² чипсСтах, связанной с отсутствиСм Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΉ установки состояниС простоя (idle) ΠΈΠ·-Π·Π° Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сигнала STPCLK#. Для ΠΎΠ±Ρ…ΠΎΠ΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ACPI добавлялась Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ инструкция WAIT, Π·Π°ΠΌΠ΅Π΄Π»ΡΡŽΡ‰Π°Ρ процСссор Ρ‡Ρ‚ΠΎΠ±Ρ‹ чипсСт успСвал ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² состояниС простоя. ΠŸΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ профилирования с использованиСм инструкций IBS (Instruction-Based Sampling) Π½Π° процСссорах AMD Zen3 Π±Ρ‹Π»ΠΎ выявлСно, Ρ‡Ρ‚ΠΎ процСссор ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя, выполняя Π·Π°Π³Π»ΡƒΡˆΠΊΡƒ, которая ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠΉ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²ΠΊΠ΅ состояния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° процСссор ΠΈ Π²Ρ‹ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΡŽ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ² сна (C-State) ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ cpuidle.

ПодобноС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ отраТаСтся Π² сниТСнии ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ…, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… часто Ρ‡Π΅Ρ€Π΅Π΄ΡƒΡŽΡ‚ΡΡ состояния простоя (idle) ΠΈ активности (busy). НапримСр, ΠΏΡ€ΠΈ использовании ΠΏΠ°Ρ‚Ρ‡Π°, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΎΠ±Ρ…ΠΎΠ΄Π½ΠΎΠΉ ΠΌΠ°Π½Ρ‘Π²Ρ€, срСдниС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ тСста tbench ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ с 32191 MB/s Π΄ΠΎ 33805 MB/s.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru