URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 63763
[ Назад ]

Исходное сообщение
"Новый шаг по интеграции в Linux ядро RealTime-расширений"

Отправлено opennews , 10-Фев-10 16:58 
До сих пор, в основной ветке Linux, использовался только один тип спилок-блокировок (http://ru.wikipedia.org/wiki/%D0%A1%D0%B... - «вращающиеся» спинлоки (spinning spinlocks). Однако, в дереве PREEMPT_RT, они должны быть дифференцированы между спинлоками которые могут «засыпать» в режиме реального времени и обычными спинлоками, даже в режиме реального времени. Это требует нового пространства имен и решения, какой тип спинлоков переименовать.


На конференции Kernel Summit 2009, было решено (http://www.osadl.org/Single-View.111+M58050282514.0.html) не переименовывать блокировки, которые должны быть преобразованы в «засыпающие» спинлоки в дереве PREEMPT_RT, поскольку это привело бы к огромному количеству патчей и, безусловно, создало бы путаницу.


Позднее, в заключительной стадии слияния Linux 2.6.33, Линус выступил с предложением:


-  Переименовать архитектуру реализаций спинлоков от raw_spinlock к  arch_spinlock.
-  И...

URL: http://www.osadl.org/Single-View.111+M58050282514.0.html
Новость: http://www.opennet.me/opennews/art.shtml?num=25366


Содержание

Сообщения в этом обсуждении
"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено Zenitur , 10-Фев-10 16:58 
И это здорово!
одно из применений RT-ядра - студии звукозаписи. Во всех ориентированных на это дистрибутивах только RT-ядро.

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено anonimus , 10-Фев-10 17:23 
Да, но только оно не всегда спасает, когда дело упирается в планировщик ввода/вывода - все со звуком начинает кавкать, икать и заикаться...
Попробуйте в Ardour пару десятков треков с эффектами покрутить...
Надеюсь, что эти нововведения хоть как-то поправят положение дел в лучшую сторону...
Хотя с планировщиком тоже что-то нужно делать, уже с 24-го RT ядра тянется это все дело...

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено devl547 , 10-Фев-10 20:12 
>планировщик ввода/вывода

BFQ/NOOP/SIO - попробуйте, может что поможет.


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено anonimus , 10-Фев-10 20:16 
>>планировщик ввода/вывода
>
>BFQ/NOOP/SIO - попробуйте, может что поможет.

Вы наверное хотели сказать cfq anticipatory deadline noop
пробовал все - проблема не разрешается...


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено Basiley , 11-Фев-10 03:26 
попробуйте поиграться с ionice.
к сожаленю текущая версия reniced - рулит только планирвоащиками CPU(без IO).
мб выйдет аналог.

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено Аноним , 10-Фев-10 16:58 
"Томас Глейкснер создал серию патчей, которые Линус включил в ядро 2.6.33." - как же это кажется приятным.
тестировал летом, помнится что были проблемы в 2.6.31 с виртуалбоксом - интересно что получится..

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено Аноним , 10-Фев-10 17:16 
>одно из применений RT-ядра - студии звукозаписи.

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


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено Tav , 10-Фев-10 17:41 
Кому нет, а кто вовсю использует.

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено аноним , 10-Фев-10 17:44 
> под которое музыкального софта то и нет нормального

Вы шутите?


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено НоуНэйм , 11-Фев-10 02:21 
нет. он троллит.

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено KaLGaN , 10-Фев-10 18:41 
http://ubuntustudio.org/

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено Basiley , 11-Фев-10 03:27 
>http://ubuntustudio.org/

есть посерьезнее(и постарше)MM-дистры.


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено prox , 15-Фев-10 13:06 
Какие например?

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено Аноним , 10-Фев-10 17:19 
Често не понимаю суть новости. Так какими-же должны быть спинлоки в режиме реального времени? Те что засыпают уже вряд-ли можно назвать спинлоками. Это скорее уже семафоры.

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено друг XoRe , 10-Фев-10 18:41 
что-то я не совсем пойму, помогите: ядро Linux работает со свап пространством, о какой  реал тайм может идти речь? или это про встроенные системы? допуская что в "мягком" виде,но не в "жестком"  еще можно прогнозировать выполнение задачи на время загруки выгрузки(время) swap контекста.

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено uZver , 10-Фев-10 19:09 
а если не допускать работы со свапом? заблокать его к примеру? ядро без RT-патчей все равно не будет реал-таймовым...

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено User294 , 10-Фев-10 19:48 
Я что-то не вдупляю: что мешает не пользоваться свопом? А так - по моим наблюдениям линух юзает своп лишь когда реально припирает. Ну, будет вам OOM kill вместо тормозов от свопа. Как, полегчало? :)

ЗЫ павлин вон написал более цивильный пример борьбы с пакостями.
ЗЗЫ эй, поклонники гарбаж коллекторов, изобразите чтонить подобное? :)


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено KdF , 10-Фев-10 20:44 
>Я что-то не вдупляю: что мешает не пользоваться свопом? А так -
>по моим наблюдениям линух юзает своп лишь когда реально припирает. Ну,
>будет вам OOM kill вместо тормозов от свопа. Как, полегчало? :)
>
>
>ЗЫ павлин вон написал более цивильный пример борьбы с пакостями.
>ЗЗЫ эй, поклонники гарбаж коллекторов, изобразите чтонить подобное? :)

