Обработка флагов соответствующим образом в классе планирования ядра LinuxLinux

Ответить Пред. темаСлед. тема
Anonymous
 Обработка флагов соответствующим образом в классе планирования ядра Linux

Сообщение Anonymous »

Я работаю с исходным кодом ядра Linux для побочного проекта, который я хочу сделать. Я успешно зарегистрировал свой класс планирования и использовал RBTree ядра для моего HVF_RQ . Я намереваюсь, чтобы мой планировщик планировал на основе наибольшего значения, вычисленного операцией между тремя полями, которые я добавил в struct task_struct . Я создал SYSCALL, чтобы пользователь мог установить и получить эти поля для вызова. Эта функция принимает три аргумента (в соответствии с функцией указателя enqueue_task члена ched_class ), а третий - флаги int . Мой вопрос об обращении с этими флагами соответствующим образом. В файле ядра/sched/ched.h есть этот фрагмент комментариев, описывающий ситуацию:

Код: Выделить всё

/*
* {de,en}queue flags:
*
* DEQUEUE_SLEEP  - task is no longer runnable
* ENQUEUE_WAKEUP - task just became runnable
*
* SAVE/RESTORE - an otherwise spurious dequeue/enqueue, done to ensure tasks
*                are in a known state which allows modification. Such pairs
*                should preserve as much state as possible.
*
* MOVE - paired with SAVE/RESTORE, explicitly does not preserve the location
*        in the runqueue.
*
* NOCLOCK - skip the update_rq_clock() (avoids double updates)
*
* MIGRATION - p->on_rq == TASK_ON_RQ_MIGRATING (used for DEADLINE)
*
* ENQUEUE_HEAD      - place at front of runqueue (tail if not specified)
* ENQUEUE_REPLENISH - CBS (replenish runtime and postpone deadline)
* ENQUEUE_MIGRATED  - the task was migrated during wakeup
* ENQUEUE_RQ_SELECTED - ->select_task_rq() was called
*
*/
Я легко понимаю, что enqueue_wakeup является нормальным условием, когда вы вычислите ключ и вставляете задачу chadi_hvf_entity (соответствующий rade_entity я сделал) в runqueue of планировщика. Если с ним нет другого флага (используя оператор | ), вы просто поместите его в соответствующую позицию, и это так. Кроме того, я могу справедливо сказать, что enqueue_head описывает желание поставить задачу в голову Runqueue (самый правый из дерева в моем случае). Главным образом, эти два флага будут установлены в сочетании с использованием | , если вызывающий абонент намеревался срочно поместить задачу в очередь.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... ling-class
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»