Нашел в закоулках диска переведенную мною для fantoo.org (не работает
в наст.момент) и неизвестно кем (кажется сам amax)
написанную статью, которую и привожу. Русский перевод чуть ниже.
Извиняюсь за не очень качественный перевод. Год с лишним назад у меня
язык был хуже..
Области применения
Реалтайм ядро активно используется для выполнения таких задач как:
1. Разработка, отладка и профилирование программ, измерение скорости
их исполнения
2. Обработка звука, микширование, вещание
3. Работа с video, монтаж, capturing, вещание
4. Работа с тяжело нагруженными internet сервисами (например Java +
SOAP) для обеспечения maximal HIT's per seconds
5. 3D игры (создание, тестирование и отладка)
6. Работа с различными контроллерами, внешним оборудованием, для
SCADA систем
7. Для научных работников, занимающихся моделированием различных
процессов (физики, биологи)
Возможности
* ядро сделано полностью преемтабельным 95% всего времени
* обработчики каждого прерывания работают теперь в контексте своего
ядрового треда
* почти все спинлоки превращены в мутексы
* возможность управлять приоритетами для каждого процесса IRQ XX
Особенности
* тратится время на два переключения контекста для каждого
прерывания и усложнённой логики
* большее количество переключений контекста означает большую
нагрузку на кэш L2 и следовательно существенно меньшую
производительность у кэш/memory bound процессов
* прерывания системного таймера не "бесплатные" и на них тратится
время, приблизительно 1% процессорного времени при HZ=1000
Настройка ядра 2.6.14
в разделе Code maturity level options --->
[*] Prompt for development and/or incomplete code/drivers
в разделе Processor type and features --->
[*] Generic x86 support
[*] HPET Timer Support
[*] Ktimers 64bit scalar representation
[*] High Resolution Timer Support
(10000) High Resolution Timer resolution (nanoseconds)
Preemption Mode (Complete Preemption (Real-Time)) --->
[*] Local APIC support on uniprocessors
[*] IO-APIC support on uniprocessors
[*] enhanced IO-APIC support
High Memory Support (off) --->
[*] 1Gb Low Memory Support
Timer frequency (250 HZ) --->
[*] Enable different security models
<M> Default Linux Capabilities
ПРИМЕЧАНИЯ:
* Все настройки рекомендованы для ядра 2.6.14-rt22
* Рекомендуемое значение при работе с JACK для Timer frequency
(CONFIG_HZ) = 250 (при значении 100 возникает наименьшее
количество XRUN при большой нагрузке, зато "плохеет" RT) -
ОБЯЗАТЕЛЬНО ЧИТАТЬ [23]http://kerneltrap.org/node/464 - в
остальных случаях стоит ставить значение 1000 (могут быть залипоны
при max нагрузке на CPU)
* Разумный минимум для High Resolution Timer resolution - 10000 (чем
ниже это значение тем больше нагрузка на процессор, в vanilla
kernel нету HRT, разрешение таймера в vanilla равно 1000000).
Для начала, подумаем, что мы хотим получить. Например НЕ заикающийся
звук. Отлично! Сперва придётся попытаться сконфигурировать настройки
bios таким образом, чтобы ваша звуковая карта имела своё собственное
прерывание (IRQ)
Это означает что на IRQ 20 находится звуковая карта SB Audigy
для поднятия приоритетов (в нашем случае звуковой карты) необходимо
иметь установленным пакет sys-process/schedutils версии 1.4.0 или
выше.
Типовые значения приоритетов для звуковой карты:
* 99
* 60
Для того чтобы установить максимальный приоритет для процесса IRQ 20,
выполним команду:
chrt -f -p 99 `pidof "IRQ 20"`
и проверим результат
chrt -p `pidof "IRQ 20"`
ВНИМАНИЕ Установка приоритетов для IRQ требует специальных знаний, а
так же особенностей вашего железа. Не делайте этой операции если вы не
знаете, нужна ли она вам на 100% ! ЗАПОМНИТЕ, что устанавливая наобум
приоритеты для IRQ вы СУЩЕСТВЕННО нарушаете правильную работу OS. Вы
предупреждены.
Ссылки
Вы всегда можете скачать последний .ebuild для
sys-kernel/realtime-sources из Fantoo SVN репозитория:
https://fantoo.ru/svn/sys-kernel/realtime-sources/
Или установить один общий патч на vanilla kernel 2.6.14 (Для ЛЮБЫХ
дистрибутивов Linux)
http://chronos.nsu.ru/fantoo/realtime/linux-2.6.14_p22-realtime-r5.patch.bz2
Оригинальный патч от Ingo Molnar можно скачать тут
http://people.redhat.com/~mingo/realtime-preempt/
Дискуссия о realtime-sources на сайте forums.gentoo.org в разделе
Unsupported http://forums.gentoo.org/viewtopic-p-2951922.html
Описание CONFIG_HZ
* http://kerneltrap.org/node/464
* http://www.uwsg.iu.edu/hypermail/linux/kernel/0311.0/0126.html
Благодарности
* Ingo Molnar - за его чудесную реализацию RT патча
* Con Kolivas - за наработки в области планировщиков и тюнинга ядра
* Serge Belyshev [ssb] - за НЕОЦЕНИМУЮ помощь в освоении этого RT
патча, за его багфиксы и помощь в написании документации
437 Прочтений • [Сборка realtime ядра Linux] [08.05.2012] [Комментариев: 0]