LINUX.ORG.RU

«Linux kernel in a nutshell» или коротко о ядре Линукс.


0

0

Greg Kroah-Hartman выпустил книгу "Linux kernel in a nutshell", в которой он описывает процесс конфигурации, сборки и установки ядра Линукс. Книга описывает большинство опций конфигурации ядра (изначально планировалось описать их все, но тогда размер книги превысил бы 1000 страниц), автор особенно гордится главой, описывающей процесс выбора опций ядра для нетипичной конфигурации аппаратного обеспечения.

Данная книга полезна всем, кто любит компилировать ядро под собственные нужды с поддержкой только собственного оборудования.

Книга доступна как в печатном виде, так и в форматах pdf и DocBook. Впервые в истории так же доступна полная история написания книги в репозитории git (http://www.kernel.org/git/?p=linux/ke...).

Купить на Amazon.com: http://www.amazon.com/Linux-Kernel-Nu...

>>> Подробности

★★

Проверено: Shaman007 ()

Ответ на: комментарий от yozhhh

> Может, намеренно не сделал, не знаю. Я вот сейчас попробовал "time (make bzImage&&make modules)" на Athlon64-X2-3800+, ядро 2.6.18.6, и получил real=6m59s. Так что почему бы и нет. Ядро конфигурировал именно под эту машину, ничего лишнего.

Ну, а "time (make -j2 bzImage&&make -j2 modules)", понятное дело, выдало 3m31s. Тут, на самом деле, ещё винт старый и очень тормозной, аж 2000 года. А то бы и ещё быстрее было, наверно.

yozhhh ★★★
()
Ответ на: комментарий от R00T

>Кажется, чуть выше я писал, что не "полпроцента", а 30-50 процентов.

Но только вскользь упомянули о том, что это после перекомпиляции userspace, наверное еще и -fomit-frame-pointer использовали.

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

>R00T # (*) (10.01.2007 16:29:38)

rtc ★★
() автор топика

Название звучит интригующе, скачаю-ка, посмотрю на досуге, может чего интересного найду.. ;-)

MiracleMan ★★★★★
()
Ответ на: комментарий от anonymous

>> которым лень научиться ядро собирать?

> А зачем это делать?

Если ты и так хорошо себя чувствуешь - то, очевидно, незачем. Это свободная ось, тут никто не может никого к чему-то принуждать :)

yozhhh ★★★
()
Ответ на: комментарий от no-dashi

> И при покупке очередной железки пересобирать ядро? Нафиг-нафиг. Однажды у меня за три дня в компе перебывали три сетевые - на чипах Intel, 3COM и VIA. А не заколебался бы я ядро компилить каждый раз?

Видимо, нет - карточки менять на заколебался ведь?

sv75 ★★★★★
()
Ответ на: комментарий от R00T

>Можно как угодно, хоть -j1000. Главное, чтобы виртуальной памяти хватило.

"Виртуальной"? Это той, которой на x86 целых 4Gb? А на x86_64 практически неограничено? Вы бы хотя бы подумали и/или попытались запустить компиляцию ядра на x86_64 (с практически неограниченной "виртуальной" памятью) с -j1000.

>R00T # (*) (10.01.2007 17:05:19)

rtc ★★
() автор топика
Ответ на: комментарий от totem

>А мне кажется, если человек не понимает, зачем компилить ядро, то ему и не надо.

А если человек думает что понимает?

anonymous
()
Ответ на: комментарий от anonymous

> А если человек думает что понимает?

Тогда ему, наверно, имеет смысл на опыте проверить, даёт это что-нибудь или нет. Ты ведь, наверно, тоже думаешь, что умный, да?

anonymous
()
Ответ на: комментарий от yozhhh

> Если ты и так хорошо себя чувствуешь - то, очевидно, незачем. Это

> свободная ось, тут никто не может никого к чему-то принуждать :)

Мой вопрос остался без ответа. Зачем пересобирать ядро вендора?

anonymous
()
Ответ на: комментарий от rtc

> А так же тот факт, что отладка с этим флагом на подавляющем большинстве платформ очень затруднительна, вы не знали? По этому его и не включают.

Конечно знаю. Не люблю отладки. Мы про оптимизации говорим или где? Я надеялся, что любому ежу понятно, что отладку надо отключать.

