Π Π΅Π»ΠΈΠ· ядра Linux 5.14

ПослС Π΄Π²ΡƒΡ… мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ прСдставил Ρ€Π΅Π»ΠΈΠ· ядра Linux 5.14. Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: Π½ΠΎΠ²Ρ‹Π΅ систСмныС Π²Ρ‹Π·ΠΎΠ²Ρ‹ quotactl_fd() ΠΈ memfd_secret(), ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ide ΠΈ raw, Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° для cgroup, Ρ€Π΅ΠΆΠΈΠΌ планирования Π·Π°Π΄Π°Ρ‡ SCHED_CORE, инфраструктура для создания Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

Π’ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ принято 15883 исправлСний ΠΎΡ‚ 2002 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ‚Ρ‡Π° — 69 ΠœΠ‘ (измСнСния Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ 12580 Ρ„Π°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 861501 строк ΠΊΠΎΠ΄Π°, ΡƒΠ΄Π°Π»Π΅Π½ΠΎ 321654 строк). Около 47% всСх прСдставлСнных Π² 5.14 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ связаны с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ устройств, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 14% ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ обновлСнию ΠΊΠΎΠ΄Π°, спСцифичного для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, 13% связано с сСтСвым стСком, 3% — с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами ΠΈ 3% c Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ подсистСмами ядра.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°:

  • Дисковая подсистСма, Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы
    • Для cgroup Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Π·Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° — rq-qos, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запросов ΠΊ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΌ устройствам, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… участниками ΠΊΠ°ΠΆΠ΄ΠΎΠΉ cgroup. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π² ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° mq-deadline.
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС ext4 Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° новая ioctl-ΠΊΠΎΠΌΠ°Π½Π΄Π° EXT4_IOC_CHECKPOINT, ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ Π½Π° диск всС ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈΠ· ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈ связанныС с Π½ΠΈΠΌΠΈ Π±ΡƒΡ„Π΅Ρ€Ρ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ ΠΆΡƒΡ€Π½Π°Π»ΠΎΠΌ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. ИзмСнСниС ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½ΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ‚ΠΈΠ²Ρ‹ ΠΏΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΡŽ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… систСм.
    • Π’ Btrfs внСсСны ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ: Π·Π° счёт ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ лишнСго Турналирования Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Ρ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² Π² процСссС выполнСния fsync ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ интСнсивных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ»Π°ΡΡŒ Π΄ΠΎ 17%. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ усСчСния, Π½Π΅ Π·Π°Ρ‚Ρ€Π°Π³ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… экстСнты, ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Π½ΠΎΠΉ синхронизации, Ρ‡Ρ‚ΠΎ сократило врСмя выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° 12%. Π’ sysfs Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° настройка для ограничСния пропускной способности Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ΅ Π€Π‘. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ioctl-Π²Ρ‹Π·ΠΎΠ²Ρ‹ для ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ измСнСния Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ удалСния устройства.
    • Π’ XFS ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° рСализация Π±ΡƒΡ„Π΅Ρ€Π½ΠΎΠ³ΠΎ кэша, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ страниц памяти Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ кэша.
    • Π’ F2FS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ€Π΅ΠΆΠΈΠΌ ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ сТатых Π±Π»ΠΎΠΊΠΎΠ² (compress_cache) для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ случайного чтСния. Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сТатия Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½Ρ‹Ρ… Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ mmap(). Для Π²Ρ‹Π±ΠΎΡ€ΠΎΡ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ сТатия Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΏΠΎ маскС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π° новая опция монтирования nocompress.
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ exFAT ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡŽ совмСстимости с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°ΠΌΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… ΠΊΠ°ΠΌΠ΅Ρ€.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ систСмный Π²Ρ‹Π·ΠΎΠ² quotactl_fd(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΊΠ²ΠΎΡ‚Π°ΠΌΠΈ Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· Ρ„Π°ΠΉΠ» ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ устройства, Π° Ρ‡Π΅Ρ€Π΅Π· ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ дСскриптора, связанного с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ примСняСтся ΠΊΠ²ΠΎΡ‚Π°.
    • Из ядра ΡƒΠ΄Π°Π»Π΅Π½Ρ‹ старыС Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ для Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств с интСрфСйсом IDE, Π½Π° смСну ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΡƒΠΆΠ΅ Π΄Π°Π²Π½ΠΎ ΠΏΡ€ΠΈΡˆΠ»Π° подсистСма libata.
    • Из ядра ΡƒΠ΄Π°Π»Ρ‘Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ «raw», ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ Π½Π΅Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ доступ ΠΊ Π±Π»ΠΎΡ‡Π½Ρ‹ΠΌΠΈ устройствам Ρ‡Π΅Ρ€Π΅Π· интСрфСйс /dev/raw. Указанная Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π΄Π°Π²Π½ΠΎ рСализуСтся Π² прилоТСниях ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„Π»Π°Π³Π° O_DIRECT.
  • ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΈ систСмныС сСрвисы
    • Π’ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ΅ Π·Π°Π΄Π°Ρ‡ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ планирования SCHED_CORE, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ процСссы ΠΌΠΎΠ³ΡƒΡ‚ совмСстно выполнятся Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ядрС CPU. ΠšΠ°ΠΆΠ΄ΠΎΠΌΡƒ процСссу ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ cookie-ΠΈΠ½Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ довСрия ΠΌΠ΅ΠΆΠ΄Ρƒ процСссами (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ). ΠŸΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ выполнСния ΠΊΠΎΠ΄Π° ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ совмСстноС использованиС ΠΎΠ΄Π½ΠΎΠ³ΠΎ ядра CPU Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для процСссов, связанных с ΠΎΠ΄Π½ΠΈΠΌ Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для блокирования Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π°Ρ‚Π°ΠΊ класса Spectre Π·Π° счёт прСдотвращСния выполнСния Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΏΠΎΡ‚ΠΎΠΊΠ΅ SMT (Hyper Threading) Π΄ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΈ Π½Π΅ Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… довСрия Π·Π°Π΄Π°Ρ‡.
    • Для cgroup Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ kill, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ Ρ€Π°Π·ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ всС привязанныС ΠΊ Π³Ρ€ΡƒΠΏΠΏΠ΅ процСссы (ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ SIGKILL), Ρ‡Π΅Ρ€Π΅Π· запись «1» Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» cgroup.kill.
    • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности, связанныС с Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π½Π° выявлСниС расщСплённых Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ («split lock»), Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΈ доступС ΠΊ Π½Π΅Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½Ρ‹ΠΌ Π΄Π°Π½Π½Ρ‹ΠΌ Π² памяти ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠΉ инструкции Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ Π΄Π²Π΅ Π»ΠΈΠ½ΠΈΠΈ кСша CPU. ΠŸΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ приводят ΠΊ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌΡƒ падСнию ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, поэтому Ρ€Π°Π½Π΅Π΅ яром ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ»Π°ΡΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ прилоТСния, Π²Ρ‹Π·Π²Π°Π²ΡˆΠ΅Π³ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ. Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки ядра «split_lock_detect=ratelimit:N», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ общСсистСмный Π»ΠΈΠΌΠΈΡ‚ интСнсивности ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² сСкунду, послС ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ любой процСсс, ΡΡ‚Π°Π²ΡˆΠΈΠΉ источником расщСплённой Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, вмСсто Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ остановлСн Π½Π° 20 мс.
    • Π’ cgroup-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π΅ пропускной способности CFS (CFS bandwidth controller), ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ cgroup, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ опрСдСлСния Π»ΠΈΠΌΠΈΡ‚ΠΎΠ², ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½Π½Ρ‹ΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ дСйствия, Ρ‡Ρ‚ΠΎ позволяСт Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ. НапримСр, установка значСния cpu.cfs_quota_us Π² 50000 ΠΈ cpu.cfs_period_us Π² 100000 даст Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΠ΅ процСссов ΠΊΠ°ΠΆΠ΄Ρ‹Π΅ 100ms Ρ‚Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ 50ms Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ CPU.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ инфраструктура для создания Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠΎΠ² BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, которая Π² дальнСйшСм ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ BPF-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, подписанных Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌ довСрия Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая futex-опСрация FUTEX_LOCK_PI2, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰Π°Ρ ΠΌΠΎΠ½ΠΎΡ‚ΠΎΠ½Π½Ρ‹ΠΉ Ρ‚Π°ΠΉΠΌΠ΅Ρ€ для расчёта Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ врСмя ΠΏΡ€ΠΎΠ²Π΅Π΄Ρ‘Π½Π½ΠΎΠ΅ систСмой Π² спящСм Ρ€Π΅ΠΆΠΈΠΌΠ΅.
    • Для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ RISC-V Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… страниц памяти (Transparent Huge-Pages) ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° KFENCE для выявлСния ошибок ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ.
    • Π’ систСмный Π²Ρ‹Π·ΠΎΠ² madvise(), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ срСдства для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ процСсса, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Ρ„Π»Π°Π³ΠΈ MADV_POPULATE_READ ΠΈ MADV_POPULATE_WRITE для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ «page fault» Π²ΠΎ всСх страницах памяти, ΠΎΡ‚Ρ€Π°ΠΆΡ‘Π½Π½Ρ‹Ρ… для ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈΠ»ΠΈ записи, Π±Π΅Π· выполнСния фактичСского чтСния ΠΈΠ»ΠΈ записи (prefault). ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ„Π»Π°Π³ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для сниТСния Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π² процСссС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, благодаря ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅ΠΌΡƒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° «page fault» Ρ€Π°Π·ΠΎΠΌ для всСх Π½Π΅Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… страниц, Π½Π΅ доТидаясь фактичСского обращСния ΠΊ Π½ΠΈΠΌ.
    • Π’ систСмС unit-тСстирования kunit Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° запуска тСстов Π² ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ QEMU.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ трассировщики: «osnoise» для отслСТивания Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ Π² прилоТСниях, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ, ΠΈ «timerlat» для Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°Ρ… ΠΏΡ€ΠΈ пробуТдСниях ΠΏΠΎ сигналу Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°.
  • Виртуализация ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ систСмный Π²Ρ‹Π·ΠΎΠ² memfd_secret(), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти Π² ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ пространствС адрСсов, Π²ΠΈΠ΄ΠΈΠΌΡƒΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ процСссу-Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρƒ, Π½Π΅ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅ΠΌΡƒΡŽ Π² Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы ΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π½Π΅Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΡƒΡŽ ядру.
    • Π’ систСмС Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² seccomp ΠΏΡ€ΠΈ выносС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² пространство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΎΠ΄Π½ΠΎΠΉ Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для создания Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ дСскриптора для ΠΈΠ·ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ ΠΈ Π΅Π³ΠΎ возвращСния ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ систСмного Π²Ρ‹Π·ΠΎΠ²Π°. ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ опСрация Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π² пространствС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΡ€ΠΈ поступлСнии сигнала.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для управлСния ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ΠΌ рСсурсов Π² пространствС ΠΈΠΌΡ‘Π½ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ привязываСт ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ счётчики rlimit ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π² «user namespace». ИзмСнСниС Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ±Ρ‰ΠΈΡ… счётчиков рСсурсов ΠΏΡ€ΠΈ запускС ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ процСссов Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°Ρ….
    • Π’ Π³ΠΈΠΏΠ΅Ρ€Π²ΠΈΠ·ΠΎΡ€ KVM для систСм ARM64 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π² гостСвых систСмах Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ MTE (MemTag, Memory Tagging Extension), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠ²ΡΠ·Π°Ρ‚ΡŒ Ρ‚Π΅Π³ΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ выдСлСния памяти ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ коррСктности использования ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ для блокирования эксплуатации уязвимостСй, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹Ρ… ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΡƒΠΆΠ΅ освобоТдённым Π±Π»ΠΎΠΊΠ°ΠΌ памяти, пСрСполнСниями Π±ΡƒΡ„Π΅Ρ€Π°, обращСниями Π΄ΠΎ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ использованиСм Π²Π½Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ контСкста.
    • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅ΠΌΡ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎΠΉ ARM64 срСдства для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ (Pointer Authentication) Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ настроСны для ядра ΠΈ пространства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. ВСхнология позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ спСциализированныС инструкции ARM64 для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ адрСсов Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²Ρ‹Ρ… подписСй, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранятся Π² Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… Π²Π΅Ρ€Ρ…Π½ΠΈΡ… Π±ΠΈΡ‚Π°Ρ… самого указатСля.
    • Π’ User-mode Linux Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° использования Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠ² ΠΊ PCI-устройствам с Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ шиной PCI, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌΠΎΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΎΠΌ PCI-over-virtio.
    • Для систСм x86 Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΠ°Ρ€Π°Π²ΠΈΡ€Ρ‚Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ устройства virtio-iommu, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ IOMMU-запросы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ ATTACH, DETACH, MAP ΠΈ UNMAP, ΠΏΠΎΠ²Π΅Ρ€Ρ… транспорта virtio Π±Π΅Π· эмуляции Ρ‚Π°Π±Π»ΠΈΡ† страниц памяти.
    • Для CPU Intel, начиная с сСмСйства Skylake ΠΈ заканчивая Coffee Lake, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ использованиС Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Intel TSX (Transactional Synchronization Extensions), ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… срСдства для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π·Π° счёт динамичСского ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ синхронизации. Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΈΠ·-Π·Π° возмоТности ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Π°Ρ‚Π°ΠΊ Zombieload, ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡ‚Π΅Ρ‡ΠΊΠΎΠΉ свСдСний ΠΏΠΎ сторонним ΠΊΠ°Π½Π°Π»Π°ΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅ΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° асинхронного прСрывания ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (TAA, TSX Asynchronous Abort).
  • БСтСвая подсистСма
    • ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° интСграция Π² ядро MPTCP (MultiPath TCP), Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° TCP для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ TCP-соСдинСния с доставкой ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ нСскольким ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· Ρ€Π°Π·Π½Ρ‹Π΅ сСтСвыС интСрфСйсы, привязанныС ΠΊ Ρ€Π°Π·Π½Ρ‹ΠΌ IP-адрСсам. Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ для задания собствСнных ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ Ρ…ΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° для IPv4 ΠΈ IPv6 (multipath hash policy), Π΄Π°ΡŽΡ‰ΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ· пространства ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠ· ΠΏΠΎΠ»Π΅ΠΉ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π°Ρ…, Π² Ρ‚ΠΎΠΌ числС инкапсулированных, Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€ΠΈ вычислСнии Ρ…ΡΡˆΠ°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π²Ρ‹Π±ΠΎΡ€ ΠΏΡƒΡ‚ΠΈ для ΠΏΠ°ΠΊΠ΅Ρ‚Π°.
    • Π’ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ транспорт virtio Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сокСтов SOCK_SEQPACKET (упорядочСнная ΠΈ надёТная ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π΄Π°Ρ‚Π°Π³Ρ€Π°ΠΌΠΌ).
    • Π Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° сокСтов SO_REUSEPORT, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт сразу нСскольким ΡΠ»ΡƒΡˆΠ°ΡŽΡ‰ΠΈΠΌ сокСтам ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΏΠΎΡ€Ρ‚Ρƒ для ΠΏΡ€ΠΈΡ‘ΠΌΠ° соСдинСний с распрСдСлСниСм ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΡ… запросов ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ всСм ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ Ρ‡Π΅Ρ€Π΅Π· SO_REUSEPORT сокСтам, Ρ‡Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ созданиС ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½Ρ‹Ρ… сСрвСрных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ Π½ΠΎΠ²ΠΎΠΉ вСрсии Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ срСдства для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ сокСту Π² случаС сбоя ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ запроса ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ сокСтом (Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с ΠΏΠΎΡ‚Π΅Ρ€Π΅ΠΉ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… соСдинСний ΠΏΡ€ΠΈ пСрСзапускС сСрвисов).
  • ΠžΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ amdgpu Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π½ΠΎΠ²Ρ‹Ρ… сСрий GPU AMD Radeon RX 6000, Ρ€Π°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΌΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ «Beige Goby» (Navi 24) ΠΈ «Yellow Carp», Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° GPU Aldebaran (gfx90a) ΠΈ APU Van Gogh. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с нСсколькими панСлями eDP. Для APU Renoir Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌΠΈ Π±ΡƒΡ„Π΅Ρ€Π°ΠΌΠΈ Π² видСопамяти (TMZ, Trusted Memory Zone). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° горячСго извлСчСния графичСских ΠΊΠ°Ρ€Ρ‚ (hot-unplug). Для GPU Radeon RX 6000 (Navi 2x) ΠΈ старых GPU AMD Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° энСргосбСрСТСния ASPM (Active State Power Management), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π½Π΅Π΅ Π±Ρ‹Π» Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для GPU Navi 1x, Vega ΠΈ Polaris.
    • Для Ρ‡ΠΈΠΏΠΎΠ² AMD Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° раздСляСмой Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ памяти (SVM, shared virtual memory) Π½Π° Π±Π°Π·Π΅ подсистСмы HMM (Heterogeneous memory management), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ устройства с собствСнными Π±Π»ΠΎΠΊΠ°ΠΌΠΈ управлСния ΠΏΠ°ΠΌΡΡ‚ΡŒΡŽ (MMU, memory management unit), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ ΠΊ основной памяти. Π’ Ρ‚ΠΎΠΌ числС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ HMM ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ совмСстноС адрСсноС пространство ΠΌΠ΅ΠΆΠ΄Ρƒ GPU ΠΈ CPU, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ GPU ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ основной памяти процСсса.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ AMD Smart Shift, динамичСски ΠΌΠ΅Π½ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ энСргопотрСблСния CPU ΠΈ GPU Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ°Ρ… с чипсСтом ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ΠΎΠΉ AMD для форсирования ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΏΡ€ΠΈ ΠΈΠ³Ρ€Π°Ρ…, Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ Π²ΠΈΠ΄Π΅ΠΎ ΠΈ 3D-Ρ€Π΅Π½Π΄Π΅Ρ€ΠΈΠ½Π³Π΅.
    • Π’ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π΅ i915 для Π²ΠΈΠ΄Π΅ΠΎΠΊΠ°Ρ€Ρ‚ Intel Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ‡ΠΈΠΏΠΎΠ² Intel Alderlake P.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ drm/hyperv для Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ графичСского Π°Π΄Π°ΠΏΡ‚Π΅Ρ€Π° Hyper-V.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°-ΠΌΠΎΠ½ΠΎΠ±Π»ΠΎΠΊΠ° Raspberry Pi 400.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ dell-wmi-privacy для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ поставляСмых Π² Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ°Ρ… Dell Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΊΠ°ΠΌΠ΅Ρ€Ρ‹ ΠΈ ΠΌΠΈΠΊΡ€ΠΎΡ„ΠΎΠ½Π°.
    • Для Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠΎΠ² Lenovo Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ WMI-интСрфСйс для измСнСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² BIOS Ρ‡Π΅Ρ€Π΅Π· sysfs /sys/class/firmware-attributes/.
    • Π Π°ΡΡˆΠΈΡ€Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° устройств с интСрфСйсом USB4.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π²ΡƒΠΊΠΎΠ²Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ ΠΈ ΠΊΠΎΠ΄Π΅ΠΊΠΎΠ² AmLogic SM1 TOACODEC, Intel AlderLake-M, NXP i.MX8, NXP TFA1, TDF9897, Rockchip RK817, Qualcomm Quinary MI2 ΠΈ Texas Instruments TAS2505. Π£Π»ΡƒΡ‡ΡˆΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π·Π²ΡƒΠΊΠ° Π½Π° Π½ΠΎΡƒΡ‚Π±ΡƒΠΊΠ°Ρ… HP ΠΈ ASUS. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΏΠ°Ρ‚Ρ‡ΠΈ для сниТСния Π·Π°Π΄Π΅Ρ€ΠΆΠ΅ΠΊ ΠΏΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ воспроизвСдСния Π·Π²ΡƒΠΊΠ° Π½Π° устройствах с интСрфСйсом USB.

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