Указание ЦП для сборки Ядра

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
korino
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-08-02 23:21:47

Указание ЦП для сборки Ядра

Непрочитанное сообщение korino » 2014-08-02 23:24:23

Здравствуйте. Делаю пересборку ядра. И вот в графе ЦП стоит у меня почему-то HAMMER, что есть архитектура К8. Но у меня стоит Phenom II, - архитектура К10. Где исходя из make.conf значение должно быть как amdfam10. Установка amdfam10 в конфиге ядра выдаёт ошибку. Где ругается именно на неизвестный параметр.
Т.е. Ошибка номер такой-то Неизвестный параметр amdfam10. При попытке сборки ядра.
В итоге вот и не знаю, какой правильный параметр ЦП установить. Затачивать ядро под старую архитектуру как-то глупо, когда есть более новая по сравнению с К8.
Кто знает, подскажите пожалуйста

П.С. На всякий случай добавлю. ЧТо dmseg определяет правильно. При указании в make.conf amdfam10, компилирует порты тоже правильно. ВОпрос состоит именно в избежании заточки ядра под ненужный К8,когда используется К10!
Последний раз редактировалось f_andrey 2014-08-03 2:14:03, всего редактировалось 1 раз.
Причина: Автору. пожалуйста, выбирайте соответствующий раздел форума.

Хостинговая компания 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/

PYO
сержант
Сообщения: 185
Зарегистрирован: 2011-08-18 12:46:45

Re: Указание ЦП для сборки Ядра

Непрочитанное сообщение PYO » 2014-08-03 3:06:28

а ман покурить?

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

     cpu cputype
	     Specify the CPU this kernel will run on.  There can be more than
	     one cpu directive in a configuration file.	 The allowed list of
	     CPU names is architecture specific	and is defined in the file
	     sys/conf/options.<arch>.

snorlov
подполковник
Сообщения: 3844
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Указание ЦП для сборки Ядра

Непрочитанное сообщение snorlov » 2014-08-03 10:53:13

Попробуйте такой тип проца как native, т.е. дайте компилятору самому определить какой проц он юзает.
Я считаю, что пересобирать систему под конкретный проц надо только, когда у вас сильно нагруженный приложением сервер, например используется java, в обычных реалиях разница в тестах 1-2 процента

korino
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-08-02 23:21:47

Re: Указание ЦП для сборки Ядра

Непрочитанное сообщение korino » 2014-08-03 15:03:42

snorlov, спасибо за попытку. Но native вы путаете с конфигурацией в make.conf Я же ищу для указания в ЯДРЕ. Прошу читать более внимательно!

korino
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-08-02 23:21:47

Re: Указание ЦП для сборки Ядра

Непрочитанное сообщение korino » 2014-08-03 15:15:52

PYO, спасибо за наводку. Только ничего там в отношении цп не вижу. Исходя из вопроса ведь не мудрено понять, что я новенький в ОС. Давайте без снобизма. Есть вопрос, если хотите помочь и знаете ответ. Дайте.

guest
проходил мимо

Re: Указание ЦП для сборки Ядра

Непрочитанное сообщение guest » 2014-08-03 15:45:28

korino писал(а):Здравствуйте. Делаю пересборку ядра. И вот в графе ЦП стоит у меня почему-то HAMMER, что есть архитектура К8. Но у меня стоит Phenom II, - архитектура К10. Где исходя из make.conf значение должно быть как amdfam10. Установка amdfam10 в конфиге ядра выдаёт ошибку. Где ругается именно на неизвестный параметр.
Т.е. Ошибка номер такой-то Неизвестный параметр amdfam10. При попытке сборки ядра.
В итоге вот и не знаю, какой правильный параметр ЦП установить. Затачивать ядро под старую архитектуру как-то глупо, когда есть более новая по сравнению с К8.
Кто знает, подскажите пожалуйста