> И про то, что ядро с -fomit-frame-pointer можно собрать только в случае включения специальной опции, вы тоже забыли написать.

Мдя? Этого недостаточно "Enabled at levels -O, -O2, -O3, -Os."???
Практически любой софт идет по дефолту с "-O2" или с "-Os", редко в каких случаях даже "-O" используется. Другое дело, что умные разработчики любят делать "-O2 -g".

r00t@root:~$ cat /usr/src/soft/kernel/linux-2.6.18/Makefile | grep 'O2'
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
HOSTCXXFLAGS = -O2
CFLAGS += -O2
r00t@root:~$ cat /usr/src/soft/kernel/linux-2.6.18/Makefile | grep 'Os'
CFLAGS += -Os

> и дает те самые 30%

Мда? А у меня 30-50% по отношению к бинарникам MySQL, которые в дефолте с -O3 собираются.

r00t@root:~/mysql-4.1.21$ cat ./configure | grep "O3"
MAX_C_OPTIMIZE="-O3"
MAX_CXX_OPTIMIZE="-O3"

R00T
()
Ответ на: комментарий от anonymous

> Мой вопрос остался без ответа. Зачем пересобирать ядро вендора?

Это вопрос в пространство или какому-то конкретному лицу, обвиняемому в пересборке ядра вендора? Если в пространство - то встречный вопрос: ты таки правда рассчитываешь на ответ? Если не в пространство, то: когда будем учиться грамотно формулировать вопросы?

anonymous
()
Ответ на: комментарий от rtc

>запустить компиляцию ядра на x86_64 (с практически неограниченной "виртуальной" памятью) с -j1000.

с 1000 легко даже на x86 ;) Ну будет LA 200 ну и шут с ним.

Для типичных современных машин хардлимит примерно на порядок больше

sS ★★★★★
()
Ответ на: комментарий от anonymous

Вопрос в пространство. Какие преследуются цели, когда кто-то пересобирает ядро после таких вендоров как RedHat, SUSE, Debian, Ubuntu? Если вы думаете, что ваше ядро после пересборки работает лучше, какого хрена вы ещё не работаете в RedHat, SUSE, Debian, Ubuntu?

anonymous
()
Ответ на: комментарий от sysenter

Не дай Боже, скатимся ещё к обсуждению дистров...

>более того такой процесс АВТОМАТИЗИРУЕТСЯ, а значит МАСШТАБИРУЕТСЯ на произвольное число машин, а это экономия времени на обслуживании и соот-но денег.

Оч интересно, как это можно применить к моему личному компьютеру :D У вас дома всё также рационализировано, автоматизировано, сертифицировано и значёк вендора внушает уверенность в завтрашнем дне? Тогда вам не понять, зачем и для кого пишутся подобные книги.

frame ★★★
()
Ответ на: комментарий от anonymous

> Вопрос в пространство. Какие преследуются цели, когда кто-то пересобирает ядро после таких вендоров как RedHat, SUSE, Debian, Ubuntu? Если вы думаете, что ваше ядро после пересборки работает лучше, какого хрена вы ещё не работаете в RedHat, SUSE, Debian, Ubuntu?

Покажи мне конфиг вендорского ядра и я попробую предположить.

anonymous
()
Ответ на: комментарий от anonymous

>Если вы думаете, что ваше ядро после пересборки работает лучше, какого хрена вы ещё не работаете в RedHat, SUSE, Debian, Ubuntu?

Если вы думаете, что ваша жена печёт хлеб вкуснее, чем тот, что пекут на хлебзаводе - какого хрена она не директор этого хлебзавода???

frame ★★★
()
Ответ на: комментарий от anonymous

>Вопрос в пространство. Какие преследуются цели, когда кто-то пересобирает ядро после таких вендоров как RedHat, SUSE, Debian, Ubuntu?

Дык есть такая работа/хобби - зовётся kernel hacking ;) Ну и потом зачем _всё_ пересобирать. Многократно пересобирается девелопимый кусок ядра ;)

>Если вы думаете, что ваше ядро после пересборки работает лучше, какого хрена вы ещё не работаете в RedHat, SUSE, Debian, Ubuntu?

Ну во первых там сборкой занимаются совершенно _отдельные_ люди (то есть разработчики это одно а сборщики это немного другое) а во вторых может работать мы там и не работаем но в копирайтах вполне себе присутствуем ;)

Еще вопросы есть ? ;)

sS ★★★★★
()
Ответ на: комментарий от sS

> Дык есть такая работа/хобби - зовётся kernel hacking

К таким людям вопросов нет. Я задаю этот вопрос исключительно тем красноглазикам, которые тут "оптимизируют" всё и вся, и тем клоунам, которые получают (разве что во сне или в бреду) 30-50% выигрыша.

> Ну во первых там сборкой занимаются совершенно _отдельные_ люди

Бред.

From: buildsys@redhat.com

To: fedora-devel-list@redhat.com, fedora-test-list@redhat.com

Subject: rawhide report: 20070108 changes

kernel-2.6.19-1.2906.fc7 ------------------------ * Sun Jan 07 2007 Dave Jones <davej@redhat.com> - 2.6.20rc4

Вам рассказать, кто такой Dave Jones и КАКУЮ часть ядра веден именно он?

anonymous
()

любителям сборки нужно ВСЕ собирать из сырцов, а иначе смысла нету, потому что есть разница. Либо просто ядро работает в 6-7 раз быстрей, либо весь дистрибутив в 10.....

anonymous
()
Ответ на: комментарий от psychodealiq

Злодею большое спасибо за то хотя бы, что книга в принципе доступна для скачивания, а злопыхатели пусть дальше "злопыхают". ИМХО, доступность книги - наглядный пример силы OpenSource

dexpl ★★★★★
()
Ответ на: комментарий от R00T

> О! Еще и initrd мы включим! Сколько там по дефолту создается? 8 RAM-дисков по 32 мега? Подумаешь, фигли нам, пацанам, 256М туда, 256М сюда...

Учить матчасть как работает initrd, двоешник. :) http://www-128.ibm.com/developerworks/linux/library/l-initrd.html

The Linux&#174; initial RAM disk (initrd) is a _temporary_ root file system that is mounted during system boot to support the two-state boot process. The initrd contains various executables and drivers that permit the real root file system to be mounted, after which the initrd RAM disk is _unmounted_ and its memory _freed_. In many embedded Linux systems, the initrd is the final root file system.

> Ну конечно, а gcc кто об этом проинформирует?

Ну а при чем здесь ядро, которое давно поддерживает сохранение XMM-регистров при переключении контекста задачи?

> Ядро _НЕ_ выполняет математических операций через SIMD

Известно.

> Упоминавшийся выше mmx.c использует регистры SIMD для копирования блоков памяти

Угу и используется эта возможность только при задании CONFIG_X86_USE_3DNOW, которая скорее всего и разрешена на ванильном kernel-image-2.6-k7. На интелях же не всякому придет в голову разрешать поддержку 3DNow!, которой там нет.

> Соответственно, есть только 1 возможность использовать SIMD: как дополнительные регистры общего назначения. :-) Ну, если хотите, как сверхбыструю кеш-память.

С этим согласен.

> "-O3 -march=nocona -msse -mfpmath=sse3" позволяет хранить аргументы вызываемых функций в регистрах SIMD.

С чего это?

sse Use scalar floating point instructions present in the SSE instruction set. This instruction set is supported by Pentium3 and newer chips, in the AMD line by Athlon-4, Athlon-xp and Athlon-mp chips. The earlier version of SSE instruction set supports only single precision arithmetics, thus the double and extended precision arithmetics is still done using 387. Later version, present only in Pentium4 and the future AMD x86-64 chips supports double precision arithmetics too.

В коде ядра нет арифметики с плавающими числами, соот-но не будет и никакого кода с SSE-инструкциями.

> Кажется, чуть выше я писал, что не "полпроцента", а 30-50 процентов.

Из-за оптимизации кода mysql? Или вы будете утверждать, что из-за собранного кастом-ядра?

> Не "часы", а считанные минуты. "Часы" могут понадобиться на чтение документации и подбор оптимальных опций.

(Кол-во сборок)*(среднее время на сборку)*(колв-о машин)

> Блин, какие "проблемы"? Откуда?

Проблема в том, что некоторые ошибочно считают пересборку ядра вместо штатного обязательным атрибутом от чего серьезно зависит производительность.

> Что-то на рекламу венды похоже. Которая тоже вумная-вумная. Тока отрубями не питается. Это все ради ленивых балбесов, которым лень научиться ядро собирать?

Да весь прогресс - из-за ленивых балбесов, которым и пешком ходить лень и выращивать себе пищу, ходить за водой к колодцу, скакать за тысячу километров с депешей, тысячу раз писать один и тот же оператор вместо цикла и вручную задавать параметры вместо того, чтобы поручить программе самой получать информацию из CPUID, PCI configuration Space, SPD, EDID через DDC и т.д. Хотя находятся некоторые, кто создает культ вокруг ручного конфигурирования даже в том случае, когда автоматика успешно справляется.

sysenter
()
Ответ на: комментарий от Cy6erBr4in

>на роутер, у которого система на флешке стоит, ты тоже будешь ставить дефолтное дистровое ялро размером в несколько мегобайт?

Это каким хером оно несколько мегабайт, если в дистровых ядрах ВСЁ ЧТО МОЖНО вынесено в модули? Не грузи не нужные модули и всё ок.

golodranez ★★★★
()
Ответ на: комментарий от anonymous

>Бред.

Щаз.

hint: девелоперов в разы больше чем сборщиков.

У каждого дистрибутива они (сборщики) свои и они зачастую ни разу не являются девелоперами собираемых ими кусков

>Вам рассказать, кто такой Dave Jones и КАКУЮ часть ядра веден именно он?

agp, cpufreq остальные не помню

Еще раз. Это _две_ разные позиции. Их _может_ может занимать один и тот же человек но это не является правилом.

sS ★★★★★
()
Ответ на: комментарий от golodranez

>Это каким хером оно несколько мегабайт, если в дистровых ядрах ВСЁ ЧТО МОЖНО вынесено в модули? Не грузи не нужные модули и всё ок.

Ага. Пример: у меня в ADSL роутере всего 6 (прописью "шесть") мегов памяти + флеш. И какое дистровое ядро мне туда поставить ? ;)) Архитектура кстати ни разу не i386 (MIPS).

sS ★★★★★
()
Ответ на: комментарий от dexpl

Дорогие друзья, наступает время, когда дистрибутив перестаёт поддерживаться, а некоторые мои машины инсталлированы ещё в 1998-м. И может даже раньше. C тех пор перееехали на новое железо несколько раз. А NCQ, к примеру, поддерживается только в последних ядрах 2.6. Популярные нынче чипы JMicron аналогично. А багфиксы ? На тех ядрах я сам рута из пользователя получал. Вот чтобы не бегать с выпученными глазами в таких случаях, работать максимально универсально, не переинсталлироваться каждый раз и переконфигурироваться как в случае с вендой, надо уметь самостоятельно собирать ядро. И это единсвенный способ. И идут любители "готовых решений" от дяди в сат. Децкий.

wa
()
Ответ на: комментарий от anonymous

>Я задаю этот вопрос исключительно тем красноглазикам, которые тут "оптимизируют" всё и вся, и тем клоунам, которые получают (разве что во сне или в бреду) 30-50% выигрыша.

Это "биомасса" тестеров ;) кстати у Грега не хватает главы о том как грамотно писать багрепорты ;) Научиться компилять ядро может и обезьяна а вот грамотно написать багрепорт "биомасса" обязана уметь ;)

sS ★★★★★
()
Ответ на: комментарий от anonymous

Re:

AFAIK,в 2.4.x qnx4 даже ro не включена в конфиге по умолчанию, да пара патчей для iso9660 для growisofs, cmedia line in as rearout(что бы в ушах и в колонках было) ну и во фрейм буффер свою картинку на загрузку поставить
ps
удачно пересобирал Debian,Slackware - SUSE не пробовал, а RedHat не собрался, после включения qnx4fs ro
psps
qnx4fs - так как для души стоит qnx6.x

botrops-schlegelii ★★
()
Ответ на: комментарий от sv75

> Видимо, нет - карточки менять на заколебался ведь?

А вы что, любите как в винде - вышла из строя мамка, заменил и имеешь "Inaccessible boot device"^W^W^W "root fs not found, kernel panic" и без пересборки ядра никуда? Мне же как-то больше по душе когда initrd сам загружает необходимые критические модули необходимые для загрузки, а остальные модули(звуковухи, сетевухи) подхватываются по ходу пьесы также автоматически.

sysenter
()
Ответ на: комментарий от wa

Re:

+1
не нужно думать, кого в какой-нибудь микрософт купит и куда мигрировать потом - берёшь ванилла(хучь ядро, хучь софт), и не платишь за поддержку и отсутсвие нужных функций.
ps
может я не много знаю, но ,по моему впечатлению, всяческие security fixes выпускаются ,в большинстве своём, для vanilla софта, и ,в меньшем числе, для перепатченного вендоровского кода.

botrops-schlegelii ★★
()
Ответ на: комментарий от frame

> Оч интересно, как это можно применить к моему личному компьютеру :D У вас дома всё также рационализировано, автоматизировано, сертифицировано и значёк вендора внушает уверенность в завтрашнем дне? Тогда вам не понять, зачем и для кого пишутся подобные книги.

Если бы все было "рационализировано, автоматизировано, сертифицировано и значёк вендора" то винде давно бы уже настал тотальный капец. К сожалению поддержка нового железа зачастую лишь в новом ядре, официальная поддержка от вендоров слабая, драйвера от некотороых производителей(не буду тыкать в ATI) недоделанные, некоторые железки поддерживаются неофицильными дровами криво(у меня это вебкамера на spca506) или только после плясок с бубном(с AverTV раньше пока не связался с мантейнером V4L, который добавил автодетект надо было плясать с бубном) да еще X11 настолько туп, что не в состоянии самостоятельно по PCIID определить видеокарту и соответствующий ей драйвер, а по EDID параметры монитора. И это все не нормально.

sysenter
()
Ответ на: комментарий от sysenter

> А вы что, любите как в винде - вышла из строя мамка, заменил и имеешь "Inaccessible boot device"^W^W^W "root fs not found, kernel panic" и без пересборки ядра никуда?

Афтар, 1) generic IDE работает на ЛЮБЫХ контроллерах. Если Вы не знаете, как включить generic IDE linux ide0=0x1f0..., можете отправляться в децкий сат. Нет DMA, но загрузиться и собрать новое ядро хватит за глаза. 2) Ваше модульное ядро Вам не поможет, если идёт переход на чипсет, не поддерживаемый этим ядром. А так обычно и бывает.

wa
()

из заголовка можно подумать что в книге даётся введение в ядро для системного программиста

shafff
()
Ответ на: комментарий от sysenter

>некоторые железки поддерживаются неофицильными дровами криво(у меня это вебкамера на spca506)

А чего с 506 то не так (окромя того что она древняя и yyuv) ? Она лет сто как поддерживается.

sS ★★★★★
()
Ответ на: комментарий от anonymous

> клоунам, которые получают (разве что во сне или в бреду) 30-50% выигрыша

Клоуны - это те, кто ведется на маркетоидный бред, а потом оный бред преподносит окружающим как истину в последней инстанции.
Все очень просто: ЕСЛИ бОльшую часть аргументов функций мы передаем через регистры, то реальная производительность системы "процессор-кеш-память" сразу вырастает в разы по сравнению с неоптимизированной. Просто потому, что обращение к памяти занимает десятки (если не сотни) тактов процессора. Одновременно мы хоть и относительно маленький, но кусок оперативки освобождаем к примеру под дисковый кеш. Но, к сожалению, дисковые массивы небыстрые, поэтому общая производительность системы увеличивается не более чем на десятки процентов. Доступно?
Кроме того, есть старые как мир экстенсивные по отношению к ОЗУ способы оптимизаций. Например, выравнивание данных по границе машинного слова, что позволяет всегда считать нужное значение за 1 обращение к ОЗУ.

> Вам рассказать, кто такой Dave Jones и КАКУЮ часть ядра веден именно он?

Можете рассказать. Я не знаю. Да и вообще поделками Шапки не интересуюсь.

R00T
()
Ответ на: комментарий от wa

>1) generic IDE работает на ЛЮБЫХ контроллерах.
так то оно так...
но вот лично у меня был глюк на nforce2

если был включен generic ide, то dma не работал.
(хотя естественно драйвера для чипсета были, и были вкомпилены а не модулем). просто такой глюк. Я об этом тут на форуме спрашивал...

anonymous
()
Ответ на: комментарий от R00T

