Linux для всех

индекс
247,20

Я использую Brain Fuck Scheduler!



pic related

Кон Коливаc (автор знаменитых когда-то ck ядер) выпустил свой шедулер для десктопных систем под управлением linux. При этом он руководствовался не супер-честностью и мифической расширяемостью, а производительностью своего рабочего компьютера.

Обыгранная на картинке ситуация — беда многих опенсорсных программистов — они пишут фреймворки и общие-системы-всего и не желают исправлять очевидные недостатки, просто потому, что наличие этих недостатков объясняется стройностью их системы. Линус — не исключение.

Надеюсь, когда-нибудь BFS включат в ядро и его можно будет включить просто из menuconfig'a.

PS А полноэкранное видео на youtube действительно больше не тормозит! Посмотрел для теста несколько HQ трейлеров.

ck.kolivas.org/patches/bfs/bfs-faq.txt
ck.kolivas.org/patches/bfs/
+59
2 сентября 2009, 11:20
30

комментарии (72)

0
Solopov #
По названию думал, что уже кто-то поставил… и делиться впечатлениями :(

И еще — очень странное высказывание:
"
Это беда многих опенсорсных программистов, — они пишут фреймворки и общие-системы-всего и не желают исправлять очевидные недостатки, просто потому что наличие этих недостатков объясняется стройностью их системы. Линус — не исключение.
"

Сначала подумал, что автор про CK так, что не далеко от истины если вспомнить его прошлый шедулер и неготовность его мантейнить в ядре, а тут все наоборот…
+3
whoozle #
Я поставил и делюсь впечатлениями. Флеш на ютубе больше не залипает.
+1
ZloeSabo #
Что еще изменилось, по вашим ощущениям?
0
whoozle #
konsole — мой основной инструмент работы, стало запускаться моментально, после клика по иконке. А ещё у меня изредка появлялась едва уловимая задержка между нажатием на кнопку и реакцией системы(Из-за этого хочется убить всех людей!).
Не могу сказать исчезло это или нет, второй день всего пробую, пока нет.
0
ZloeSabo #
Дааа, задержка грозила душевному равновесию)
+2
Elektronik #
Может, опишете, как ставили и на какой системе?
0
whoozle #
gentoo, 2.6.30-r6

cd /usr/src/linux
patch -Np1 ../2.6.30-sched-bfs-203.patch #assuming patches are in /usr/src directory
patch -Np1 ../autoiso-xorg.patch

genkernel --save-config --color --menuconfig --install --oldconfig all #gentoo specific
+5
whoozle #
gentoo, 2.6.30-r6

извините, я по памяти писал конечно же:
patch -Np1 <../2.6.30-sched-bfs-203.patch #assuming patches are in /usr/src directory
patch -Np1 <../autoiso-xorg.patch

ничего особенного, обычный патч на ядро. Может быть есть приличные способы это сделать напрямую не патча ядро, но я уже в пижаме :)))
0
Halt #
Спасибо за минихауту. Вотт только у меня вопрос.
Скачал патчи, пропатчил. Запустил menuconfig и полез в настройки scheduler-ов, только ничего нового не нашел. Так и должно быть? Или там должна быть какая то опция, котрую надо выбрать?
0
whoozle #
Нет, ничего не надо. Всё должно работать сразу.
0
Halt #
Отлично, спасибо :-)
0
KitsonKit #
Поддерживаю просьбу предыдущего оратора. Бог с ним с Ютубом, но ускорение интерфейса — это то, что нужно!
0
sev #
Похоже, что таки дошли хоть у кого-нибудь руки сделать нормальный шедулер.
0
arrowdodger #
Сори за нубство, но шедулер это то что планирует выполнение процессов/потоков?
0
sev #
Угу, и как они будут подвигать друг друга на процессорах. Накладные расходы на переключение задач обычно высоки, поэтому и пишут один шедулер умнее другого.
–4
ivlis #
uname -a
Linux nb 2.6.27.29-0.1-default #1 SMP 2009-08-15 17:53:59 +0200 x86_64 x86_64 x86_64 GNU/Linux

Видео на ютубе не тормозит? ЧЯДНТ?

Ну хоть бы и тормозило, это же флеш, причём тут опенсорс программисты?
0
whoozle #
Я же написал при чём. Подумайте о смысле этого стрипа xkcd ещё раз.

Видео в полном экране не тормозит? Вы счасливчик! :) И ядро без preemption собрано.
–4
ivlis #
Да вот только что проверил, не тормозит.

Ещё у меня не торомозят фильмаки в 1080p закоженые в h.264. И если мощности компа хватает на это, то какого лешего должен торомозить какой-то ютуб? И если он тормозит, то как бе не шедулер виноват.

меня как-то давно тормозило, но после переезда на suse 11.1 перестало, может быть помог десятый флеш, может ещё чего.
0
whoozle #
Фильмаки у меня тоже не тормозят! И флеш десятый. При чём тут шедулер? Worst case может у него на ютубе случился, мне откуда знать? :) Quick sort тоже может как O(N2) работать.
–4
ivlis #
Если фильмаки не тормозят, а флеш тормозит, то кривизна либо в канале, либо во флеше. Ну да, более лучший шедулер, ну это круто да, я не спорю. Только по комиксу это линуксятники должны извратить свою систему, чтобы там запускался флеш, а не адобе написать нормально. Что кажется мне странным :)
НЛО прилетело и опубликовало эту надпись здесь
+1
ivlis #
Xwindow это ещё тот пережиток, с этим я не спорю.
0
AlexcYeCu #
Я думаю, что нормальная. Если вы считаете иначе, укажите лучшие графические подсистемы, в том числе укажите чем они лучше. Будет интересно почитать.
0
rgaliull #
не бывает идеальных вещей. Х во многом устарели, но часто их нечем заменить.
гугл пробует фреймбуфер… в принципе, на десктопе это вполне себе вариант…
НЛО прилетело и опубликовало эту надпись здесь
0
FloppyFormator #
Так воспроизведение видео мимо этой подсистемы ходит, и не только в Linux.
0
flyaway #
>На выкидывание её полностью и разработку своей с нуля пошел только Гугл.

Это вы про Андроид, или есть какие-то данные о ChromeOS?
0
rgaliull #
андроид тоже без иксов. прямиком фреймбуфер
НЛО прилетело и опубликовало эту надпись здесь
0
flyaway #
Это просто отлично.
НЛО прилетело и опубликовало эту надпись здесь
0
whoozle #
Да ладно вам, там ничего особенного нет. Берёте linux, настраиваете fb, SDL с fb backend'ом. Потом пишете набор виджетов на c++. Вот и весь прорыв :) Самая сложная часть — обеспечить совместимость с миллионом программ под x11. Если вы сделаете что-нибудь стоящее — основные тулкиты легко поддержат вашу систему. qt/gtk. Остальное дело времени. :)
НЛО прилетело и опубликовало эту надпись здесь
0
bruce #
Чистый софтверный фреймбуфер прилично тормозит, особенно на высоких разрешениях. Современные графические системы, тот же Quartz например, используют графические ускорители на самом низком уровне для достижения плавности прорисовки. А это уже требует качественных драйверов и т.д., и задача становится далеко не тривиальной.
+3
Elektronik #
> ЧЯДНТ?
Похоже, что не пытаетесь вникнуть в суть улучшения.
У автора видео тормозило с обычным шедулером и перестало тормозить с BFS — изменения в лучшую сторону без переписывания Adobe Flash и прочих программ.
+2
StopDesign #
А теперь можно то же самое, только для тех у кого Ubuntu..?
Для тех, кто не умеет и не хочет разбираться в тонкостях сборки ядер,
но в состоянии сделать это по хорошей инструкции.

Думаю, пост с инструкцией будет хорошо оценен в блоке Убунтариум.
+3
whoozle #
Я не умею убунту, к сожалению. Ключевое слово для debian-систем: make-kpkg.
0
Arceny #
0
whoozle #
Вот подробный мануал:
www.howtoforge.com/kernel_compilation_ubuntu
+2
Davidov #
Ссылочку проставьте на xkcd.com/619/; и title неплохо бы добавить.
0
whoozle #
fixed
0
AlexcYeCu #
Ждём включения в ядро. Коль уж cfq так и не заставили нормально работать.
0
wRAR #
cfq или CFS?
0
whoozle #
cfq — это io шедулер. «Completely Fair Queue». Это значит что каждому страждущему процессу будет предоставлена его доля IO. CFS — «Completely Fair Scheduling».
0
whoozle #
ой простите, не понял что вы имели в виду :)
0
AlexcYeCu #
Я CFS никогда не использовал, так что тут ничего сказать не могу. А вот CFQ из-за знаменитого бага во многих системах не пригоден к использованию. Если я правильно понял, BFS как раз может заменить CFQ и обойти этот баг (коль скоро его не поправили).
Но после вашего я что-то засомневался, не совсем ли разные это вещи…вопроса
0
wRAR #
CFQ — I/O scheduler, CFS — process scheduler.
А что за бага?
0
AlexcYeCu #
Так и есть, ошибся…
Бага такая, что при копировании больших объёмов информации процессор загружается под 100% за счёт i/o wait. В результате либо скорость копирования падает, либо резко снижается отзывчивость системы.
Проявляется не на всех чипсетах (но самые популярные под раздачу попали), плюс, как я понял, ярко проявляет себя в системах с 2-я и более sata-винтами (на 1 sata, ide этого бага не видел). Бага многолетняя, официально известна с ядра 2.6.17 или около того, но видел описание похожей баги ещё времён 2.6.1. Перед выходом 2.6.28 багу вроде как локализовали, обещали исправить, но воз и ныне там. Как временные меры: rt-ядра, уход с cfq, патч за авторством одного человека.
Гугл выдаёт инфу по iowait баг.
0
Arceny #
> патч за авторством одного человека

можно ли поподробнее?

А проблема да, известная и болезненная.
0
AlexcYeCu #
Гуглить по имени Jens Axboeю Он занимался патчами, но потом забросил из-за нехватки времени. А знамя никто не перехватил, увы.
0
wRAR #
Хм, CK вернулся?
+1
whoozle #
партизанщиной и антилинупсчиной занимается! растлевает молодые умы убунтологов.
0
Porfel #
Ну какого лешего я не взял с собой ноут… прийду домой с работы — накачу патч — посмотрим улучшения. Сейчас графика заметно залипает.
Ubuntu 9.04.
0
apok #
Заранее извиняюсь, но Linux как таковой для меня — черный ящик (пока), тем не менее фраза:
«PS А полноэкранное видео на youtube действительно больше не тормозит!»

сильно привлекла внимание. Перечитал несколько раз пост, комментарии, и так и не понял что именно такого сделано? Где почитать?
Если я поставлю на старую домашнюю машину Lubuntu, который судя по описанию — есть «то что доктор прописал». Смогу поставить такой «шедулер» на эту систему?
Сначала вообще подумал, что речь о каком-то аналоге crontab...
0
whoozle #
Надо собрать ядро с наложенным патчем. Как наложить патч и как собрать ядро — есть куча мануалов:
www.howtoforge.com/kernel_compilation_ubuntu
например
0
KRen #
О да!!! Или это заслуга ядра 2.6.30.5, раньше стояло 2.6.29.6, или этот патч действительно клевая штука!!!
Конфигурация:
Mandriva 2009.1, KDE 4.3, Celeron 2.4 гГц D320 (т.е. довольно старенький), 1024 DDR, Radeon 9250 128 Мб.
Интерфейс стал как в лучших традициях Fluxbox и Windows XP =)
0
posix #
Спасибо за полезную информацию, использую уже несколько дней — работает весьма стабильно.
0
mocksoul #
ну щя затестим под Athlon 3800+… уж какие у меня тормоза бывают я лучше всех знаю +))
0
mocksoul #
поставилось без проблем. Вылезло правда несколько траблов с дровами (acx и uvc), но обе — изза самого ядра 2.6.30 (конечно, solved :)).

сам scheduler действительно прост как пробка, если глянуть в исходники. Но вот особого эффекта я не заметил. На этой же машине пресловутое «ютуб на весь экран» иногда поддормаживает, тогда как в winxxp на этой же машине то же самое видео укладывается в 60-70% CPU (и, само собой, не тормозит вообще). Надо либо бенчмаркить, либо пробовать но многоядреных машинах…
0
mocksoul #
надо бы ебилд написать что ли… +)
0
mocksoul #
мм… хотя не-hd видео с ютуба теперь вообще шикарно показывается в фулскрине. Эффект подтверждаю! ))
0
whoozle #
Уже вышло 2.6.31 и новый BFS :)
НЛО прилетело и опубликовало эту надпись здесь
0
mocksoul #
да нет, как раз в генте 2.6.31 пока нет.
0
mocksoul #
ой, да-да-да не надо ругаться… сегодня уже в портежах, но ещё не стейбл :-P
0
whoozle #
Да ну и что что не стейбл? Я всегда новые ядра ставлю, к тому же Линус там наообещал всего :)
0
mocksoul #
не стейбл обещает много геморроя с внешними драйверами, даже с теми что есть в самом portage, не говоря уже о горке других. Так что фиг знает… )
0
whoozle #
У меня только nvidia-drivers и virtualbox-modules. Других драйверов внешних не держим, чего и вам желаю ;)
0
mocksoul #
Ну, видимо, у вас просто меньше весёлых девайсов =)
0
mocksoul #
в портежах генты ещё нет, да и хрен с ним, я уже вырос от экспериментов по десять часов с новехонькими ядрами… а 2.6.30 — стейбл)
0
mocksoul #
а вот уже и есть)
0
Lashezzz #
собрал 2.6.30 с 209 патчем. Гномовский свитчер действительно летает по ощущениям, многие задачи визуально быстрее выполняются. Особого улучшения youtube проигрывания fullscreen не заметил, как и было раньше. Советую ставить тем у кого кде4 с плазмой, оно может и летать начнет;) тем у кого гном, можно попробовать, несколько приятней ощущения, а у кого легкие ДЕ и ВМ — не заморачивайтесь, ибо улучшения вряд ли заметите!

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