П.С. На всякий случай добавлю. ЧТо dmseg определяет правильно. При указании в make.conf amdfam10, компилирует порты тоже правильно. ВОпрос состоит именно в избежании заточки ядра под ненужный К8,когда используется К10!
Вы, простите, чего добиваетесь? или хотите добиться?
архитектура К8
архитектура К10
заточки ядра под ненужный К8
...
amdfam10
У Вас, еще раз простите, какая-то каша из отрывочных знаний или представлений.
Вы чего в итоге хотите добиться:
- оптимальной сборки ядра или получить нестабильное и падающее ядро от непонимания разницы
между:
- архитектура;
- модель cpu;
- флаги оптимизации;
- опции компилятора влияющие на упаковку, выравнивание структур, проверку разнообразных warnings & errors
?

арихитектура:
- x86 (подразделяется на несколько видов "микроархитектур" 386, 486, 586, 686)
- x86_64 или amd64 ( кодовое название hammer - база k8, далее k10, core ...)
Обычно флаг -march

cpu:
- процессоры соответствующей архитектуры, в рамках компиляторов имеют некое обобщение и
собственное именование, связанное с поддержкой инструкций и технологий.
Обычно это флаг -mcpu

make.conf:

- CFLAGS - флаги компиляции "C"
- CXXFLAGS - аналогично для крестов
- COPTFLAGS - флаги компиляции ядра, ну ОЧЕНЬ не рекомендуется использовать разработчиками

прим: В связи с переходом на CLANG/LLVM, указанные флаги и использование cputype очень не рекомендуется,
они отличаются от ранее используемых в gcc и разнообразных описаний в примерах и документации FreeBSD.

прим: В отличие от GCC, коммерческие компиляторы и новые проекты, отличаются большей строгостью проверки
кода и станлартов, и могут вылетать на warnings и errors, которые с легкостью пропускает gcc, выдавая криво, но
работающий код.

Возвращаемся к файлу конфигурации ядра: man 5 config

cpu в ядре, означает архитектуру и имеет заведомо и строго определенные значения:

cpu HAMMER (для всей x64 архитектуры, будь то k8, k10, core)

все - иных значений cpu для amd64 нет и фиолетово какая там модель cpu с поддержкой 64bit

для i386:

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

cpu             I486_CPU
cpu             I586_CPU
cpu             I686_CPU
поддержка "микроархитектуры" I386_CPU - выброшена из ядра в 2004 и осталась в 4.xx FreeBSD, начиная с 6.x только
вредна архитектурно, почему и выброшена из современной SMP архитектуры OS FreeBSD.
Маленький пример, соберете систему только с "cpu I586_CPU" на-а-а, наверное Pentium II, потом переставите
диск на машину с Pentium 4 и получите облом.

С ЯДРОМ - все.

Сборка системы и портов - флаги CFLAGS и CXXFLAGS, см выше, можно использовать оптимизацию, но архиважного
значения не имеют, а вот испортить жизнь - могут, без знаний и понимания.

Важное:
- для сборки системы лучше использовать /etc/src.conf
- для всего остального /etc/make.conf

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

CPUTYPE - можно использовать для сборки портов, но как уже было сказано, необходимо понимать
как и для чего и в каком виде, эту опцию использует компилятор:

# less /usr/share/mk/bsd.cpu.mk

так что самое рекомендуемое значение native или вовсе не использовать.

прим: чтобы лучше представлять использование компилятором CPUTYPE (это НЕ ОДНО И ТО ЖЕ что "cpu в ядре"),
следует почитать документацияю gcc и clang/llvm. Хоть от gcc и ушли, но документация там в этом плане
более прозрачна чем в clang/llvm.
Смотрите crosscompiling (кросскомпиляцию) для изучения -march -mcpu.

korino
проходил мимо
Сообщения: 4
Зарегистрирован: 2014-08-02 23:21:47

Re: Указание ЦП для сборки Ядра

Непрочитанное сообщение korino » 2014-08-03 22:58:30

