The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Релиз ядра Linux 3.4. Обзор новшеств"
Отправлено opennews, 21-Май-12 13:37 
Линус Торвальдс представил (https://lkml.org/lkml/2012/5/20/126) релиз ядра Linux 3.4 (http://kernel.org/). Из основных улучшений можно отметить интеграцию поддержки x32 ABI (64-разрядных режим с 32-разрядными указателями); включение в состав ядра модуль Yama для блокирования некоторых типов атак; механизм dm-verity для проверки целостности хранимых блоков данных по криптографическим хэшам; серию улучшений в реализации Btrfs (повышение производительности работы с метаданными, улучшение обработки ошибок и добавление средств для восстановления файлов с повреждённой ФС); расширение возможностей видеодрайверов (поддержка Nvidia Geforce 600 'Kepler', Intel Medfield, AMD RadeonHD 7xxx и AMD Trinity APU); автоматизацию проверки наличия драйверов для задействования специфичных возможностей x86 CPU; GUI на базе GTK2+ для формирования отчётов для подсистемы perf; возможность использования внешних доступных только на чтение устройство в качестве базового источника  LVM-раздела.


В новую версию принято около 10 тысяч исправлений от более чем 1200 разработчиков, размер патча - 42 Мб (изменения затронули 11086 файлов, добавлено 576 тыс. строк кода, удалено 358 тыс. строк). Около 40% всех представленных в 3.4 изменений связаны с драйверами устройств, примерно 30% изменений имеют отношение к обновлению кода специфичного для аппаратных архитектур, 13% связано с сетевым стеком, 5% - файловыми системами и 6% c внутренними подсистемами ядра.

Наиболее интересные новшества (http://kernelnewbies.org/Linux_3.4) ядра 3.4:


-  
Память и системные сервисы

-  В ядро интегрированы (http://www.opennet.me/opennews/art.shtml?num=33142) наработки проекта X32 (https://sites.google.com/site/x32abi/), в рамках которого разработан гибридный x86_64 ABI с 32-разрядной адресацией памяти. X32 представляет собой прослойку поверх стандартного x86_64 ABI ядра, позволяющую использовать на 64-разрядных системах 32-разрядную модель адресации памяти. ABI X32 позволяет приложениям использовать все преимущества архитектуры x86_64, такие как дополнительные регистры и более быстрые инструкции, PIC ABI. В то же время ABI X32 даёт возможность работать с 32-разрядными указателями памяти, что позволяет экономить память, способствует более эффективному наполнению процессорного кэша и положительно сказывается на общей скорости исполнения кода. При тестировании (http://www.linuxplumbersconf.net/2011/ocw//system/presentati...) в ситуациях, связанных с интенсивной работой с указателями, новый ABI продемонстрировал ускорение исполнения кода вплоть до 30% в сравнении с классическим x86_64 ABI. Ограничением ABI X32 является невозможность адресации из приложения более 4 Гб памяти;

-  Поддержка автоматической проверки необходимости загрузки дополнительных драйверов (autoprobing) для задействования специфичных возможностей x86 CPU. Ранее для загрузки данных драйверов создателям дистрибутивов приходилось придумывать обходные пути, основанные на субъективных методах, которые не всегда работали. Например, часто возникали проблемы с загрузкой модуля CRC, использующего для ускорения работы инструкции SSE 4.2. В результате того, что нужный CRC-модуль не загружался, наблюдалось заметное понижение производительности подсистем, требующих быстрого вычисления контрольных сумм (например, Btrfs). Другой проблемой был выбор корректного для текущего CPU модуля с поддержкой CPUFREQ - дистрибутивы просто пытались последовательно перебрать все доступные модули, пока один из них не заработает. Теперь данные проблемы остались в прошлом и нужные модули могут быть автоматически загружены при помощи стандартные механизмов автозагрузки udev, на основании предоставленных ядром уведомлений (проверка выполняется на основании флагов cpuid по связке вендор/семейство/модель, как и для других драйверов);

-  Расширение возможностей инструментария perf для использования встроенной в ядро отладочной подсистемы Performance Events (http://wiki.opennet.ru/Performance_Events). Представлен GUI-интерфейс на базе библиотеки GTK+ для наглядного анализа отчётов, генерируемых командой 'perf report' (запускается через "perf report --gtk"). Улучшена визуализация при выполнении 'perf annotate'. Добавлена возможность профилирования веток с задействованием аппаратных механизмов CPU. Реализована возможность фильтрации вывода по пользователям  (например, "perf top --uid 1000") и отдельным нитям (например, "perf top -p 21483,21485");

-  
Дисковая подсистема, ввод/вывод и файловые системы

-  Расширение возможностей файловой системы Btrfs:


-  Добавлена новая утилита btrfs-restore (https://btrfs.wiki.kernel.org/index.php/Restore) для выполнения недеструктивного восстановления файлов с повреждённой ФС - утилита не занимается непосредственным восстановлением целостности ФС, а лишь пытается выделить и отдельно сохранить файлы из повреждённой ФС;
-  В утилиту  fsck добавлена начальная поддержка восстановления целостности повреждённой ФС (опция "--repair"). В настоящее время реализована только поддержка восстановления повреждений в дереве распределения экстентов;

-  Возможность работы с блоками метаданных, размер которых превышает 4 Кб (вплоть до 64 Кб). Наиболее хорошие результаты наблюдаются при использовании блоков в 16 или 32 Кб, которые теперь рекомендуется использовать. При использовании блоков в 16 или 32 Кб наблюдается существенное уменьшение размера дерева распределения экстентов и уменьшение фрагментации. Размер блоков может быть задан на этапе создания ФС через утилиту mkfs (например, "mkfs.btrfs -l 32K"). Отмечается, что возможность работы с блоками разного размера была изначально заложена в архитектуру Btrfs, но данная функция  была  отключена из-за неготовности кода (использовались только блоки размером 4 Кб, соответствующие размеру страницы памяти для систем x86);

-  Улучшение производительности Btrfs в нескольких областях. Отмечается изменение метода взаимодействия метаданных со страничным кэшем и увеличение агрессивности отбрасывания страниц для метаданных, ставших ненужными. Проведена работа по снижению нагрузки на CPU в процессе работы. Сокращено число лишних чтений данных в процессе взаимодействия  механизма copy-on-write и Linux VM. К увеличению производительности также приводит использование увеличенного размера блоков метаданных, за счёт снижения накладных расходов на обработку дерева распределения экстентов и общего снижения фрагментации данных.


В итоге, удалось заметно повысить производительности в конфигурациях, связанных с интенсивной работой с метаданными. Например, при выполнении теста по созданию 32 миллионов пустых файлов Btrfs теперь обеспечивает создание 170 тыс. файлов в секунду. Для сравнения, в данном тесте ext4 позволяет создавать 110 тыс. файлов в секунду, а XFS - 115.000 тыс. файлов в секунду;

-  Интеграция подготовленных проектом SUSE патчей (http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6...) с улучшением обработки ошибочных ситуаций. Надлежащая обработка подобных непредвиденных ситуаций ранее не была реализована во многих функциях Btrfs, которые в случае выявления проблем просто останавливали работу системы, переходя в режим "паники". В новой версии ядра проведён аудит обработки ошибок и реализована возможность в случае проблем прервать выполнение ошибочной транзакции и перейти в режим только для чтения, не прерывая функционирования системы.

-  Возможность подключения внешнего хранилища, доступного в режиме только для чтения в качестве основы для создания типовых LVM-разделов. Например, для систем виртуализации можно подготовить базовый образ виртуального окружения, на основе которого сформировать LVM-разделы для клиентов, которые будут использовать неизменные данные из одной эталонной области, т.е. на все такие LVM-разделы будет использована только одна копия изначальных данных. При такой конфигурации все обращения на чтение неизменных данных...

URL: https://lkml.org/lkml/2012/5/20/126
Новость: http://www.opennet.me/opennews/art.shtml?num=33888

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, [email protected] (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру