LINUX.ORG.RU

Ядро Linux 5.3 увидело свет!

 ,


2

2

Главные новшества

  • Добавлен системный вызов pidfd_open() для получения дескриптора pidfd по номеру pid. Механизм pidfd позволяет при отправке сигнала исключить риск того, что процесс-получатель успеет завершиться и на его месте успеет оказаться совсем другой процесс с таким же process ID. Подробности.
  • Ограничения частотных диапазонов в планировщике процессов. Например, критические процессы можно запускать с минимальным порогом частоты (скажем, не менее 3 ГГц), а низкроприоритетные — с верхним порогом частоты (к примеру, не более 2 ГГц). Подробности.
  • Поддержка видеочипов семейства AMD Navi (RX5700) в драйвере amdgpu. Реализована вся необходимая функциональность, включая кодирование/декодирование видео и управление питанием.
  • Полноценнная работа на х86-совместимых процессорах Zhaoxin, созданных в результате сотрудничества компании VIA и правительства Шанхая.
  • Подсистема управления питанием по технологии Intel Speed Select, характерной для некоторых процессоров семейства Xeon. Технология примечательна возможностью детальной настройки производительности для каждого ядра ЦП.
  • Энергоэффективный механизм режима ожидания процессов в пространстве пользователя, использующий инструкции umwait для процессоров Intel Tremont. Подробности.
  • Допущен к использованию диапазон 0.0.0.0/8, что даёт 16 млн новых IPv4-адресов. Подробности.
  • Гибкий легковесный гипервизор ACRN, хорошо подходящий для управления IoT-систем (интернет вещей). Подробности.

Далее перечислены некоторые другие изменения.

Основная часть ядра

  • Поддержка сжатия прошивок в xz-формат, что позволяет уменьшить каталог /lib/firmware с ~420 Мб до ~130 Мб.
  • Новый вариант системного вызова clone() с возможностью задать большее количество флагов. Подробности.
  • Автоматический выбор большего шрифта для высоких разрешений в консоли.
  • Опция CONFIG_PREEMPT_RT, знаменующая скорую интеграцию набора RT-патчей в основную ветку ядра.

Файловая подсистема

  • Системные вызовы BULKSTAT и INUMBERS для XFS v5, также начата работа по реализации многопоточного обхода инодов.
  • Btrfs теперь использует быстрые контрольные суммы (crc32c) на всех архитектурах.
  • К открытым файлам на Ext4 теперь жёстко применяется флаг неизменяемости (иммутабельности). Реализована поддержка пустот (holes) в каталогах.
  • CEPH научилась работать с SELinux.
  • Механизм smbdirect в CIFS больше не считается экспериментальным. Добавлены криптоалгоритмы для SMB3.1.1 GCM. Повышена скорость открытия файлов.
  • На F2FS можно размещать файлы подкачки, они работают в режиме прямого доступа. Возможность отключить сборщик мусора при checkpoint=disable.
  • Клиенты NFS могут установить сразу несколько TCP-подключений к серверу через опцию монтирования nconnect=X.

Подсистема памяти

  • Каждому dma-buf даётся полноценный инод. Из каталогов /proc/*/fd и /proc/*/map_files можно получить много подробных данных об использовании буферов shmem.
  • Механизм smaps показывает отдельную информацию по анонимной и разделяемой памяти, а также по файловому кэшу в proc-файле smaps_rollup.
  • Использование rbtree для swap_extent повысило производительность в условиях активного использования подкачки многими процессами.
  • В /proc/meminfo отображается количество страниц vmalloc.
  • Расширены возможности tools/vm/slabinfo в плане сортировки кэшей по степени фрагментации.

Виртуализация и безопасность

  • Драйвер virtio-iommu для паравиртуализированного устройства, позволяющего слать запросы IOMMU без эмуляции таблиц адресов.
  • Драйвер virtio-pmem для доступа к накопителям через физическое пространство адресов.
  • Ускорение доступа к метаданным для vhost. Для TX PPS тесты показывают рост скорости на 24%.
  • Для vhost_net запрещён zerocopy по умолчанию.
  • Ключи шифрования можно прикреплять к пространствам имён.
  • Поддержка xxhash — крайне быстрого не-криптографического алгоритма хэширования, скорость которого ограничена только производительностью памяти.

