Нашел очень хороший сайт, посвященный оптимизации linux. Все описано подробно, разложено по темам. Будьте внимательны - многие оптимизации достаточно рискованы. Используйте с умом.
С сайта intel можно качать свежие обновления микрокодов для процессоров intel. Патч по инструкции intel распаковывается в папку /etc/firmware/. В ядре linux также должна быть включена поддержка обновления микрокода процессора.
С сайта intel также можно посмотреть все характеристики любого процессора intel. Желательно смотреть спецификации в pdf файлах об интересующем процессоре - там данные обычно более точные. По крайней мере для процессора atom n270 в нем была правильно указана поддержка ssse3, а не воображаемая ssse4).
Замечательно. Можно подробнее. Какая опция в ядре нужна? И я так понял установка пакета sys-kernel/amd-ucode пропатчит сама ядро, просто нужно пере собрать?
Пробую экспериментировать с параметрами CFLAGS в make.conf
В качестве тестовой программы пересобираю emerge nbench. Затем запускаю nbench и сравниваю.
Выявил на текущий момент, что для процессора atom N270 CFLAGS="-O3 -fomit-frame-pointer -march=native -pipe --param l1-cache-line-size=64 --param l1-cache-size=32 --param l2-cache-size=512 -mmmx -msse -msse2 -msse3 -mssse3" эти установки существенно подняли производительность, относительно обычных параметров CFLAGS="-O2 -march=native -pipe". По непонятным причинам не компилируется с прямым указанием параметра процессора -march=atom. Параметр -fomit-frame-pointer лучше не включать. Не сильно влияет на производительность, но сильно затруднит отладку в будущем.
P.S.
Опции, включаемые gcc для процессора можно посмотреть так:
При установке -march=native без включения других параметров
# gcc -march=native -Q --help=target
Для конкретного процессора без включения других параметров (в примере atom)
Жалко mplayer c -O3 не собирается. Играл с флагами, гонял на app-benchmarks/acovea. Вообщем, -O3 вполне достаточно, остальное множество ключей особого прироста производительности не приносит, а то и вообще замедляет. Пересобрать мир будет затруднительно. Занимался подобными экзекуциями для атома и core2. Главное сильно не увлекаться, толку жертвовать стабильностью ради непонятных попугаев
До этого собирал всю систему на KDE с флагами CFLAGS="-O3 -march=native pipe" собиралась точно. В том числе mplayer. Система включала все последние изменения на то время. Это примерно месяц назад было. Случайно оставил параметр -O3. Собрался весь мир. Ошибок не было.
P.S.
Завел ядро zen-2.6.39.1
Собралось, модули тоже подключились. Попробую покататься на нем)
Prelink завершается аварийно. Буду смягчать параметры)))
На всякий случай, на GCC-4.6.0 не советую переходить, много чего не собирается. Хотя и пере собрал почти всю system и world.А вот -O3 думаю вполне работоспособен, на второй машине GCC-4.5.2 с -O3. Все собирается все работает.
Нашел предположительно виновника, из-за которого ядро zen нестабильно работало.
Пункт Automatically use SCHED_ISO policy for X (NEW). Возможно он приводит к зависаниям в zen kernel.
Ядро собралось и пока нормально работает без этого включенного пункта.
У меня издавна не заладилось с ядром zen.
И странности есть… Не подхватились модули из /etc/conf.d/modules, не монтируются автоматом внешние диски и флешки. В ядре обнаружил отключенными с какого-то перепугу и NTFS и CD-шные файловые системы, хотя на hdd ntfs-шный раздел открывает. В общем что-то неладно в королевстве, видимо проспал или нововведения какие или сам где-то напортачил. Самое интересное, что в ядре, новой, мною собранной Кальки та же ситуация, но все монтируется и работает… Чудеса. Буду разбираться в общем почему не схватывается мой конфигурационный файл. Скажу одно Калька спокойно работала с параметрами -O3 -march=native -pipe без малейших намеков на ошибки. Думаю пересоберу ее с этими параметрами и сопоставлю.
Да и еще попробовал связку bfs+bfq в ядре zen. Впечатление не ахти. Для сравнения эмулировал нагрузку на систему запускал три окна glxgears на одном рабочем столе, чтобы гарантированно получить нагруженную систему. И на другом открывал три окна с одним и тем же фильмом. Так вот - не может система нормально проигрывать три этих окна с видео. Да они окликаются на предоставление им ресурсов процессора планировщиком, но как то по чУдному это делают. Это как быстрая перемотрка - назад-вперед. Во всех трех окнах - просмотр нереален, хотя местами сюжеты наверно выглядели бы нереально смешно)))). Включил cfq - при той же симуляции нагрузки видео крутит сносно во всех трех окнах. То же на ядре Кальке работало вовсе уж без запинки. Не знаю что там ребята патчат или нет, но по мне оно лучше сработано.
Да ты за тестами не постоишь. +1 На счет Zen использую давно с одним и тем конфигом, всегда bfq compacash
. Проблем с ядром не возникало ни когда, виснет скорее всего или видео дрова или xorg, а может и то и другое.
На жестокое тестирование все одно времени нет, приходится изголяться, чтобы сравнить настройки и понять надо оно мне или нет по возможности за короткое время)). Юра какие основные настройки по zen используете (из специфичных для него)?
P.S.
Сорри, уже увидел. Просмотрел видимо.
Хм… Нашел странную для меня вещь в наших конфигах…, а именно:
так строчка называется у тебя # CONFIG_GENERIC_CPU is not set, а у меня ей соответствует # CONFIG_X86_GENERIC is not set. Может патчи разные?
У меня обычно CONFIG_HZ=1000. У тебя 1500. Исходя из каких побуждений так решил? В принципе, наверно, надо было спросить на каком звере работаешь)))
(Я б 100 оставил у себя, но есть некоторый дискомфорт, если кино смотреть и в фоне что-нибудь крутится)
P.S.
эти два параметра наверно отличаются у нас потому, что у тебя 64-битная архитектура, а у меня 32-битная.