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

ПослС Π΄Π²ΡƒΡ… мСсяцСв Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Линус Π’ΠΎΡ€Π²Π°Π»ΡŒΠ΄Ρ прСдставил Ρ€Π΅Π»ΠΈΠ· ядра Linux 6.13. Π‘Ρ€Π΅Π΄ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: Ρ€Π΅ΠΆΠΈΠΌ Π»Π΅Π½ΠΈΠ²ΠΎΠ³ΠΎ вытСснСния Π² ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ΅ Π·Π°Π΄Π°Ρ‡, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎΠΉ записи Π² XFS ΠΈ Ext4, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Β«multigrain timestampsΒ», Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΠ»ΠΈΠ½Π³Π° Π² сСтСвой подсистСмС, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ сборки с оптимизациями AutoFDO, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ARM65 Guarded Control Stack, изоляция Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ARM CCA, Ρ€Π°Π·Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ стСки Π² BPF, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ReiserFS, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ virtual-cpufreq, netlink API net-shaper, Ρ€Π΅ΠΆΠΈΠΌ монтирования tmpfs ΡƒΡ‡Ρ‘Ρ‚Π° рСгистра символов, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° POSIX-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ Π² SMB3, Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ AMD Cache Optimizer.

Π’ Π½ΠΎΠ²ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ принято 14172 исправлСний ΠΎΡ‚ 2086 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ‚Ρ‡Π° β€” 46 ΠœΠ‘ (измСнСния Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ»ΠΈ 15375 Ρ„Π°ΠΉΠ»ΠΎΠ², Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 598707 строк ΠΊΠΎΠ΄Π°, ΡƒΠ΄Π°Π»Π΅Π½ΠΎ 406294 строк). Π’ ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ выпускС Π±Ρ‹Π»ΠΎ 14607 исправлСний ΠΎΡ‚ 2167 Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠ°Ρ‚Ρ‡Π° β€” 37 ΠœΠ‘. Около 52% всСх прСдставлСнных Π² 6.13 ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ связаны с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π°ΠΌΠΈ устройств, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ 13% ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅ ΠΊ обновлСнию ΠΊΠΎΠ΄Π°, спСцифичного для Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€, 11% связано с сСтСвым стСком, 4% β€” с Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΌΠΈ систСмами ΠΈ 3% c Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ подсистСмами ядра.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π° Π² ядрС 6.13:

  • Дисковая подсистСма, Π²Π²ΠΎΠ΄/Π²Ρ‹Π²ΠΎΠ΄ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Β«multigrain timestampsΒ», ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ измСнСния ΠΈΠ»ΠΈ доступа ΠΊ Ρ„Π°ΠΉΠ»Π°ΠΌ c Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ с миллисСкундой Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, Π½ΠΎ Π±Π΅Π· Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ влияния Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΠ΅ точности ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹ΠΌ расходам ΠΈΠ·-Π·Π° увСличСния интСнсивности записи ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° диск, поэтому Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π΅ для всСх Ρ„Π°ΠΉΠ»ΠΎΠ², Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ…, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… процСссы Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°ΡŽΡ‚ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· Π²Ρ‹Π·ΠΎΠ² getattr().
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ записи, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… запись Π΄Π°Π½Π½Ρ‹Ρ…, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ сСктора, осущСствляСтся Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΎ Π½Π° устройствах хранСния, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄ΠΎΠ±Π½ΡƒΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ. Π’ настоящСС врСмя атомарная запись Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° для XFS, Ext4 Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ O_DIRECT (Direct I/O) ΠΈ md RAID 0/1/10.
    • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ подсчёта ссылок для Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ прирост ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Π½Π° 3-5% Π² Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ°Ρ…, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ… Π±ΠΎΠ»Π΅Π΅ 255 ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².
    • Π£Π΄Π°Π»Π΅Π½Π° рСализация Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы ReiserFS, которая Π² ΠΏΠΎΠ·Π°ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π»Π° объявлСна ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠ΅ΠΉ.
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ sysctl-ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Β«fs.dentry-negativeΒ» для выставлСния Π² VFS ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ очистки записСй Β«dentryΒ» (Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π΅ прСдставлСниС элСмСнтов ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²) послС удалСния связанных с Π½ΠΈΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ². Для ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π²ΠΈΠ΄ΠΎΠ² Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Π΅Π΅ ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ записи ΠΎΠ± ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…, Π° для ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ β€” ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ, поэтому Π² ядрС прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Β«dentryΒ» автоматичСски Π½Π΅ ΡƒΠ΄Π°Π»ΡΡŽΡ‚ΡΡ).
    • Π’ систСмный Π²Ρ‹Π·ΠΎΠ² statmount() Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ Ρ„Π»Π°Π³ STATMOUNT_OPT_ARRAY для возвращСния списка ΠΎΠΏΡ†ΠΈΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π² Π²ΠΈΠ΄Π΅ массива ΠΈΠ· строк, Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΡ…ΡΡ Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ символом ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… экранированиС Β«\000Β». Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° возвращСния ΠΏΠΎΠ΄Ρ‚ΠΈΠΏΠ° Π€Π‘ (fs_subtype, для опрСдСлСния использования FUSE), ΠΎΠΏΡ†ΠΈΠΉ бСзопасного монтирования ΠΈ исходного супСрблока (sb_source).
    • Π’ OverlayFS прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ указания слоёв Ρ‡Π΅Ρ€Π΅Π· Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ дСскрипторы, Π° Π½Π΅ ΠΈΠΌΠ΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ.
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму tmpfs Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция монтирования Β«casefoldΒ» для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π΅Π· ΡƒΡ‡Ρ‘Ρ‚Π° рСгистра символов ΠΈ опция Β«strict_encodingΒ» для блокирования создания Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ, содСрТащими Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹Π΅ символы UTF-8.
    • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π½ΠΎΠ²Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² для управлСния Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²: setxattrat(), getxattrat(), listxattrat() ΠΈ removexattrat(). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ систСмных Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² setxattr(), getxattr(), listxattr() ΠΈ removexattr() Π½ΠΎΠ²Ρ‹Π΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ указания Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ дСскриптора ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ осущСствляСтся поиск Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ.
    • Π’ Btrfs Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ioctl-опСрация BTRFS_IOC_SUBVOL_SYNC_WAIT, Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π°Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ очистки ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², Ρ‡Ρ‚ΠΎ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Β«btrfs subvolume syncΒ» Π½Π΅ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌ доступа ΠΊ ioctl SEARCH_TREE (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π² прилоТСниях Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования, ΠΎΡ‡ΠΈΡ‰Π°ΡŽΡ‰ΠΈΡ… ΠΏΠΎΠ΄Ρ€Π°Π·Π΄Π΅Π»Ρ‹). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ioctl-опСрация ENCODED_READ для чтСния Ρ‡Π΅Ρ€Π΅Π· io_uring Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для чтСния Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ сТатых экстСнтов Π±Π΅Π· распаковки. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρƒ Π½Π° использованиС Ρ„ΠΎΠ»ΠΈΠ°Π½Ρ‚ΠΎΠ² страниц памяти (page folios). Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ (Β«lock contentionΒ») ΠΏΡ€ΠΈ поискС встроСнных ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Ρ… ссылок ΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π±ΠΎΡ€Π΅ Π±ΡƒΡ„Π΅Ρ€ΠΎΠ² экстСнтов. ΠŸΠΎΠ²Ρ‹ΡˆΠ΅Π½Π° ΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ сТатия ΠΊΠ°Ρ€Ρ‚Ρ‹ экстСнтов.
    • Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС EROFS (Extendable Read-Only File System), ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠΉ для использования Π½Π° Ρ€Π°Π·Π΄Π΅Π»Π°Ρ…, доступных Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для чтСния, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π² систСмном Π²Ρ‹Π·ΠΎΠ²Π΅ lseek() ΠΎΠΏΡ†ΠΈΠΉ SEEK_HOLE ΠΈ SEEK_DATA.
    • Π’ F2FS Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° отраТСния устройств (Β«device aliasingΒ»), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π² F2FS для использования части Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π€Π‘. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ внСшнСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π² F2FS. НапримСр, ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ Π€Π‘ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«mkfs.f2fs -c /dev/vdc@vdc.file /dev/vdbΒ», послС Ρ‡Π΅Π³ΠΎ содСрТимоС устройства /dev/vdc Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ ΠΈ ΠΎΡ‚Ρ€Π°ΠΆΠ΅Π½ΠΎ Π² Ρ„Π°ΠΉΠ» vdc.file ΠΈ Ρ€Π°Π·Π΄Π΅Π» /dev/vdc ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для своих Π½ΡƒΠΆΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π€Π‘. Для возвращСния Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ содСрТимого достаточно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» vdc.file.
    • Π’ XFS Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠ²ΠΎΡ‚ для realtime-устройств. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (metadata directory), Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ всС inode с ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
    • Π’ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ΅ FUSE Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ динамичСского измСнСния максимального числа страниц (FUSE_MAX_MAX_PAGES), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Β«sysctl fs.fuse.max_pages_limitΒ». Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ задСйствованы Ρ„ΠΎΠ»ΠΈΠ°Π½Ρ‚Ρ‹ страниц памяти (page folios).
    • Π’ SMB Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° POSIX-Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠΉ для SMB3, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для хранСния ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Ρ„Π°ΠΉΠ»ΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ fifo, Ρ„Π°ΠΉΠ»Ρ‹ устройства ΠΈ символичСскиС ссылки. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ монтирования Ρ€Π°Π·Π΄Π΅Π»Π° с Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΌ, примСняСмым ΠΏΡ€ΠΈ Ρ€ΠΎΡ‚Π°Ρ†ΠΈΠΈ ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° новая опция монтирования Β«cifs.upcallΒ» для опрСдСлСния пространства ΠΈΠΌΡ‘Π½. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΎ распознаваниС Ρ„Π°ΠΉΠ»ΠΎΠ² ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΈ Π±Π»ΠΎΡ‡Π½Ρ‹Ρ… устройств, созданных Π² Windows NFS Server. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° символичСских ссылок Π² стилС WSL (Windows Subsystem for Linux).
    • Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы UBIFS, ADFS, BEFS, HFS, HFSPLUS, HPFS, JFS ΠΈ ECRYPTFS ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° использованиС Π½ΠΎΠ²ΠΎΠ³ΠΎ API монтирования Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ².
    • Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ систСмы ΠΈ ECRYPTFS, UFS ΠΈ NILFS2 ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Ρ‹ Π½Π° использованиС Ρ„ΠΎΠ»ΠΈΠ°Π½Ρ‚ΠΎΠ² страниц памяти (page folios).
  • ΠŸΠ°ΠΌΡΡ‚ΡŒ ΠΈ систСмныС сСрвисы
    • Π’ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° модСль Π»Π΅Π½ΠΈΠ²ΠΎΠ³ΠΎ вытСснСния Π·Π°Π΄Π°Ρ‡ (PREEMPT_LAZY, lazy preemption), которая соотвСтствуСт ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ вытСснСния (Β«full preemptionΒ») для realtime-Π·Π°Π΄Π°Ρ‡ (RR/FIFO/DEADLINE), Π½ΠΎ Π·Π°Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ вытСснСниС ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ (SCHED_NORMAL) Π΄ΠΎ Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Ρ‚ΠΈΠΊΠ°. Указанная Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΡŽ случаСв вытСснСния Π΄Π΅Ρ€ΠΆΠ°Ρ‚Π΅Π»Π΅ΠΉ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, Ρ‡Ρ‚ΠΎ позволяСт ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊ конфигурациям, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΌ модСль Π΄ΠΎΠ±Ρ€ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎΠ³ΠΎ вытСснСния (voluntary preemption). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, новая модСль позволяСт ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ возмоТности ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ вытСснСния Π² ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠΈ realtime-Π·Π°Π΄Π°Ρ‡, Π½ΠΎ сводит ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ просСданиС ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, новая модСль ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ вытСснСния Π·Π°Π΄Π°Ρ‡ Π² ядрС, благодаря ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ ΠΈΠ· процСсса планирования ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², находящихся Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°Ρ… ядра (Π²Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π·Π°Π΄Π°Ρ‡).
    • ΠŸΡ€ΠΈ сборкС компилятором Clang прСдоставлСна Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΉ

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