Сетевая подсистема

  • Начальная поддержка nexthop-объектов, созданных для улучшения масштабируемости маршрутов IPv4 и IPv6.
  • Netfilter научился выгружать фильтрацию на аппаратные устройства ускорения. Добавлена встроенная поддержка отслеживания соединений для мостов.
  • Новый модуль контроля трафика, позволяющий манипулировать MPLS-заголовками пакетов.
  • Удалена подсистема isdn4linux.
  • Доступны LE-пинги для Bluetooth.

Аппаратные архитектуры

  • Новые ARM-платформы и устройства: Mediatek mt8183, Amlogic G12B, Kontron SMARC SoM, Google Cheza, devkit для Purism Librem5, Qualcomm Dragonboard 845c, Hugsun X99 TV Box, и др.
  • Для x86 добавлен механизм /proc/<pid>/arch_status для отображения архитектурно-специфической информации вроде времени последнего использования AVX512.
  • Оптимизирована работа VMX для KVM, скорость vmexit повышена на 12%.
  • Добавлена и обновлена различная информация о процессорах Intel KabyLake, AmberLake, WhiskeyLake и Ice Lake.
  • Сжатие lzma и lzo для uImage на PowerPC.
  • Защищённая virtio-виртуализация для S390.
  • Поддержка больших страниц памяти для RISCV.
  • Режим путешествий во времени для User-mode Linux (замедление и ускорение времени).

Драйверы устройств

  • Распознание метаданных HDR для драйверов amdgpu и i915.
  • Расширения функциональности для видеочипов Vega12 и Vega20 в amdgpu.
  • Мультисегментная гамма-коррекция для i915, а также асинхронное отключение питания экрана и ряд новых прошивок.
  • Видеодрайвер Nouveau научился распознавать чипы семейства TU116.
  • Новые Bluetooth-протоколы MediaTek MT7663U и MediaTek MT7668U.
  • Выгрузка TLS TX HW для Infiniband, а также расширение аппаратного и температурного мониторинга.
  • Распознание Elkhart Lake в драйвере HD Audio.
  • Новые аудиоустройства и кодеки: Conexant CX2072X, Cirrus Logic CS47L35/85/90, Cirrus Logic Madera, RT1011/1308.
  • Драйвер Apple SPI для клавиатуры и трекпада.
  • В подсистеме watchdog можно установить предельное время для открытия /dev/watchdogN.
  • Механизм управления частотой cpufreq получил поддержку imx-cpufreq-dt и Raspberry Pi.

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

Deleted

Проверено: jollheef ()
Последнее исправление: Deleted (всего исправлений: 4)

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

«Если процесс умер - то все, его уже не воскресить. Процесс, который родится заново - это уже другой процесс.»

Ядерная чушь. При живой миграции процессы восстанавливают десятками вообще как семучки.

AVL2 ★★★★★
()
Ответ на: комментарий от targitaj

Ну, я так понимаю, что теперь 0/8 ничем не отличается в этом плане. А что?

post-factum ★★★★★
()

отброшена полезная оптимизация в коде Ext4, сокращающая число обращений к накопителю

Похоже пора форкать ядро линукс

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

Теперь linux будет и на китайских танках работать

Как будто он там не работал...

Odalist ★★★★★
()

Чёт я не догоняю... Вот раньше, если на сетевухе стоит в настройках DHCP и у неё адрес 0.0.0.0 был - то понятно, что оно где-то издохло. Когда там всякая APIPA, понятно, 169.254... А щас как жить..? (Этак они и 10-е сети из серых наружу вытащат, во будет веселья...)

dv76 ★★★★
()

Не узнаю свой ЛОР, где истерика по поводу 0.0.0.0/8?

Вы же понимаете, что теперь все soho-роутеры домашнего/малоофисного сегмента можно просто выкинуть в мусорку, ибо те годами не обновляются и возможно даже уже не поддерживаются. И это лишь капля в море. Ладно там, Ubiquiti, MikroTik, Cisco, Juniper, — в их поддержке и скорейшем обновлении я ни капли не сомневаюсь (*погладил свои три MikroTik'а @CAPsMAN*) но сколько всяких ASUS, TP-Link и прочего железа средней паршивости останутся не у дел?

Вопрос. А как с этим в коммутаторах (неуправляемых)? Им есть дело до 0/8 или пофигу? (надеюсь, ибо их у меня дофига).

Ну хорошо, 0.0.0.0 использовался для биндинга «прослушивать на всех интерфейсах», а теперь как?

Какого чёрта? Какого чёрта!? Хватит насиловать legacy! Где IPv6 каждой лампочке?

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

железа средней паршивости останутся не у дел

И поделом. Реальные мужики апдейтят свои роутеры сами. И собирают тоже.

0.0.0.0

См. выше.

IPv6 каждой лампочке?

https://apenwarr.ca/log/20170810

post-factum ★★★★★
()
Ответ на: комментарий от AVL2

Например, стандартный bonding/port-channel раскладывает пакеты по линкам по хэшу от 4-tuple (src, srcport, dst, dstport). При попытке качать в один поток на скорости 11 Гб/с через бонд на 4x10, один из линков кончится.

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

При живой миграции процессы восстанавливают десятками

Там восстанавливаются живые, а не мертвые. Это миграция и восстановление живых, а не мертвых.

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

На этом ядре ломается VMWare Player

Вообще это нормально для vmware. Проще сказать, когда его НЕ надо патчить.

DrRulez ★★★
()

Поддержка видеочипов семейства AMD Navi (RX5700) в драйвере amdgpu. Реализована вся необходимая функциональность, включая кодирование/декодирование видео и управление питанием.

А если просто поставить видео-драйвер с сайта amd на ядро младшей версии, то кодировать не будет? Или речь идёт только об открытом драйвере?

Windows ★★★
()
Ответ на: комментарий от amd_amd

Ну, оно работает. А если тебе и правда нужно, то кроме XFS нет никаких вариантов.

post-factum ★★★★★
()

Распознание метаданных HDR для драйверов amdgpu и i915.

Ммм, как быстро! И пяти лет не прошло! А Xorg уже научили работать с HDR? А то я переживаю, что не заведется нововведение.

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

Ну хорошо, 0.0.0.0 использовался для биндинга «прослушивать на всех интерфейсах», а теперь как?

А при чём здесь 0.0.0.0? Он каким был, таким и остался.

Windows ★★★
()

Поддержка сжатия прошивок в xz-формат, что позволяет уменьшить каталог /lib/firmware с ~420 Мб до ~130 Мб.

В эпоху мультитерабайтных HDD/SSD ради этого нововведения безусловно стоило пыжиться! Ведь выигрыш такой большой, целых 290 двоичных мегабайт!

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

А как это работает? Ладно ещё искуственно замедлять выполнение конкретного куска кода, но ускорять?

С выходом ядра линукс 5.3 появилась возможность легко ускорять любые программы! Теперь можно майнить любую криптовалюту на CPU Pentium 3 и это будет очень выгодно! Также можно перебрать все возможные пароли за несколько секунд! Теперь CPU перемножают любые матрицы быстрее, чем GPU! Квантовые компьютеры больше не нужны! Однако учёные обиделись и изнасиловали журналиста, написавшего эти откровения!

Как это на самом деле?

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

В эпоху мультитерабайтных HDD/SSD ради этого нововведения безусловно стоило пыжиться! Ведь выигрыш такой большой, целых 290 двоичных мегабайт!

Я думаю стоило... 290 мегабайт - это не мало.

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

290 мегабайт - это не мало.

И 640 килобайт хватит всем)

anonymous
()

где вообще можно читать новости про amdgpu? не нашёл(

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

какие есть вменяемые альтернативы? (ext4)

f2fs

На сколько f2fs устойчива к внезапному отключению питания?

Windows ★★★
()
Ответ на: комментарий от AVL2

Неужели несколько потоков дают прирост в скорости?

ну, какбэ, да.

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

Если процесс умер - то все, его уже не воскресить. Процесс, который родится заново - это уже другой процесс.

отрицание сансары => оскорбление чуйств ...

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

Ладно там, Ubiquiti, MikroTik, Cisco, Juniper, — в их поддержке и скорейшем обновлении я ни капли не сомневаюсь (*погладил свои три MikroTik'а @CAPsMAN*)

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

anonymous
()

Допущен к использованию диапазон 0.0.0.0/8, что даёт 16 млн новых IPv4-адресов. Подробности.

Что только ни придумают, только бы не переходить на ipv6.

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

какое говно мамонта ядро линкуса в микротике

beta 7.0 вышла, скоро релиз. Просто нужно еще немного потрепеть.

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

А как это работает? Ладно ещё искуственно замедлять выполнение конкретного куска кода, но ускорять?

Для того чтобы понять это надо грубо поделить вообще ВСЕ вызовы в твоей программе на неблокирующие и блокирующие. И дать им следующее определение:

1) Неблокирующие - это те, время исполнение которых зависит от CPU/RAM
2) Блокирующие - это те, время исполнение которых зависит от внешних источников либо тех, время которых заранее известно

Примеры неблокирующих вызовов:

1) memcpy()
2) socket( ..., SOCK_NONBLOCK, ...)
3) read()/write() на неблокирующий сокет
4) fork() - хоть и тяжеловесен но зависит от CPU и памяти
5) clock_gettime(), gettimeofday(), time()

Примеры блокирующих вызовов:

1) nanosleep()
2) select(..., ..., ..., ..., 5000);
3) wait()
4) read()/write() в файл, даже если он на SSD и даже (!) если находится в RAMDISK
5) openat()

Итак представь, что тебе в абстрактной игре надо повернуть каким-то образом. Управляющий поток будет делать что-либо такое:

rotate_obj(myobj, 1);
nanosleep({tv_sec=0, tv_nsec=50000000}, NULL);
rotate_obj(myobj, 2);
nanosleep({tv_sec=0, tv_nsec=50000000}, NULL);
rotate_obj(myobj, 3);
nanosleep({tv_sec=0, tv_nsec=50000000}, NULL);
rotate_obj(myobj, 4);
nanosleep({tv_sec=0, tv_nsec=50000000}, NULL);
rotate_obj(myobj, 5);
nanosleep({tv_sec=0, tv_nsec=50000000}, NULL);
rotate_obj(myobj, 6);
nanosleep({tv_sec=0, tv_nsec=50000000}, NULL);


Думаю ты уже догадываешься что надо сделать чтобы это было быстрее?

Ну и плюс еще надо «трекать» и выдавать правильные значения для функций которые получают абсолютное время. Это и CLOCK_REALTIME и CLOCK_MONOTONIC.

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

А про ускорение реальных задач которые требуют только CPU/MEMORY это хрень и лажа.

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

Такое впечатление, что влияет только на время выполнения некоторых блокирующих операций (семейство sleep) и получение текущего времени процессом.

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

Ну давайте тогда придумаем IPv8. Делать что-то надо. IPv4-адресов всего 4 млрд, а население этого шарика — 7 млрд. Сначала 0.0.0.0 разрешили использовать, потом 172.16.0.0 и 192.168.0.0 отдадут под глобальные адреса. А дальше что?

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

Пробовал разные ядра, пытался найти то, где заработает вайфай. Вот это последнее - подключил из experimental.

Подтвердите баг. Отваливается WiFi на новых ядрах.

DELIRIUM ☆☆☆☆☆
()
Последнее исправление: DELIRIUM (всего исправлений: 1)
Ответ на: комментарий от te111011010

Ну давайте тогда придумаем IPv8.

давайте. напоминает историю с IA64 и x86-64, тут явно нужно что-то похожее, сохраняющее совместимость :-)

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

Что с ним не так? Помимо востребованности технологии.

question4 ★★★★★
()
Ответ на: комментарий от router

мне известно «актуальное» «сетевое» «железо», которое не принимает например 172.16.255.x/24 просто потому что 255 в третьем октете
причем некоторые принимали по dhcp, но не позволяли прописать руками
однако с обновлением прошивки переставали и по dhcp принимать

не говоря уж о том, как многие раньше пугались адресов x.y.z.0/32 на ptp линках...

вобщем актуальное использование 0/8 будет ой как не скоро

wd
()
Ответ на: комментарий от post-factum

Веселье будет, когда они в RFC протащат IEEE 754, и половина октетов будет мантиссой адреса, а половина — экспонентой.

Уже предлагали?

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