The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Для ядра Linux представлен планировщик задач RIFS-ES"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от opennews (??) on 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.ru/opennews/art.shtml?num=34144

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от Аноним (??) on 20-Июн-12, 13:28 
Да сколько можно? Куда их столько-то?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Для ядра Linux представлен планировщик задач RIFS-ES"  +5 +/
Сообщение от al (??) on 20-Июн-12, 13:33 
для разных задач, свой планировщик. Разве по поводу зоопарка fs кто-то возникает?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Для ядра Linux представлен планировщик задач RIFS-ES"  –1 +/
Сообщение от Аноним (??) on 20-Июн-12, 14:05 
> для разных задач, свой планировщик. Разве по поводу зоопарка fs кто-то возникает?

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от ВовкаОсиист (ok) on 20-Июн-12, 14:13 
если написали - значит нужно
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Для ядра Linux представлен планировщик задач RIFS-ES"  –1 +/
Сообщение от Аноним (??) on 20-Июн-12, 14:14 
Планировщик без поддержки cgroups подобен плееру без поддержки проигрывания медиа.
Конечно, можно натолкать туда всякие полезные фичи типа прожига дисков, заливания фоточек на фейсбук и отображения погоды на рабочем столе, но как плеер оно лучше не станет.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Для ядра Linux представлен планировщик задач RIFS-ES"  +5 +/
Сообщение от Аноним (??) on 20-Июн-12, 14:15 
Необязательно.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от ВовкаОсиист (ok) on 20-Июн-12, 14:16 
блеа, не дописал. Как говорилось каждый под конкретную задачу. Это опенсорс, здесь делают ПО для железа, а не железо для ПО.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "Для ядра Linux представлен планировщик задач RIFS-ES"  +5 +/
Сообщение от Аноним (??) on 20-Июн-12, 14:17 
Иногда ПО делают не для железа, а от нечего делать.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от Аноним (??) on 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 порвет этот велосипед как тузик грелку.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от ВовкаОсиист (ok) on 20-Июн-12, 14:20 
если альтернатива сможет работать быстрей, почему-бы не попробовать.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

12. "Для ядра Linux представлен планировщик задач RIFS-ES"  +3 +/
Сообщение от ананим on 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.

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Для ядра Linux представлен планировщик задач RIFS-ES"  +4 +/
Сообщение от Аноним (??) on 20-Июн-12, 14:49 
Видимо, у разработчика на компе уже стоит новый шедулер, и процесс, занимающийся заливкой кода в репу, отправлен в бессрочный слип (ввиду недостаточной "интерактивности").
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

14. "Для ядра Linux представлен планировщик задач RIFS-ES"  +1 +/
Сообщение от pavlinux (ok) on 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;
}

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от Аноним (??) on 20-Июн-12, 15:08 
Ветки поищите
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

16. "Для ядра Linux представлен планировщик задач RIFS-ES"  +2 +/
Сообщение от Аноним (??) on 20-Июн-12, 15:11 
Моя нипанимат. Они в ретёрне умножают на ноль чтоле? Тогда просто почему не вернуть ноль? lol
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

17. "Для ядра Linux представлен планировщик задач RIFS-ES"  +1 +/
Сообщение от pavlinux (ok) on 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);
}

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "Для ядра Linux представлен планировщик задач RIFS-ES"  +1 +/
Сообщение от анон on 20-Июн-12, 15:17 
Может быть для того, чтобы когда захочется не 0, не забыть умножить на что полагается
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

19. "Для ядра Linux представлен планировщик задач RIFS-ES"  –1 +/
Сообщение от Аноним (??) on 20-Июн-12, 15:18 
lol. Кстате, я конечно не супер-пупер Си программер, но увидел это - (struct task_struct *p). А эти ребята поро typedef struct foo1 foo0; знают?
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

20. "Для ядра Linux представлен планировщик задач RIFS-ES"  –2 +/
Сообщение от Аноним (??) on 20-Июн-12, 15:19 
Ну вот когда надо будет, тогда и пишите. Пока не надо - это просто лишние такты в помойку, хотя может и не критично, в зависимости как часто эту функцию вызывают.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

22. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от pavlinux (ok) on 20-Июн-12, 15:24 
Так нагляднее, с typedef заплутаешь.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

23. "Для ядра Linux представлен планировщик задач RIFS-ES"  +1 +/
Сообщение от bircoph (ok) on 20-Июн-12, 15:24 
Нет никакого смысла пихать typedef направо и налево. Часто удобнее оставить struct str_t *abc как есть. Это делает код понятнее, потому что не нужно грепать, что же за foo0 скрыто.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

24. "Для ядра Linux представлен планировщик задач RIFS-ES"  +1 +/
Сообщение от bircoph (ok) on 20-Июн-12, 15:25 
> Может быть для того, чтобы когда захочется не 0, не забыть умножить
> на что полагается

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

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

25. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от Аноним (??) on 20-Июн-12, 15:25 
Меня терзают смутные сомнения, что это очередные авантюристы, накопипастившие код CFQ и немного его поправившие в нужную сторону.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

28. "Для ядра Linux представлен планировщик задач RIFS-ES"  +2 +/
Сообщение от Аноним (??) on 20-Июн-12, 15:35 
Некоторые видят только то, что хотят видеть. Остальное - не видят в упор. Парадокс.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

29. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от ананим on 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

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

30. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от ананим on 20-Июн-12, 15:54 
ну а тут тебя это смущает что ли?
set_tsk_thread_flag(p, TIF_NEED_RESCHED)
и
set_tsk_need_resched(p)
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

31. "Для ядра Linux представлен планировщик задач RIFS-ES"  +2 +/
Сообщение от Crazy Alex (ok) on 20-Июн-12, 16:02 
Это почти с гарантией будет соптимизировано. Не забыть - много важнее.
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

33. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от ананим on 20-Июн-12, 16:29 
Парадокс этого даже не заметил.
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

34. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от Аноним (??) on 20-Июн-12, 16:33 
что-то мне подсказывает что с групировкой процессов мы получим щедулинг близкий к M:N - от которого автор CFS бежал и кричал что ненужно.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

35. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от piteri email(ok) on 20-Июн-12, 19:48 
А что вам не нравится то?
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

36. "Для ядра Linux представлен планировщик задач RIFS-ES"  +1 +/
Сообщение от zlo.rt.mipt.ru email on 20-Июн-12, 20:02 
А когда cgroups появился?
Т.е. до планировщиков не было??
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

37. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от Aquarius (ok) on 20-Июн-12, 21:01 
не путай надежду с уверенностью
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

38. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от Аноним (??) on 20-Июн-12, 23:18 
А это зависит от того, как группировать. Сильно зависит.
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

39. "Для ядра Linux представлен планировщик задач RIFS-ES"  +/
Сообщение от iav (ok) on 21-Июн-12, 01:16 
Вы так говорите, будто это что-то плохое.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру