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

Исходное сообщение
"Для ядра Linux представлен планировщик задач RIFS-ES"

Отправлено opennews , 20-Июн-12 13:28 
В списке рассылки разработчиков ядра Linux представлен (https://lkml.org/lkml/2012/6/16/123) новый планировщик задач RIFS-ES (http://code.google.com/p/rifs-scheduler/), нацеленный на использование на  десктоп-системах и обеспечение максимальной производительности интерактивных приложений. В своей работы RIFS-ES использует расширенные в сторону обеспечения интерактивности элементы расчёта приоритетов, применяемые в классическом планировщике System V и лишённые свойственных CFS усложнений, используемых для оценки интерактивности.


По сравнению со штатным планировщиком CFS проект RIFS-ES демонстрирует (https://lkml.org/lkml/2012/6/18/65) довольно существенное повышение отзывчивости: пробуждение через 10 usec для RIFS-ES против 21 usec для CFS для одного клиента, 30/19 usec для двух клиентов (RIFS-ES проигрывает), 2342/4900 usec для четырёх, 6112/8068 usec для восьми и 9690/17497 для шестнадцати.


URL: https://lkml.org/lkml/2012/6/16/123
Новость: http://www.opennet.me/opennews/art.shtml?num=34144


Содержание

Сообщения в этом обсуждении
"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 13:28 
Да сколько можно? Куда их столько-то?

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено al , 20-Июн-12 13:33 
для разных задач, свой планировщик. Разве по поводу зоопарка fs кто-то возникает?

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 14:05 
> для разных задач, свой планировщик. Разве по поводу зоопарка fs кто-то возникает?

Да, возникают многие, тысячи их. В каждой теме про ext4/btrfs/ZFS/любую ФС обязательно найдётся комментарий вида "чем оно лучше ext4/btrfs/ZFS/любой другой ФС", как будто такое сравнение корректно.


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено ВовкаОсиист , 20-Июн-12 14:13 
если написали - значит нужно

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 14:15 
Необязательно.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено ВовкаОсиист , 20-Июн-12 14:16 
блеа, не дописал. Как говорилось каждый под конкретную задачу. Это опенсорс, здесь делают ПО для железа, а не железо для ПО.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 14:17 
Иногда ПО делают не для железа, а от нечего делать.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено ВовкаОсиист , 20-Июн-12 14:20 
если альтернатива сможет работать быстрей, почему-бы не попробовать.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено iav , 21-Июн-12 01:16 
Вы так говорите, будто это что-то плохое.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено ананим , 20-Июн-12 14:35 
>Это опенсорс, здесь делают ПО для железа, а не железо для ПО.

неа.
тут делают то, что кому интересно и/или выгодно.
всё остальное — следствие.


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 14:14 
Планировщик без поддержки cgroups подобен плееру без поддержки проигрывания медиа.
Конечно, можно натолкать туда всякие полезные фичи типа прожига дисков, заливания фоточек на фейсбук и отображения погоды на рабочем столе, но как плеер оно лучше не станет.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено zlo.rt.mipt.ru , 20-Июн-12 20:02 
А когда cgroups появился?
Т.е. до планировщиков не было??

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 14:20 
> По сравнению со штатным планировщиком CFS проект RIFS-ES демонстрирует довольно существенное повышение отзывчивости: пробуждение через 10 usec для RIFS-ES против 21 usec для CFS для одного клиента, 30/19 usec для двух клиентов (RIFS-ES проигрывает), 2342/4900 usec для четырёх, 6112/8068 usec для восьми и 9690/17497 для шестнадцати.

При этом в штатном планировщике, разумеется, не настроена группировка процессов, и таким образом он поставлен в заведомо невыгодное положение.
Что-то мне подсказывает, что при использовании ulatencyd или systemd, CFS порвет этот велосипед как тузик грелку.


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 16:33 
что-то мне подсказывает что с групировкой процессов мы получим щедулинг близкий к M:N - от которого автор CFS бежал и кричал что ненужно.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 23:18 
А это зависит от того, как группировать. Сильно зависит.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено ананим , 20-Июн-12 14:38 
ХА!!!
$ git clone https://code.google.com/p/rifs-scheduler/
Cloning into rifs-scheduler...
warning: You appear to have cloned an empty repository.

нас обманули! это задний проход!


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 14:49 
Видимо, у разработчика на компе уже стоит новый шедулер, и процесс, занимающийся заливкой кода в репу, отправлен в бессрочный слип (ввиду недостаточной "интерактивности").

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 15:08 
Ветки поищите

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено ананим , 20-Июн-12 15:51 
какбэ их сайт http://code.google.com/p/rifs-scheduler/source/checkout не намекает что это квест.

зыж
$ git help clone
git-clone - Clone a repository into a new directory
DESCRIPTION
       Clones a repository into a newly created directory, creates remote-tracking branches for each branch in the cloned repository


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено pavlinux , 20-Июн-12 15:00 

/*
* By default the system creates a single root-domain with all cpus as
* members (mimicking the global state we have today).
*/
static struct root_domain def_root_domain;

int __weak arch_sd_sibling_asym_packing(void)
{
           return 0*SD_ASYM_PACKING;
}

Вот как-то так... :)


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 15:11 
Моя нипанимат. Они в ретёрне умножают на ноль чтоле? Тогда просто почему не вернуть ноль? lol

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено pavlinux , 20-Июн-12 15:13 
> Моя нипанимат. Они в ретёрне умножают на ноль чтоле? Тогда просто почему
> не вернуть ноль? lol

Надо было дописать /* reserved for future usage */  
:D  

Ща ещё
---

Вот это функция resched_task из RIFS-ES


static void resched_task(struct task_struct *p)
{
        int cpu;

        assert_raw_spin_locked(&grq.lock);

        if (unlikely(test_tsk_thread_flag(p, TIF_NEED_RESCHED)))
                return;

        set_tsk_thread_flag(p, TIF_NEED_RESCHED);

        cpu = task_cpu(p);
        if (cpu == smp_processor_id())
                return;

        /* NEED_RESCHED must be visible before we test polling */
        smp_mb();
        if (!tsk_is_polling(p))
                smp_send_reschedule(cpu);
}

эта из CFQ


void resched_task(struct task_struct *p)
{
         int cpu;

         assert_raw_spin_locked(&task_rq(p)->lock);

         if (test_tsk_need_resched(p))
                 return;

         set_tsk_need_resched(p);

         cpu = task_cpu(p);
         if (cpu == smp_processor_id())
                 return;

         /* NEED_RESCHED must be visible before we test polling */
         smp_mb();
         if (!tsk_is_polling(p))
                 smp_send_reschedule(cpu);
}


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 15:18 
lol. Кстате, я конечно не супер-пупер Си программер, но увидел это - (struct task_struct *p). А эти ребята поро typedef struct foo1 foo0; знают?

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено pavlinux , 20-Июн-12 15:24 
Так нагляднее, с typedef заплутаешь.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено ананим , 20-Июн-12 15:54 
ну а тут тебя это смущает что ли?
set_tsk_thread_flag(p, TIF_NEED_RESCHED)
и
set_tsk_need_resched(p)

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено bircoph , 20-Июн-12 15:24 
Нет никакого смысла пихать typedef направо и налево. Часто удобнее оставить struct str_t *abc как есть. Это делает код понятнее, потому что не нужно грепать, что же за foo0 скрыто.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено анон , 20-Июн-12 15:17 
Может быть для того, чтобы когда захочется не 0, не забыть умножить на что полагается

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 15:19 
Ну вот когда надо будет, тогда и пишите. Пока не надо - это просто лишние такты в помойку, хотя может и не критично, в зависимости как часто эту функцию вызывают.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Crazy Alex , 20-Июн-12 16:02 
Это почти с гарантией будет соптимизировано. Не забыть - много важнее.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено bircoph , 20-Июн-12 15:25 
> Может быть для того, чтобы когда захочется не 0, не забыть умножить
> на что полагается

Для таких случаев делают комментарий, а не тупую бесполезную операцию в надежде "компилятор это исправит".


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Aquarius , 20-Июн-12 21:01 
не путай надежду с уверенностью

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено piteri , 20-Июн-12 19:48 
А что вам не нравится то?

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено pavlinux , 20-Июн-12 15:23 
#define DEFAULT_PRIO           (MAX_RT_PRIO + 20)

Ну чё, талант, Инго Молнар раньше тоже так делал,
правда он скромнее был, он всего лишь 6 приплюсовывал :)


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 15:25 
Меня терзают смутные сомнения, что это очередные авантюристы, накопипастившие код CFQ и немного его поправившие в нужную сторону.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено pavlinux , 20-Июн-12 15:34 
> Меня терзают смутные сомнения, что это очередные авантюристы, накопипастившие код CFQ
> и немного его поправившие в нужную сторону.

А это все планировщики такие будут. Они отличаются только алгоритмами
определения задачи которую нужно поставить в очередь на проц,
дальше вызывается smp_send_reschedule().
Так что, задача планировщика - это сказать "хочу вот эту!"


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено all_glory_to_the_hypnotoad , 20-Июн-12 15:33 
> 30/19 usec для двух клиентов (RIFS-ES проигрывает),

т.е. для десктопа он не нужен. Парадокс, однако


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено Аноним , 20-Июн-12 15:35 
Некоторые видят только то, что хотят видеть. Остальное - не видят в упор. Парадокс.

"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено pavlinux , 20-Июн-12 16:20 
> Остальное - не видят в упор.

Вупор обиделся и ушёл домой.


"Для ядра Linux представлен планировщик задач RIFS-ES"
Отправлено ананим , 20-Июн-12 16:29 
Парадокс этого даже не заметил.