6

stop_sched_classカーネルでの使用は何ですか? pick_next_task関数では、スケジューラは最初から次のタスクを選択しますstop_sched_classsched_classKernel でこれを削除しても問題はありませんか?

#define for_each_class(class) \
   for (class = sched_class_highest; class; class = class->next)


#define sched_class_highest (&stop_sched_class)
extern const struct sched_class stop_sched_class;

/*
 * Simple, special scheduling class for the per-CPU stop tasks:
*/
const struct sched_class stop_sched_class = {
   .next                   = &rt_sched_class,

   .enqueue_task           = enqueue_task_stop,
   .dequeue_task           = dequeue_task_stop,
   .yield_task             = yield_task_stop,

   .check_preempt_curr     = check_preempt_curr_stop,

   .pick_next_task         = pick_next_task_stop,
   .put_prev_task          = put_prev_task_stop,

 #ifdef CONFIG_SMP
   .select_task_rq         = select_task_rq_stop,
 #endif

  .set_curr_task          = set_curr_task_stop,
  .task_tick              = task_tick_stop,

  .get_rr_interval        = get_rr_interval_stop,

  .prio_changed           = prio_changed_stop,
  .switched_to            = switched_to_stop,
};
4

1 に答える 1

5

stop_sched_classは、SMPシステムで使用して、負荷分散とcpuホットプラグのためにcpuを停止します。このクラスは、スケジューリングの優先順位が最も高くなります。

システムでCONFIG_SMPが定義されていない場合は、このクラスを削除してみてください。コンパイルを成功させるには、いくつかのファイルを変更する必要があります。

于 2013-03-15T02:30:35.113 に答える