Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Компиляция ядра FreeBSD

Модерирует : KLASS, IFkO

articlebot (10-10-2005 03:45): Перемещено в форум "UNIX"  Версия для печати • ПодписатьсяДобавить в закладки

   

Demetrio

uid=0
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Собираюсь перекомпилировать ядро, и хотелось бы получить максимальную оптимизацию кода под процессор Pentium 4.
Подскажите, пожалуйста, какие флаги оптимизации лучше всего использовать для этой цели?
(я в этом совсем не разбираюсь , а вариантов немало -  
http://home.comcast.net/~jcunningham63/linux/Optimization_Flags.html )
По умолчанию там -O -pipe
 
FreeBSD 4.9 RELEASE

Всего записей: 9967 | Зарегистр. 29-05-2002 | Отправлено: 22:36 08-12-2003
f_serg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Demetrio
Максимальную оптимизацию на вычислениях дает -O3 -fomit-frame-pointer. Но так как ты собираешь ядро, IMHO, -O2 будет достаточно. Я для себя собирал с опциями

Код:
-O2 -march=pentiumpro -mcpu=pentiumpro

 
Все работает достаточно шустро.
gcc в 4.8 еще версии 2.95.4, в 4.9, как я понимаю, тоже не 3.x, поэтому оптимизацию именно под 4-й пень ты не получишь.

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 07:47 09-12-2003
Demetrio

uid=0
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f_serg
Спасибо, это я так понимаю лучше поправить Makefile в /usr/src/sys/compile/$new_kernel (конкретно для сборки этого ядра)
А что можно изменить в make.conf для общесистемных изменений?
 
Добавлено

Цитата:
gcc в 4.8 еще версии 2.95.4, в 4.9, как я понимаю, тоже не 3.x, поэтому оптимизацию именно под 4-й пень ты не получишь.  

Возможно, есть смысл обновить до последней версии, скажем gcc-3.3.3_20031103 (из портов)?

Всего записей: 9967 | Зарегистр. 29-05-2002 | Отправлено: 16:33 09-12-2003
Zmey



Strangled by Lynx
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
На днях вышла статья по поводу оптимизации FreeBSD там рекомендуют делать вот так:
 
/etc/make.conf
Указать CPUTYPE= примеры смотреть в /etc/defaults/make.conf
 
добавить строки
 
CFLAGS= -O3 -pipe -funroll-loops -ffast-math
COPTFLAGS= -O2 -pipe -funroll-loops -ffast-math
 
В конфиге ядра добавить сразу же после строки
machine
строчку
makeoptions    COPTFLAGS="-O2 -pipe -funroll-loops -ffast-math"
Если на 100% уверены что система не будет работать как NFS сервер добавить строку
options        NFS_NOSERVER
Если стоит процессор от АМД имеет смысл добавить строчку
options         CPU_WT_ALLOC
 
   После пересборки системы и ядра, все вроде бы как работает нормально... время покажет. Если будут какие-то глюки имеет смысл заменить CFLAGS= -O3 на CFLAGS= -O2
 
   Оригиналы статей на английском языке:
   http://silverwraith.com/papers/freebsd-tuning.php
   http://silverwraith.com/papers/freebsd-kernel.php
 

Всего записей: 303 | Зарегистр. 07-12-2001 | Отправлено: 18:20 09-12-2003
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Zmey

Цитата:
-funroll-loops

Крайне не рекомендуется делать этого при компиляции ядра. Да и эффективность этого типа оптимизации на P4 весьма сомнительна, а вот размер кода она увеличивает со 100% гарантией.
 
f_serg

Цитата:
-O2 -march=pentiumpro -mcpu=pentiumpro

Установка march подразумевает установку соответствующего mcpu, так что вручную его указывать нет никакой необходимости. Это весьма распространенная ошибка, кочующая уже фиг знает сколько из одного howto в другой и скрупулезно реплицируемая пользователями.
 
Demetrio
Ничего ты этой оптимизацией не добешься. Ну, пару-тройку процентов прироста производительности. Поставь "cpu I686_CPU", "options CPU_ENABLE_SSE", убери "MATH_EMULATE" и оставь COPTFLAGS, как установлено по-умолчанию. Ну, в крайнем случае "-O2 -pipe". Все равно компилятор 2.95.4 -- многого от него по части оптимизации именно под твой камень не добиться.

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 21:00 09-12-2003
Demetrio

uid=0
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ooptimum
Ну а если поставить GCC серии 3.x, что-то ощутимое в плане оптимизации это даст, или оно действительно того не стоит?

Всего записей: 9967 | Зарегистр. 29-05-2002 | Отправлено: 21:17 09-12-2003
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Demetrio
Это даст возможность оптимизировать код именно под P4. Но на фре я не пробовал заменять компилятор по-умолчанию, так что не знаю, что из этой затеи может получиться. Кстати, зачем тебе вообще это далось -- оптимизировать ядро компилятором на P4? Камушек же сам по себе не слабый. Если просто ради того, "шоб було", то не стоит, IMO. Больше головной боли нажить можно, нежели прироста производительности. А если для чего-то специфического, то может другие пути найти можно?

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 21:53 09-12-2003
Zmey



Strangled by Lynx
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ooptimum
 
    Вот этого я и боялся больше всего... меня просто поражают how-to-сы в которых написано что нужно сделать и нет никаких рекомендаций типа твоих, где и в каких условиях стоит так делать а где нет
    В принципе ответом на этот топик могла быть умная фраза которую я где-то вычитал: "FreeBSD не нужно оптимизировать, потому что она уже оптимизирована." Оптимизация такого плана, я думаю необходима только в случаях когда проводят "громкие" тесты или сравнения с другими ОСами.

Всего записей: 303 | Зарегистр. 07-12-2001 | Отправлено: 11:32 10-12-2003
   

Компьютерный форум Ru.Board » Операционные системы » Microsoft Windows » Компиляция ядра FreeBSD
articlebot (10-10-2005 03:45): Перемещено в форум "UNIX"


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

LiteCoin: LgY72v35StJhV2xbt8CpxbQ9gFY6jwZ67r

Рейтинг.ru