Ну вообще-то линукс как раз может юзать своп, хотя еще очень много свободной памяти. Всякое lru туда скидывает и радуется, освобождая память. Другое дело, что если не будет свопа, он просто не будет этого делать.


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено User294 , 11-Фев-10 10:56 
> Ну вообще-то линукс как раз может юзать своп, хотя еще очень много свободной памяти

Простите, а вы это в теории проверяли или на практике?
По шагам:
1) Берем машину с достаточным размером оперативы чтобы в нее лезло все (ну допустим 4..8 гигз для десктопа со всеми наворотами).
2) Цепляем своп.
3) Юзаем.
4) Посматриваем на юзеж памяти и свопа.
5) Постепенно засираем память.
6)  Особенно активно смотрим на состояние свопа когда выжранное приближается к размеру оперативы.

Что как правило видим? Пока свободной памяти много - своп вообще линуху перпендикулярен. Туда не льется ни-че-го. В нем лежит какие-то несколько килобай. И ... все. Поэтому переключение между разными увесистыми апликухами вообще не тормозит до тех пор пока все запущенное лезет в физическую оперативку. Когда лезть перестает - начинается отлив в своп того что давно не использовалось. Да, ессно тормоза начинаются но это хороший сигнал что что-то идет не так и кто-то из процессов пошел вразнос и суммарный жрач начинает превышать физическую память. Данный стиль поведения наблюдался на кучке разных пингвинов. Попробуйте сами так поэкспериментировать да посмотите. Если что так себя вели как минимум ядра от .18 до .31

> Другое дело, что если не будет свопа, он просто не будет этого делать.

Самое интересное - что этого не делается и когда своп есть, пока памяти хватает. Сие кстати выгодно отличает линухи от виндов. В винде действительно давно не использованное добро в своп сливается в фоне. И достаточно нагло и активно, невзирая на объемы свободной памяти и прочая. В итоге - переключение между увесистыми процессами тарахтит диском. Так что если вы сунулись в файрфокс, а потом в VS, а потом в Outlook а потом в Ворд, поработав в каждой софтине полчаса - вы рискуете при каждом переключении раз в полчаса столкнуться с натужным хрустением диска. При этом пофиг что половина оперативы еще свободна, много дряни сольется в своп все-равно. Под линухами такое не проявляется и своп в подобной ситуации пуст и ничего не тормозит вплоть до момента когда с оперативкой станет реально душно. Так, всего лишь скромное наблюдение над логикой работы свопления реально существующих ОС в реальных условиях их использования.


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено KdF , 12-Фев-10 02:48 
Честно говоря, критериев, приводящих к выбросу в своп при конкретных значениях объемов памяти, дисковых буферов, и других параметров, я не знаю, в исходниках ядра бываю редко.

Я не знаю, какими дистрибутивами вы пользуетесь, но ситуация, которую вы описываете, как раз характерна для неправильной работы механизма распределения памяти. Выкинуть в своп - всегда правильное решение для least recently used данных, особенно на сервере. При недостатке памяти первым делом он покиляет дисковые кэши, а уж потом начнет выгружать в своп страницы.

Если вы дергаете постоянно приложения, переключаясь между ними, очевидно, что грамотный менеджер памяти не будет выкидывать их в своп, возможно, именно про это отличие от windows вы говорите. Но понятно, что выкинуть страницы софта, отожравшего три дня назад 300 Мб памяти и не обращавшегося к ним, для ускорения интенсивного обмена с диском той же самой MySQL или для потребностей другого ресурсоемкого приложения - прямая обязанность диспетчера памяти.

Также учитывайте механизм выделения памяти приложению в Linux - приложению по факту выделения количество памяти не гарантируется, это не физические страницы, а страницы выдаются по попытке доступа к ним. overcommit + swapiness, рекомендую обратить внимание. Чтобы в один прекрасный день не обнаружить сервис, который выжрал 8 Гб якобы имеющейся в системе без свопа памяти, которая на самом-то деле уже распределена ;)


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено anonymous , 12-Фев-10 15:46 
>Честно говоря, критериев, приводящих к выбросу в своп при конкретных значениях объемов
>памяти, дисковых буферов, и других параметров, я не знаю, в исходниках ядра бываю редко.

А г-ди, исходники ядра.. google://vm.swappiness vm.vfs_cache_pressure, насчет oom killer с компанией — vm.overcommit_memory vm.oom_kill_allocating_task vm.overcommit_ratio
Врядли вам нужно больше.


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено KdF , 14-Фев-10 15:20 
vfs_cache_pressure не видел, посмотрю, про остальные в курсе, но они к свопу данных при имеющейся свободной памяти как относятся?


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено anonymous , 15-Фев-10 16:53 
>vfs_cache_pressure не видел, посмотрю, про остальные в курсе, но они к свопу
>данных при имеющейся свободной памяти как относятся?

vm.swappiness вроде бы непосредственно, а остальные к oom же


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено Tav , 10-Фев-10 21:39 
> по моим наблюдениям линух юзает своп лишь когда реально припирает

По умолчанию это не так. Но можно настроить (значение в /proc/sys/vm/swappiness).

А RT-приложения все равно используют memlock, если пользователю разрешено.


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено User294 , 11-Фев-10 10:58 
>По умолчанию это не так.

В каких ядрах, ос и прочая? В ванилле какойнить? А то попавшиеся под руку "десктопные" линухи вели себя именно описанным мной образом - своп обычно пустой пока не начнет натурально прижимать :).Да и на серверных что-то не видел отлива в своп пока душняк не наступил. Что я делаю не так? oO


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено aZ , 12-Фев-10 03:33 
Похоже, что ты вообще мало имел дел с линуксом. Только троллить горазд на опеннете.

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено anonymous vulgaris , 10-Фев-10 21:40 
>ЗЗЫ эй, поклонники гарбаж коллекторов, изобразите чтонить подобное? :)

Риал тайм жаба не собирает мусор когда не надо

http://java.sun.com/javase/technologies/realtime/index.jsp

New Memory Management Schemes

Neither immortal nor scoped memories are garbage collected, so using them avoids problems of GC interference.

но есть мусорщики с детерминированным поведением

Metronome is a deterministic garbage collector that offers bounded low pause times and specified application utilization for standard Java applications.


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено Nick , 10-Фев-10 19:00 
Свап можно выключить, что нормально для встраиваемых систем. А как обстоят дела с десктопными решениями?

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено pavlinux , 10-Фев-10 19:10 
И вообще, swap и реалтайм никому не мешают ...
Реалтайм проги пишут с запрещением выгрузки в shared mem


#include <sys/resource.h>


struct rlimit limit;
limit.rlim_cur = 0;
limit.rlim_max = 0;

setrlimit(RLIMIT_CORE, &limit); // не выдавать кору

long pagesize = sysconf(_SC_PAGESIZE); // страничка для млока

char *buf;
char *data;

buf =  (char *)malloc(size+1+pagesize);
data = (char *)((((intptr_t)buf + pagesize - 1) / pagesize) * pagesize);

setvbuf(data, (char *) NULL, _IONBF, 0);
mlock(data, size+1);

// Работаем

munlock(data, size+1);

free(buf);



