LINUX.ORG.RU

Ядро Linux 5.14

 ,

Ядро Linux 5.14

0

1

После двух месяцев разработки Линус Торвальдс представил выпуск ядра 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. Поддержка старых устройств сохранена в полном объёме, изменения касаются только возможности использования старых драйверов, при использовании которых накопители именовались /dev/hd*, а не /dev/sd*;
    • из ядра удалён драйвер «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;
    • добавлен графический драйвер simpledrm, использующий для вывода фреймбуфер EFI-GOP или VESA, предоставляемый UEFI-прошивкой или BIOS. Основным назначением драйвера является предоставление возможности графического вывода на начальных стадиях загрузки, до того как станет возможным использование полноценного DRM-драйвера. Драйвер также может использоваться как временное решение для оборудования, для которого пока отсутствуют родные DRM-драйверы;
    • добавлена поддержка компьютера-моноблока 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.

>>> Подробности



Проверено: hobbit ()
Последнее исправление: xaizek (всего исправлений: 3)

Ответ на: комментарий от hummer

Поставить онтопик не разрешают корпоративные ограничения

счас каждая помойка корпорацией называется ? есть области где важна производительность - никакими виндами там не пользуются, вот тебе для разрыва пукана

https://community.cadence.com/cadence_technology_forums/f/custom-ic-design/36277/cadence-and-windows

anonymous
()
Ответ на: комментарий от hobbit

Подробнее, пожалуйста. Ты переписал исходники SQLite на C++ или сделал C++-обёртку над её сишными функциями? Если второе, то аналогия некорректная.

Сделал рефакторинг именно SQLite кода /структуры, …/.
Все!
Это не сложно …
Нужно лишь пару тысяч error подправить …
Когда знаешь, что нужно править и как, то это обычный рутинный труд.
Конечно когда разбирался с API, то многие функции и экспортировал.
Было КРУТО расширить функциональность SQLite.
Вообщем зря время потратил …
А так все исправно работает.
В частности с использованием Virtiual Table скрестил Sqlite + DBF + CDX.
То бишь для DBF можно использовать все возможности SQLite.
Но это все

Детские шалости ...    

О нынешней разработке не раз ЛОР говорил.
Кратко

OLE + "Run-Time работа с объектами и кодом" /без привлечения компиляторов/.  

Пока все Ok!
Но работы еще много

Чем дальше в лес, тем больше кода ...

То что деды завещали, на фоне того что уже сделано - «студенческая лаба» …

anonymous
()
Ответ на: комментарий от anonymous

счас каждая помойка корпорацией называется ?

Несколько десятков тысяч человек.

есть области где важна производительность - никакими виндами там не пользуются

Их совсем не интересует производительность на рабочем лапте. Если сильно надо, могут памяти добавить.

вот тебе для разрыва пукана

Ты бы поумнел, что ли, да и пукан свой приберёг. Школьник.

hummer
()
Ответ на: комментарий от hummer

Несколько десятков тысяч человек

большая помойка

Ты бы поумнел, что ли

ты бы не выпендривался а то опять обосрёшься от элементарных вопросов

anonymous
()
Ответ на: комментарий от anonymous

большая помойка

Ты с помойки, тебе это ближе.

ты бы не выпендривался а то опять обосрёшься от элементарных вопросов

Шёл бы ты на хутор.

hummer
()
Ответ на: комментарий от hummer

Ты с помойки, тебе это ближе.

чем занимается твоя корпорация если закон ома не доступен для понимания сотрудниками ? курс ТОЭ есть помоему на любой технической специальности, если в школе учебником физики сраку оттирал.

anonymous
()
Ответ на: комментарий от anonymous

Продолжай штудировать протоколы перед сном.

hummer
()

меня каждый новый релиз радует и не только линукса, давайте еще чаще и больше разнообразной херни, я люблю компилять

nanosecond
()
Linux вспрянет ото сна,
И на обломках Windows
Напишут наши имена!
anonymous
()
Ответ на: комментарий от anonymous

Нет

Ближайшие планы - разработка API для работы с строками, кодировками и локалями, основанное на использовании метадата базы, содержащей данные о кодировках и локалей.

Затем рефакторинг существующего API с учетом новых возможностей.

API будет пригодно для использования в любой ОС, так как нет ни каких зависимостей от какой-либо ОС /даже в MSDOS/ …

Такова моя селяви ...
anonymous
()
Ответ на: комментарий от anonymous

Ладно, я понял, пора отваливать

Что тут обсуждать?

Раз есть форум, значит существуют модераторы.  
Если существуют модераторы, значит есть форум

А тех кто «голяком по форуму любит бегать» нужно

В баню посылать
anonymous
()
Ответ на: комментарий от anonymous
На базаре главная тема - РАЗБОРКИ.   

Так что на форуме «все в порядке».
ПАХАН - честь и совесть форума …

anonymous
()
Ответ на: комментарий от anonymous

А тех кто «голяком по форуму любит бегать» нужно

Отправлять ко мне ...

Владимир

anonymous
()
Ответ на: комментарий от hobbit

На опенете сидит человек на зарплате и фигачит новости. Раньше у нас была машина времени и постили новости ещё до их публикации официальной. А щас рерайт один сплошной с левых сайтов. На других площадках делают всякие социальные поощрения в виде подписчиков, лаки там и всё такое, там тоже фигачат новости для пиара самого себя что-бы в одну из 10 всунуть рекламу. у ЛОРа есть только надежда что какой то энтузиаст плотно сидит в какой то теме и узнав про что-то важное в этой сфере напишет новость, но чаще люди просто где то во вне видят новости и просто приносят их сюда. Либо платить, либо социализировать, но для лора это зашквар. Остаётся только надежда что кто-то просто по фану будет соревноваться в написании новостей, но этот фан быстро угаснет ибо даже эмоциональной отдачи нет. Я вот на списки расылок подписан разных проектов, порой прилетают новости и можно было бы запостить оперативно, но смотришь толксы где новость в 1 строку + ссылка и там уже обсасали всё 100 раз. Смысла в новости уже нет вроде.

Выход по моему есть и не совсем зашквар даже. Но сформулировать не смогу нормально, спать хоца.

LINUX-ORG-RU ★★★★★
()
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

спать хоца

И мне …

Владимир

anonymous
()
Ответ на: комментарий от anonymous

@hobbit, ИМХО будет меньше негативных постов по отношению к новичкам если для них создать раздел.

Имеются хорошие треды от новичков и в них им помогают, а есть ТУПЫЕ /простые вопросы, которые легко гуглятся/.

anonymous
()
Ответ на: комментарий от anonymous

Linux у Microsoft - развитие WSL2

винда у MS - загрузчик для Linux

anonymous
()
Ответ на: комментарий от hobbit

@hobbit, дружище вот @Devastator уже десятки постов опубликовал типа

Ему я тоже желаю смерти, как и Путину. Путину особенно.

Не пора ли эту вакханалию прикрыть?   
anonymous
()
Ответ на: комментарий от anonymous

Анон, стучащий модератору. Залогинься. Стыд, срам!

Владимир

anonymous
()
Ответ на: комментарий от anonymous

@fernandos по существу а-ля модератор.

Никогда в спецтопик не писал и модераторам не жаловался, но вчера от Политолога и Светодиода посты были очень ПЛОХИЕ …

anonymous
()

на конец то сегодня в арч завезли

amd_amd ★★★★★
()

из ядра удалены старые драйверы для блочных устройств с интерфейсом IDE

Драйверы классических аналоговых джойстиков с интерфейсом классического игрового порта IBM PC и PCjr, надеюсь, не удалили?

vM ★★
()
Последнее исправление: vM (всего исправлений: 1)
Ответ на: комментарий от anonymous

Никогда в спецтопик не писал и модераторам не жаловался, но

Для представителя Легиона - это недопустимо. Никогда и не при каких обстоятельствах.

anonymous
()
Ответ на: комментарий от anonymous

Никогда в спецтопик не писал и модераторам не жаловался, но вчера от Политолога и Светодиода посты были очень ПЛОХИЕ …

На плохих парней не жалуюсь кому-то, а бывает и увещеваю не ЗЛОБНИЧАТЬ … Но не всегда, потому как

Нельзя объять, необъятное ...
anonymous
()
Ответ на: комментарий от anonymous

Sorry /шас спою/

Я в весеннем лесу пил березовый сок,
С ненаглядным Windows в стогу ночевал.
Что любил — не сберег, а Linux приобрел,
Был я смел и удачлив, а теперь вот пингвин.
anonymous
()
Ответ на: комментарий от anonymous

Мда. Перечитал сам, прослезился. В статье про лор выпилено все про матан и технофашизм. По анонимусу и кодекс выпилен. Такие швободки.

anonymous
()
Ответ на: комментарий от anonymous

И таки да, лурочка уже не торт.

Сборище ЧСВ-шников это не торт, а … /ну вы поняли/

anonymous
()
Ответ на: комментарий от LINUX-ORG-RU

И так и сяк - всё не то :-0)

Ну, вот смотри: все новостигенерируются, в большей части, в золотом миллиарде разработчиков. И куча специализированных сайтов, которые за денежку (от рекламы) являясь «первоисточниками» этих новостей.

Зачем повторять их на ЛОРе, когда это уже 20ть-десятый уровень в новостном ранге?

Достаточно быть агрегатором. И сообщение типа: Посоны, там ведро 5.18 релизнулось https://kernel'orgi будет вполне удовлетворительным.

Тот же Похороникс напрягается, но в меру возможностей.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.