LINUX.ORG.RU

Релиз ядра Linux 3.16

 


1

1

Линус Торвальдс после двухмесячной разработки объявил о выходе ядра Linux 3.16. В этот релиз принято около 11910 исправлений от 1300 разработчиков, размер патча 37 Мб, изменения затронули 9809 файлов, добавлено 514025 строк кода, удалено 267461 строк. Из всех изменений около 42% связаны с драйверами устройств, 24% внесённых изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 12% связано с сетевым стеком, 5% — файловыми системами и 5% c внутренними подсистемами ядра.

  • В релиз включена новая версия интерфейса cgroup, в котором представлена единая унифицированная иерархия cgroup (Cgroup unified hierarchy), пришедшая на смену гибкой, но не получившей практическое применение, поддержке произвольного числа иерархий cgroup, определяющих применение правил к группам процессов;
  • В коде EFI работающем на уровне ядра обеспечена поддержка обработки символов Unicode и добавлена возможность сохранения и загрузки состояния регистров FPU при обращении к EFI, так как прошивки EFI могут использовать FPU;
  • Добавлена начальная поддержка EFI для ARM64 (aarch64);
  • Возвращена отключенная в прошлом выпуске возможность создания 16-разрядных сегментов при работе в 64-разрядном режиме. Поддержка 16-разрядных сегментов была отключена из-за потенциальных проблем с безопасностью, связанных с утечкой информации из ядра;
  • Системный вызов remap_file_pages() объявлен устаревшим;
  • Полностью переработан метод организации работы блокировок файлов с использование семафоров rwsem (Reader Writer Semaphores), что положительно повлияло на производительность некоторых видов операций. Например, отмечается ускорение выполнения связанных с оценкой пропускной способности тестов PostgreSQL (pgbench) на 60%. Выполнение теста AIM7 ускорилось на 20-60%;
  • Добавлена поддержка режима быстрого открытия TCP-соединений (TFO — TCP Fast Open) для соединений, установленных поверх IPv6. Режим TFO позволяет сократить число шагов установки соединения за счёт комбинирования в один запрос первого и второго шагов классического 3-этапного процесса согласования соединения и даёт возможность отправки данных на начальном этапе установки соединения;
  • Добавлен внутренний API для программной поддержки TSO (TCP segmentation offload) в драйверах. API уже задействован в драйверах mvneta, mv643xx_eth и fec;
  • Существенно повышена функциональность нового блочного слоя blk-mq (multiqueue block layer), рассчитанного на организацию многопоточного доступа к данным на многоядерных системах и позволяющего эффективно использовать возможности современных SSD-накопителей. Архитектура нового блочного слоя основана на двухуровневой модели очередей: на первом уровне функционируют очереди для передачи запросов ввода/вывода, привязанные к каждому CPU. Из данных очередей запросы направляются в очереди второго уровня, которые координируют обращение к оборудованию. В зависимости от конфигурации системы, числа CPU и накопителей соотношение между очередями первого и второго уровня может составлять от 1 к 1 до N к M. Из переведённых на blk-mq драйверов отмечается драйвер для Flash-чипов Micron с интерфейсом PCI (mtip32xx). В ядре 3.17 ожидается поддержка Multiqueue SCSI;
  • Для файловой системы Btrfs представлен новый ioctl-вызов BTRFS_IOC_TREE_SEARCH_V2 для поиска заданных ключей в ФС. BTRFS_IOC_TREE_SEARCH_V2 является более гибким вариантом вызова BTRFS_IOC_TREE_SEARCH, позволяющий использовать буфер большего размера при получении результатов поиска (ранее использовался фиксированный буфер в 3992 байт). Учёт квот переработан для увеличения производительности и более эффективного отслеживания отложенных операций с экстентами;
  • В ядро были интегрированы патчи для увеличения надёжности локального (loopback) монтирования NFS-разделов. Переработан код NFS для обработки внешнего представления данных (XDR), что позволило обеспечить поддержку ACL, размером более 4Кб, и возвращать результаты readdir() блоками более 4Кб;
  • Реализована возможность установки атрибутов доступа только для чтения (RO) и запрета исполнения (NX) для областей данных модулей ядра, на начальном этапе их загрузки, ещё до начала разбора параметров модуля;
  • Добавлена поддержка JIT-компиляции для BPF-фильтров, используемых в подсистеме seccomp, используемой для контроля обращения к системным вызовам;
  • Для виртуальных сетевых интерфейсах Xen обеспечена поддержка множественных очередей (multi-queue), что позволило добиться значительного повышения производительности. В реализацию Xen для архитектуры ARM добавлена поддержка приостановки и возобновления работы гостевых систем (suspend/resume);
  • В гипервизор KVM добавлена начальная поддержка little-endian процессоров POWER8. Для архитектуры s390 внесены оптимизации в работу KVM, обеспечена возможность миграции виртуальных окружений и поддержка GDB;
  • В модуль расширенной верификации (EVM) добавлена опция для учёта расширенных атрибутов (xattrs) в рассчитанном для файла значении HMAC (Hash-based message authentication code). В частности, при расчёте HMAC теперь могут быть добавлены атрибуты SMACK64EXEC, SMACK64TRANSMUTE и SMACK64MMAP;
  • Для архитектуры ARM добавлена поддержка ждущего режима (hibernation);
  • Для 64-разрядной little-endian архитектуры PowerPC добавлена поддержка ELFv2 ABI и представлена новая обвязка для загрузчика;
  • Реализована поддержка 64-разрядного варианта виртуального процессора Goldfish, нацеленного на обеспечение эмуляции платформы Android и используемый при разработке под данную платформу;
  • Существенно переработана поддержка многопроцессорности для Allwinner A31 SoC. Добавлена поддержка SMP для Marvell Armada 375 и 38x SoC;
  • В ядро добавлены специфичные для архитектуры ARM64 (aarch64) ассемблерные оптимизации, затрагивающие операции со строками, работу с памятью и крпитографические операции (SHA, AES, GHASH). Добавлена поддержка Ftrace;
  • Для DRM-драйвера Nouveau добавлена поддержка устройств NVIDIA Tesla K40 GK110B и начальная поддержка NVIDIA Tegra K1 GK20A;
  • Для DRM-дравера Radeon внесены изменения, ускоряющие доступ к памяти для GPU, использующих виртуальную память (GPUVM). В итоге, наблюдается повышение производительности графической подсистемы при использовании свободного драйвера вместе с GPU на основе архитектуры GCN;
  • В драйверах для управления подсветкой экрана ноутбуков по умолчанию задействован интерфейс ACPI video вместо ранее используемого ACPI backlight, что позволило решить проблемы с работой на устройствах с некорректно функционирующими Win8 BIOS;
  • Реализована поддержка новых ARM SoC: ST Microelectronics STiH407; Freescale i.MX6SX; Samsung EXYNOS 3250, 5260, 5410, 5420, 5800; LSI Axxia AXM55xx.
  • Добавлена поддержка звуковых контроллеров NVIDIA Tegra HD Audio и звуковых плат Samsung ARM Series 3 Chromebook. Добавлена порция новых кодеков: Realtek ALC5651, ALC5677, Analog Devices ADAU1361, ADAU1761, ADAU1381, ADAU1781, Cirrus Logic CS42L56, Intel Baytrail MAX98090;В
  • Для Videobuf2 добавлена поддержка DVB (Digital Video Broadcasting);
  • Реализована поддержка интерфейса SSI (Synchronous Serial Interface, адаптация RS422 для использования в сенсорах);
  • Добавлен драйвер для модема смартфона Nokia N900;
  • В ядро добавлена поддержка новых сетевых контроллеров: Broadcom BCM7xxx Ethernet, STMicroelectronics ST21NFCA NFC, Renesas R-Car SoC CAN, Geschwister Schneider USB/CAN, Xilinx CAN, Hisilicon HIX5HD2, AMD SoC 10GbE Ethernet.