"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено друг XoRe , 10-Фев-10 22:55 
нет, не согласен в книги FreeBSD. Архитектура и реализация. Невил-нил Д. В., Маккузик М. К
имеено проблема была со свапом, поэтому FreeBSD не может работать как real-time система + ОЧЕНЬ БОЛЬШОЙ ВОПРОС TCP/IP как будете прогнозировать точное время выполения задачи?????????????????????????? так что реализация, только для локальной хоста, не более (причем без сваппа) и скорее всего без некоторых системных процессов, например будет потеря кол-ва времени (тиков) для ругих процессов (системынх и пользовательсикх) так как весь cpu будет отдан под задачу real-time, что скореевсего скажется на целостности системы,из-за невозможности отдать время системному процессу. Хотя согласен, для систем "мягкого реального времени" планировщик пойдет, для жесткого нет -  ответ системы не детерминирован.

"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено pavlinux , 11-Фев-10 03:43 
>нет, не согласен в книги FreeBSD. Архитектура и реализация. Невил-нил Д. В.,
>Маккузик М. К имеено проблема была со свапом, поэтому FreeBSD не может
> работать как real-time система + ОЧЕНЬ БОЛЬШОЙ ВОПРОС TCP/IP

Хоть в одном стандарте на TCP/IP есть временные константы ??? Ну а хрен тогда...
> как будете прогнозировать точное время выполения задачи??????????????????????????

Маккузик крутой наверно перец, что даже не учёл понятия "СИСТЕМА"!!!

Никто против не будет если я любую сеть обзову системой?! Нет!
Имеем минимум два хоста соединённые в сеть, [X] --- [Y],
поднимите чё-нить, кто за то, что эту ситему можно назвать REAL-TIME, только
при условии, что ОБА ЭЛЕМЕНТА СИСТЕМЫ ЯВЛЯЮТСЯ REAL-TIME?!

  RT = (X c RT) + ( Y c RT )  

По-русски - Множество RT полно, тогда и только тогда, когда каждый элемент подмножества принадлежит этому множеству.

Так какой в попу реал тайм, если даже не известно придет ли пинг обратно,
скажем из Чили, или со спутника.

Всё ещё против?!  Ну тогда другая система - SOFTWARE <-> HARDWARE
Кто за то, что QNX и vxWorks станут ацтойными операционками, если
у RTC будет погрешность в 25%?! То есть с вероятностью 0.001,
за 4 реальные секунды он убежит или затормозит на 1 секунду.  


> так что реализация, только для локальной хоста,  не более (причем без сваппа)
> и скорее всего без некоторых системных процессов, например
> будет потеря кол-ва времени (тиков) для других процессов (системных и пользовательских)
> так как весь cpu будет отдан под задачу real-time, что скорее всего
> скажется на целостности системы,из-за невозможности отдать время системному процессу.
> Хотя согласен, для систем "мягкого реального времени" планировщик пойдет,
> для жесткого нет - ответ системы не детерминирован.

Детерминированность...
Хе, а что такое время?! 9 мульёнов периодов полураспада какого-то там изпопа Цезия?
Тут доказали, что скорость света не постоянна, а вы про время...


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено аноним , 11-Фев-10 02:09 
>еще одна важная веха на пути к полной интеграции «Реального времени» в основную ветку ядра!

Автору новости - поменьше пафоса, вы не на первомайской демонстрации. Суть не  новом шаге, а в том, что разгребают старые ошибки, когда ядро изначально не было реалтайм. Уменьшение патча на 350 Кб - это, безусловно, прорыв!


"Новый шаг по интеграции в Linux ядро RealTime-расширений"
Отправлено pavlinux , 11-Фев-10 03:06 
>>еще одна важная веха на пути к полной интеграции «Реального времени» в основную ветку ядра!
>
>Автору новости - поменьше пафоса, вы не на первомайской демонстрации. Суть не
> новом шаге, а в том, что разгребают старые ошибки, когда
>ядро изначально не было реалтайм. Уменьшение патча на 350 Кб -
>это, безусловно, прорыв!

http://www.osadl.org/Single-View.111+M58050282514.0.html

"This reduced the size of the preempt-rt patch by 350 kByte -
another important milestone on our road towards complete
integration of the RT tree into the mainline kernel!"


important milestone, важный этап или веха...  

ЭТАП применимо к событиям которые будут известны в будущем, т.е. переменным
перечислимого типа, при исторической оценке событий, когда события явно
можно делить на части.
Слово же ВЕХА, нихрена не определенного типа, void говоря по-нашему :)
Ибо что будя завтра, не знает даже "то, чаво не может быть".