> Кроме того, есть старые как мир экстенсивные по отношению к ОЗУ способы оптимизаций. Например, выравнивание данных по границе машинного слова, что позволяет всегда считать нужное значение за 1 обращение к ОЗУ.

Во-первых, компилятор всегда выравнивает данные, если, конечно, в коде явно не указано делать иначе. А это делают очень редко, и если уж это сделано, то ниакие ключи не заставят компилятор их выровнять. Во-вторых, на современных PC платформах, выравнивание не даёт _НИЧЕГО_. Ну вообще ничего. Даже иногда не невыровненные данные быстрее работают. Учите матчасть, дружочек.

wa
()
Ответ на: комментарий от sysenter

> Ну а при чем здесь ядро, которое давно поддерживает сохранение XMM-регистров при переключении контекста задачи?
>> "-O3 -march=nocona -msse -mfpmath=sse3" позволяет хранить аргументы вызываемых функций в регистрах SIMD.
> С чего это?

Вы не считаете, что вы сами себе противоречите? Признавая, что регистры сохраняются, вы отказываетесь задаться вопросом "а зачем?".

> Из-за оптимизации кода mysql? Или вы будете утверждать, что из-за собранного кастом-ядра?

И ядро и MySQL. Собственно, оптимизировать только что-то одно бессмысленно. Еще забавнее было бы и GLIBC подобным же образом оптимизировать, но на продакшн системах я это сделать не рискну.

> обязательным атрибутом от чего серьезно зависит производительность

Действительно зависит. Вы хотя бы ради интереса делали когда-нибудь mysql-test? Попробуйте.

R00T
()
Ответ на: комментарий от anonymous

> если был включен generic ide, то dma не работал.

Дык кто застfвляет на generic IDE _работать_ ? Generic IDE - это чтобы загрузиться и пересобрать ядро. make oldconfig, пару строчек изменили, далее работает машина 5-10 минут. Всё.

wa
()
Ответ на: комментарий от wa

> Дорогие друзья, наступает время, когда дистрибутив перестаёт поддерживаться, а некоторые мои машины инсталлированы ещё в 1998-м. И может даже раньше. C тех пор перееехали на новое железо несколько раз. А NCQ, к примеру, поддерживается только в последних ядрах 2.6. Популярные нынче чипы JMicron аналогично. А багфиксы ? На тех ядрах я сам рута из пользователя получал. Вот чтобы не бегать с выпученными глазами в таких случаях, работать максимально универсально, не переинсталлироваться каждый раз и переконфигурироваться как в случае с вендой, надо уметь самостоятельно собирать ядро. И это единсвенный способ. И идут любители "готовых решений" от дяди в сат. Децкий.

Дорогой друк, ты сам себе злобный буратино, страдающий из-за собственного неудачного выбора. Нормальные люди выбирают такие системы как RHEL, SLES и платят за постоянную поддержку, либо если не хотят платить, но желают иметь поддержку и секфиксы, то используют такие системы как CentOS или Debian GNU/Linux, где переход на поддерживаемую версию дистрибутива выполняется вот так "apt-get update&&apt-get dist-upgrade". А пионеры продолжают использовать неподдержвиаемые и необновляемые дистрибутивы и жаловаться либо собирают свое ядро и свой софт из исходников... в своем детсаде. Пионеры, а вы в курсе, что с тем же mysql вас хоть завтра вендор может официально послать на три буквы, сменив лицензию, прекратив выкладывать сорсы и прекратив поддержку и выпуск патчей?

anonymous
()

Года полтора сидел на openSUSE10.0 - дистр в целом очень тормозной, ядро перегружено каким-то хламом. После пересборки ядра на виниллу появился некоторый прирост, однако никакие костыли инвалида бегать не заставят.

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

shahid ★★★★★
()
Ответ на: комментарий от R00T

> Вы не считаете, что вы сами себе противоречите? Признавая, что регистры сохраняются, вы отказываетесь задаться вопросом "а зачем?".

XMM-регистры сохраняются, как и регистры FPU и РОНы ПРИ ПЕРЕКЛЮЧЕНИИ КОНТЕКСТА ЗАДАЧИ, чтобы данные в них не похерились. Где здесь противоречие? А воту вас, похоже туго с матчастью. С какого это перепуга после сборки с "-O3 -march=nocona -msse -mfpmath=sse3" ядро станет использовать XMM в качестве РОНов(регистров общего назначения тиап EAX/RAX, etc)? Покажите-ка дизассемблированный листинг вашего ядра, где оно использует xmm для передачи параметров.

sysenter
()
Ответ на: комментарий от wa

>Дык кто застfвляет на generic IDE _работать_ ? а как мне заставить не работать с ним если и он и amd7xx (точно не помню) вкомпилены в ядро но пользует он его....

точно не помню (давно было) но если и есть такая возможность (передать там параметр при загрузке) то оно не работало... все тогда решили, что глюк...

http://www.linux.org.ru/view-message.jsp?msgid=710455

anonymous
()
Ответ на: комментарий от wa

> Во-первых, компилятор всегда выравнивает данные, если, конечно, в коде явно не указано делать иначе. А это делают очень редко, и если уж это сделано, то ниакие ключи не заставят компилятор их выровнять.

man gcc
-falign-* появляется тока в -O2. gcc не будет пытаться выровнять данные, если ему не сказать -O2, либо явно не задать -falign-чегонибудь.
-malign-* вообще в дефолте не задается просто потому, что изменится бинарный вид структур. -malign-* желательно использовать только в изолированных средах, без взаимодействия с внешним миром (например, в вычислительных кластерах или stand-alone системах)
-mpreferred-stack-boundary компилятор пытается делать, если указан тип процессора или архитектуры (-march ; -m32 ; -m64).

Так что неправда ваша.

> Во-вторых, на современных PC платформах, выравнивание не даёт _НИЧЕГО_. Ну вообще ничего.

Ой, правда? А пацаны-то и не знали... И девелоперы ядра и gcc - тоже. А то фигли, блин, "-O2"... А в конфиге для Трансметы:
r00t@root:/$ cat /usr/src/soft/kernel/linux-2.6.18/arch/i386/Makefile.cpu | grep CRUSOE
cflags-$(CONFIG_MCRUSOE) += -march=i686 $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
догадайтесь почему?

Второй раз неправда.

> Учите матчасть, дружочек.

Совет вы дали явно для себя.

R00T
()
Ответ на: комментарий от anonymous

> Дорогой друк, ты сам себе злобный буратино, страдающий из-за собственного неудачного выбора. Нормальные люди выбирают такие системы как RHEL, SLES и платят за постоянную поддержку, либо если не хотят платить, но желают иметь поддержку и секфиксы, то используют такие системы как CentOS или Debian GNU/Linux, где переход на поддерживаемую версию дистрибутива выполняется вот так "apt-get update&&apt-get dist-upgrade". А пионеры продолжают использовать неподдержвиаемые и необновляемые дистрибутивы и жаловаться либо собирают свое ядро и свой софт из исходников...

Отличная идея. Какже я, дурак такой, раньше не догадался ? Да уж, век живи - век учись. А конфигурации переписывать кто будет ? Дружок, ты вообще в курсе, например, что у bind, к примеру, формат файлов конфигурации с тех пор поменялся ? Кто мне будет это переписывать ? Ты по дружбе или Рэд Хет из любви к кастомеру ? Ты уверен, что современный squid тот конфиг пожрёт ? Ещё примеров тебе надо ? Иди ка ты со своей мудростью лесом, друх. Не первый раз замужем.

wa
()
Ответ на: комментарий от wa

> Кто мне будет это переписывать ? Ты по дружбе или Рэд Хет из любви к кастомеру ? Ты уверен, что современный squid тот конфиг пожрёт ? Ещё примеров тебе надо ? Иди ка ты со своей мудростью лесом, друх. Не первый раз замужем.

Конечно же при сборке ядра и софта ситуация будет совершенно иной - конфиги будут самостоятельно переписываться после каждой сборки новой версии софтины.

anonymous
()
Ответ на: комментарий от R00T

R00T, Вы пугаете меня своим невежеством. -falign-*, --malign- это выравнивание _КОДА_, а не данных. По умолчанию включено всегда.

> Ой, правда? А пацаны-то и не знали...

R00T, я мог бы Вам посоветовать серию книг Криса Касперски "Техника оптимизации программ", там всё прекрасно описано по выравнивание, про современные платформы, но это для Вас c пацанами непостижимо сложно. Идите-ка лучше пивка попейте. Свободен. С такими, как Вы, спорить - только себя унижать.

wa
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.