Издание на ядрото на Linux 6.13

След като два месеца разработка, Линус Торвалдс представи версия 6.13 на ядрото на Linux. Сред най-забележителните промени: режим на лениво изместване в планировчика, поддръжка на атомарни записи в XFS и Ext4, механизъм за „многостепенни времеви печати“, адаптивен режим за включване на поточно предаване в мрежовата подсистема, възможност за компилация с оптимизации AutoFDO, поддръжка на механизма за защита ARM65 Guarded Control Stack, изолация на виртуални машини чрез разширение ARM CCA, отделни стекове в BPF, премахване на ReiserFS, драйвер virtual-cpufreq, netlink API net-shaper, режим на монтиране на tmpfs с чувствителност към регистъра на символи, поддръжка на POSIX разширения в SMB3, драйвер AMD Cache Optimizer.

В новата версия са внедрени 14172 корекции от 2086 разработчици, размерът на патча е 46 MB (промените засягат 15375 файла, добавени са 598707 реда код, изтрити са 406294 реда). В предишното издание имаше 14607 корекции от 2167 разработчици, размерът на патча беше 37 MB. Около 52% от всички представени в 6.13 промени са свързани с устройство драйвери, приблизително 13% от промените се отнасят до обновление на код, специфичен за хардуерни архитектури, 11% са свързани с мрежовия стек, 4% — с файловите системи и 3% — с вътрешните подсистеми на ядрото.

Основни нововъведения в ядрото 6.13:

  • Дискова подсистема, вход/изход и файлови системи
    • Добавен е механизъм за „многостепенни времеви печати“, който позволява получаване на информация за времето на промяна или достъп до файлове с точност по-голяма от милсекунда, без отрицателно влияние върху производителността. Увеличаването на точността на печатите води до допълнителни разходи поради увеличаването на интензивността на записване на метаданни на диска, затова в предложената реализация по-точни печати се създават не за всички файлове, а само за тези, за които процесите изискват подобни печати чрез повикване на getattr().
    • Добавена е поддръжка на атомарни операции за запис, при които записването на данни, чийто размер надвишава размера на сектора, се осъществява атомарно на устройства за съхранение, предоставящи такава възможност. В момента атомарният запис е реализиран за XFS, Ext4 в режим O_DIRECT (Direct I/O) и md RAID 0/1/10.
    • Предложен е нов механизъм за преброяване на референции за файлове, осигуряващ увеличение на производителността с 3-5% в работни натоварвания с повече от 255 потока.
    • Премахната е реализацията на файловата система ReiserFS, която през миналата година беше обявена за остаряла.
    • Добавен параметър sysctl «fs.dentry-negative» за настройка на политиката за почистване на записи «dentry» (вътрешно представяне на елементите в директории) в VFS след изтриване на свързаните с тях файлове. За някои видове натоварване е по-оптимално да се запазят тези записи за изтрити файлове, а за други — да се изтриват, поради което в ядрото е предоставена възможност за избор (по подразбиране «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, позволяваща изчакване за завършване на почистването на подраздели, което позволява на непривилегирован потребител, който няма достъп до ioctl SEARCH_TREE, да изпълни команда «btrfs subvolume sync» (полезно в приложения за резервно копиране, които почистват подраздели). Добавена е ioctl-операция ENCODED_READ за четене на кодирани данни чрез io_uring, например, за четене директно на съсCompressed extents без разархивиране. Продължава работата по прехода към използване на страници памет (page folios). Намалено е появяването на конкуриращи блокировки при търсене на вградени обратни ссылки и при обработка на буферите на екстентите. Повишена е ефективността на компресията на картата на екстентите.
    • В файлова система EROFS (Разширяема самооценяваща файлова система), проектирана за използване в дялове, достъпни в режим само за четене, е реализирана възможността за използване в системния повик 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 е включена поддръжка на квоти за real-time устройства. Добавена е поддръжка на директория с метаданни (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
Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster