Простое ядро под процессор

Проблемы установки, настройки и работы Правильной Операционной Системы

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Простое ядро под процессор

Непрочитанное сообщение Dmitriy_K » 2009-08-19 21:13:23

Подскажите, пожалуйста, надеюсь несложный вопросик.
Хочется сделать простой файлик сборки нового ядра с PAE и оптимизацией под I686_CPU.
Произойдёт ли оптимизация, если указать так:

Код: Выделить всё

cpu		I686_CPU
include 		PAE
ident		new_core
Или указывать свой проц бесполезно? Из-за того, что есть своё перечисление процессоров в GENERIC или в принципе?

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35315
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Простое ядро под процессор

Непрочитанное сообщение Alex Keda » 2009-08-19 21:27:36

оставьте GENERIC и не парьтесь.
Убей их всех! Бог потом рассортирует...

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Простое ядро под процессор

Непрочитанное сообщение Dmitriy_K » 2009-08-19 21:35:56

То-есть, никакой потери производительности для Xeon не будет, если оставить весь список серии i386?

Аватара пользователя
Fioktist
мл. сержант
Сообщения: 84
Зарегистрирован: 2007-04-06 4:06:28
Откуда: Россия

Re: Простое ядро под процессор

Непрочитанное сообщение Fioktist » 2009-08-19 21:49:37

а /etc/make.conf есть еще
man make.conf

CPUTYPE=i686

из под урла на 249 странице прочитай два абзаца внизу

у меня книга этого автора, второе издание 2009г, куда приятней с бумаги читать...
Самое возмутительное в аргументах оппонента - это изобилие правды.

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Простое ядро под процессор

Непрочитанное сообщение Dmitriy_K » 2009-08-19 22:08:11

Fioktist писал(а):а /etc/make.conf есть еще
man make.conf
CPUTYPE=i686
Спасибо! Это реально стандартное решение для ядра, или интуитивное?
Насчёт полезности для компилляции софта не спорю, хотя там, вроде, есть и автоматическая оптимизация. (Или я не прав?)

Аватара пользователя
Fioktist
мл. сержант
Сообщения: 84
Зарегистрирован: 2007-04-06 4:06:28
Откуда: Россия

Re: Простое ядро под процессор

Непрочитанное сообщение Fioktist » 2009-08-19 22:20:59

Michael Lucas, Absolute FreeBSD 2009 писал(а):Если указать тип CPU в файле /etc/make.conf, компилятор попытается оптимизировать програмное обеспечение под указанный микропроцессор.
Это может положительно сказаться на производительности в случае обновления операционной системы из исходных кодов. FreeBSD оптимизирует под конкректный процессор не только саму операционную систему, но и любое програмное обеспечение сторонних производителей, которое будет устанавливаться в последствии.

На отдельной машине всегда устанавливайте значение параметра CPUTYPE в соответствии с фактическим типом микропроцессора. если сборка производится на одной машине, а затем через NFS экспортируются каталоги /usr/obj и /usr/src для других машин, то чтобы выполнять на них обновление, минуя этап компиляции, устанавливайте значение CPUTYPE равным самому слабому CPU всех систем
и тд... многабукв... неасилить всю книжку :smile:

от себя могу добавить при использовании данной опции ВСЕ работает субъективно - заметно быстрее.
На сайте у lissayra.su есть статья с /etc/make.conf где я первый раз небездумно попробывал
стянуть некоторые опции для своего make.conf и ощутил прирост производительности при компилинге...
Изящно настроенный make.conf увеличение производительности на ...цать процентов.
Самое возмутительное в аргументах оппонента - это изобилие правды.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35315
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Простое ядро под процессор

Непрочитанное сообщение Alex Keda » 2009-08-19 23:44:29

а я завязал с этим...
на последнем из серверов, где я такое делал, в make.conf пару лет назад закомментил эту опцию:

Код: Выделить всё

p3-800# head -7 /etc/make.conf
#
NO_INET6="YES"

# commented by lissyara 2007-09-03 in 3:45 MSK
# [классический секс]. третья смена железа на машине за две недели
#CPUTYPE=i686

p3-800#    
был AMD - оптимизация под него, до него был второй пень, до него первый, после AMD снова интель - но уже третий...
а скомпиленное с оптимизацией жёсткой под одно - иногда очень старнно ведёт себя на другом процессоре.
вплоть до полной неработоспособности
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Fioktist
мл. сержант
Сообщения: 84
Зарегистрирован: 2007-04-06 4:06:28
Откуда: Россия

Re: Простое ядро под процессор

Непрочитанное сообщение Fioktist » 2009-08-20 0:16:35

но там есть более узкое определение для каждого камня, я делал для проца от AMD (athlon-xp 2000),
так там в /etc/make.conf и вписывал строку CPUTYPE?=athlon-xp
www.lissyara.su писал(а): http://www.lissyara.su/?id=1326
# Тип проца у меня p3 (ниже у меня он также фигурирует как pentium3)
# Intel x86 architecture:
# (AMD CPUs) opteron athlon64 athlon-mp athlon-xp athlon-4
# athlon-tbird athlon k8 k6-3 k6-2 k6 k5
# (Intel CPUs) nocona pentium4[m] prescott pentium3[m] pentium-m
# pentium2 pentiumpro pentium-mmx pentium i486 i386
# (Via CPUs) c3 c3-2
# Alpha/AXP architecture: ev67 ev6 pca56 ev56 ev5 ev45 ev4
# AMD64 architecture: opteron, athlon64, nocona
# Intel ia64 architecture: itanium2, itanium
Самое возмутительное в аргументах оппонента - это изобилие правды.

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Простое ядро под процессор

Непрочитанное сообщение Dmitriy_K » 2009-08-20 10:12:34

Ещё раз большое спасибо!
Всё прочитал. В том числе: /usr/share/examples/etc/make.conf
Насчёт оптимизации под процессор окружения ядра и программ вопров нет.
Но, как я понял, эта установка не относится собственно к сборке ядра. Ведь не зря же, например, в GENERIC прописаны свои собственные установки.
Или всё-таки опции make.conf их перебивают?
Мне интересно, имеют ли установки, прописанные в своём файле сборки, приоритет над указанными в GENERIC, если указывать:

Код: Выделить всё

include GENERIC
Например, в файле сборки PAE есть такой приоритет опций. Только там не упоминается процессор.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35315
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Простое ядро под процессор

Непрочитанное сообщение Alex Keda » 2009-08-20 10:59:40

к поддерживаемым в процессоре ядрам - не имеет.
вот тока у меня в каокй-то моммент компилятор перестал работатьь =)
грустно было.
ставил gcc из портов, облепливал симлинками вообще всё чтобы хоть как-то сорать новый мир и ядро =)
аккуратней с экспериментами =)
Убей их всех! Бог потом рассортирует...

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Простое ядро под процессор

Непрочитанное сообщение Dmitriy_K » 2009-08-26 17:28:11

Экспериментально наткнулся на неточность документации по make.conf для 64-битной версии FreeBSD (AMD64). Там полностью повторён /usr/share/examples/etc/make.conf 32-битной версии. Но попытка сборки портов при выставленной оптимизации для Xeon 5160

Код: Выделить всё

CPUTYPE?=core
не проходит, пришлось убрать. Не знаю, можно ли там получить пользу от установки CPUTYPE?=core2, не стал экспериментировать.
Может, кому пригодится.

Гость
проходил мимо

Re: Простое ядро под процессор

Непрочитанное сообщение Гость » 2009-08-26 18:36:08

gcc42 не поддерживает -march=core2, кою поддерживает gcc43 и выше. Если нужна оптимизация под конкретный тип процессора, то лучше использовать -march=native, бо на Core2 кроме GCC включает еще несколько опций. Вот, например, как себя ведет gcc45

Код: Выделить всё

$ gcc45 -E -v -march=core2 - </dev/null |& fgrep cc1
 /usr/local/libexec/gcc45/gcc/x86_64-portbld-freebsd8.0/4.5.0/cc1 -E -quiet -v - -march=core2

$ gcc45 -E -v -march=native - </dev/null |& fgrep cc1
 /usr/local/libexec/gcc45/gcc/x86_64-portbld-freebsd8.0/4.5.0/cc1 -E -quiet -v - -march=core2 -mcx16 -msahf -msse4.1 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=core2
а CPUTYPE=core2 на самом деле

Код: Выделить всё

. if ${MACHINE_ARCH} == "i386"

.  if ${CPUTYPE} == "core" || ${CPUTYPE} == "core2"
CPUTYPE = prescott
.  endif

. elif ${MACHINE_ARCH} == "amd64"

.  if ${CPUTYPE} == "prescott" || ${CPUTYPE} == "core2"
CPUTYPE = nocona
.  endif

. endif
коя выглядит как жалкая попытка эмуляции поведения CPUTYPE=native.

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Простое ядро под процессор

Непрочитанное сообщение Dmitriy_K » 2009-08-26 22:23:02

Знание - ужасающая сила! ;-)
Временами страшновато пользоваться.
Пока не понял можно ли вставить в make.conf "-march=native", но иногда можно, конечно, использовать вручную.

Гость
проходил мимо

Re: Простое ядро под процессор

Непрочитанное сообщение Гость » 2009-08-26 23:10:40

не,

CPUTYPE?=native вставляет в CFLAGS -march=native
точно также
CPUTYPE?=pentium4 вставляет в CFLAGS -march=pentium4

руками CFLAGS лучше не трогать, если не уверен. CPUTYPE больше нигде и не используется кроме как для -march= (в /usr/share/mk/bsd.cpu.mk). Судя по невнятному (ни номера PR, ни объяснения причины сей подход лучше native) комитту r166069 des@'а, этот core2 можно игнорировать.[1]

[1] даже хуже. clang/llvm не умеет определять тип процессора по -march=native, так что приходится использовать хак против хака в виде

Код: Выделить всё

.if ${CC:Mclang} || ${CXX:Mclang}
 CPUTYPE?="core2"
.else
CPUTYPE?=native
.endif
где "core2" специально стоит в кавычках, чтобы "автоопределение" в bsd.cpu.mk не работало.

Dmitriy_K
сержант
Сообщения: 200
Зарегистрирован: 2009-04-07 6:22:33
Откуда: г.Королёв

Re: Простое ядро под процессор

Непрочитанное сообщение Dmitriy_K » 2009-08-26 23:16:01

Оффигеть! :smile:
Спасибо огромное!