Вообще-то каша получилась у вас. Если не можете понять что вопрос был про указание ЦП под К10. Удивляет ваше утверждение, что нужно вписыать архтектуру,... Ёпт, взгляните на вопрос, я именно архитектуру и хотел. ПО всем правилам там должен был бы быть Dragon. К сожалению, как сегодня выяснилось на freebsd.org форуме. ТАм только Hammer жуткая вещь... столько лет прошло, а архитектуру Dragon не видит..
И к чему вы приплели флаги оптимизации никоим образом не влияющие на Ядро. Тут уж смотрите на Название темы. Ядро как бы, а не make.conf
Что-то вы изрядно переиграли в "умника"
ПОвторю специально для вас. Всё что нужно по make.conf я прекрасно знаю. И незачем тут устраивать столь жутчайший офтопик. Покажите в теме. Где я просил хоть что-то подобное?!?!? Смотришь в книгу, видишь -фигу...

Вы видимо это писали в какой-то мере для себя. Ибо смысл написанного применительно к данной теме -ноль. Повторю в который раз. Я даже не просил описание по настройка в make.conf ТАк что читайте хоть прежде чем отвечать....

Аватара пользователя
Neus
капитан
Сообщения: 1814
Зарегистрирован: 2008-09-08 21:59:56

Re: Указание ЦП для сборки Ядра

Непрочитанное сообщение Neus » 2014-08-03 23:30:13

Еще один заточник ядра
Надо им было эту опцию в конфиге обозвать как amd64 или x86_64

snorlov
подполковник
Сообщения: 3844
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: Указание ЦП для сборки Ядра

Непрочитанное сообщение snorlov » 2014-08-04 9:08:13

korino писал(а):.
И к чему вы приплели флаги оптимизации никоим образом не влияющие на Ядро. Тут уж смотрите на Название темы. Ядро как бы, а не make.conf
Я правильно понимаю, что вы считаете, что компилятор должен выбирать оптимизацию исходя из опций ядра...

guest
проходил мимо

Re: Указание ЦП для сборки Ядра

Непрочитанное сообщение guest » 2014-08-04 10:19:00

korino писал(а):Вообще-то каша получилась у вас. Если не можете понять что вопрос был про указание ЦП под К10. Удивляет ваше утверждение, что нужно вписыать архтектуру,... Ёпт, взгляните на вопрос, я именно архитектуру и хотел. ПО всем правилам там должен был бы быть Dragon. К сожалению, как сегодня выяснилось на freebsd.org форуме. ТАм только Hammer жуткая вещь... столько лет прошло, а архитектуру Dragon не видит..
И к чему вы приплели флаги оптимизации никоим образом не влияющие на Ядро. Тут уж смотрите на Название темы. Ядро как бы, а не make.conf
Что-то вы изрядно переиграли в "умника"
ПОвторю специально для вас. Всё что нужно по make.conf я прекрасно знаю. И незачем тут устраивать столь жутчайший офтопик. Покажите в теме. Где я просил хоть что-то подобное?!?!? Смотришь в книгу, видишь -фигу...

Вы видимо это писали в какой-то мере для себя. Ибо смысл написанного применительно к данной теме -ноль. Повторю в который раз. Я даже не просил описание по настройка в make.conf ТАк что читайте хоть прежде чем отвечать....
Вы, либо обижены, либо непроходимо ...

Еще раз для ...

Есть две архитектуры:
- x86
- x86_64 или amd64
в них укладывается как hardware представление, так и софтверное и плодить отдельные сущности из
названий, будь то k10 или core или какое другое, будет лишь идиот.

OS FreeBSD поддерживает платформы:
- x86 - i386
- x86_64 - amd64

В конфигурации ядра используются директивы "cpu", какие значения могут быть для какой архитектуры, Вам уже
отписали.
Вписывается не архитектура, а значения "cpu" для заданной архитектуры, какие они - отписано.
Флаги компилятора приведены для тупых, чтобы была понятна разница между сборкой ядра и остального ПО.

ps. Вы это, попросите чтобы Вам объяснили смысл анекдота про "на заборе написано", смысл "cpu HAMMER"
по гамбургскому счету, точно такой же.