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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.