Новость взята с opennet.ru

>>> Подробности (на английском языке)

★★★★★

Проверено: JB ()
Последнее исправление: Wizard_ (всего исправлений: 6)
Ответ на: комментарий от anonymous

Подозреваю, что чего-то в интернете может и не быть.

В любом случае, хуже от наличия этой фичи в ядре никому не будет.

hobbit ★★★★★
()
Ответ на: в Debian 8 jessie будет ядро Linux 3.16 от anonymous

The Linux 3.16-stable branch will *not* be maintained as a longterm branch at kernel.org. However, the Ubuntu kernel team will continue to maintain that branch, following the same rules for acceptance and review, until around April 2016. I can continue maintenance from then until the end of regular support for 'jessie'

Печальненько.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)

Обновился на него, потому что со стандартным ядром не корректно работает Docker(при обновлении ПО в контейнере c Centos 7 возникает ошибка unpacking of archive failed on file /usr/bin/systemd-detect-virt: cpio: cap_set_file). Обновление до 3.16 проблему решает. Хорошая версия ядра.

lucentcode ★★★★★
()
Ответ на: тавтология от Bad_ptr

балбес, ядра разные бывают

anonymous
()

Broadcom произвел рабочий драйвер.

У меня заработал ядерный драйвер wifi на этом ядре. Владельцы

02:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)

могут избавиться от wl драйвера.

goose ★
()

обеспечить поддержку ACL, размером более 4Кб

Atlant

для дискет, размером 160

Технари, надоели, своими, ненужными, запятыми.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от om-nom-nimouse

Даже на «сколько будет семь умножить на восемь»?

даже так

Litrabol ★
()

Ядро жиреет и жиреет, жиреет и жиреет. Скоро ядро FreeBSD и набор базовых инструментов будут иметь меньший размер исходного кода. Тут-то Debian/kFreeBSD и пригодится.

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

И для power[pc]64, блин, little endian! Little! Damn why?

anonymous
()
Ответ на: Broadcom произвел рабочий драйвер. от goose

У меня заработал ядерный драйвер wifi на этом ядре. Владельцы

02:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)

могут избавиться от wl драйвера.

Ну ничего себе. А у меня эта карточка с wl так и не заработала. Зато с ядерным драйвером работает с самого начала.

$ uname -r && lspci | grep Bro
3.10.30
08:00.0 Network controller: Broadcom Corporation BCM4313 802.11b/g/n Wireless LAN Controller (rev 01)

И это сейчас. Когда только купил, ядро было ещё, кажется, 3.8.4. Там была фишка, что для этой карточки в ядре 2 драйвера. И по умолчанию включался нерабочий. После его отключения всё работало как часы.

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

Существуют дистрибутивы Linux, образно говоря, для домохозяек, которым что скомпилируют, то они и будут использовать.

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

Домохозяйка не знает таких умных слов. Но это не значит, что они должны работать на забагованном разжиревшем <s>ведре</s>ядре.

kedoki
()

Линус, прекрати издеваться. Нам уже давно известно, что у тебя
linux-image-amd128-4.3-pro-extended-rockstable-includedgnome4-2014edition-rar-zip-exe

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

Ну ничего себе. А у меня эта карточка с wl так и не заработала. Зато с ядерным драйвером работает с самого начала.

С wl, работает но время от времени отваливается и в лог всякие гадости пишет, приходится, переподключаться. wl из коробки уже не собирается для ядер больше 3.15.1. Я поторопился с выводом, что оно заработало, поработало отлично ровно один день. Сейчас не может найти все доступные сети, в том числе и мою.

И это сейчас. Когда только купил, ядро было ещё, кажется, 3.8.4. Там была фишка, что для этой карточки в ядре 2 драйвера. И по умолчанию включался нерабочий. После его отключения всё работало как часы.

А можешь вывод из dmesg при успешной инициализации запостить?

goose ★
()
└─> sysctl -a | grep fastop
net.ipv4.tcp_fastopen = 1
net.ipv4.tcp_fastopen_key = 00000000-00000000-00000000-00000000

Хотя, может его надо включать в ядре руками?

shell-script ★★★★★
()
Последнее исправление: shell-script (всего исправлений: 2)
Ответ на: комментарий от kedoki

Домохозяйка не заметит разницы в скорости работы ядра, потому что у домохозяйки тормозит браузер с вконтактиком вне зависимости от ядра, операционной системы и положения лун в кольцах Сатурна.

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

└─> sysctl -a | grep fastop
net.ipv4.tcp_fastopen = 1
net.ipv4.tcp_fastopen_key = 00000000-00000000-00000000-00000000

Хотя, может его надо включать в ядре руками?

вероятнее всего флагом во время создания сокетного объекта...

типа

setsockopt(sockfd, SOL_TCP, TCP_FASTOPEN, &qlen, sizeof(qlen));
user_id_68054 ★★★★★
()
Ответ на: комментарий от kedoki

Скоро ядро FreeBSD и набор базовых инструментов будут иметь меньший размер исходного кода.

и приколись, это всё драйвера, которых в бзде нет

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

Ядро жиреет

Домохозяйка не заметит разницы в скорости работы ядра

ещё один школьник, думающий что скорость кода обратно пропорционально зависит от размера?

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

Существуют дистрибутивы Linux, образно говоря, для домохозяек, которым что скомпилируют, то они и будут использовать.

Открою маленький секрет. Из-за, как ты говоришь, ожирения ядра, скорость работы не пострадает. Единственное что пострадает — скорость запуска системы (будет заметно лишь на калькуляторах). И то modules=dep это исправит отчасти. Основная часть ядра это драйверы как-бы.

roman77 ★★★★★
()
Последнее исправление: roman77 (всего исправлений: 2)
Ответ на: комментарий от goose

А можешь вывод из dmesg при успешной инициализации запостить?

http://pastebin.com/un5Xn2nP
Не знаю, чем это тебе поможет, кроме имени модуля.

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

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

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