23 Haz 2007 Cts tarihinde, S.Çağlar Onur şunları yazmıştı: > Hi Ingo; > > 23 Haz 2007 Cts tarihinde, Ingo Molnar şunları yazmıştı: > > As usual, any sort of feedback, bugreport, fix and suggestion is more > > than welcome! > > caglar@zangetsu linux-2.6 $ LC_ALL=C make > CHK include/linux/version.h > CHK include/linux/utsrelease.h > CALL scripts/checksyscalls.sh > CHK include/linux/compile.h > CC kernel/sched.o > kernel/sched.c:745:28: sched_idletask.c: No such file or directory Ahh and this happens with [1], grabbing sched_idletask.c from .18 one solves the problem... Index: linux/kernel/sched_idletask.c =================================================================== --- /dev/null +++ linux/kernel/sched_idletask.c @@ -0,0 +1,68 @@ +/* + * idle-task scheduling class. + * + * (NOTE: these are not related to SCHED_IDLE tasks which are + * handled in sched_fair.c) + */ + +/* + * Idle tasks are unconditionally rescheduled: + */ +static void check_preempt_curr_idle(struct rq *rq, struct task_struct *p) +{ + resched_task(rq->idle); +} + +static struct task_struct *pick_next_task_idle(struct rq *rq, u64 now) +{ + schedstat_inc(rq, sched_goidle); + + return rq->idle; +} + +/* + * It is not legal to sleep in the idle task - print a warning + * message if some code attempts to do it: + */ +static void +dequeue_task_idle(struct rq *rq, struct task_struct *p, int sleep, u64 now) +{ + spin_unlock_irq(&rq->lock); + printk(KERN_ERR "bad: scheduling from the idle thread!\n"); + dump_stack(); + spin_lock_irq(&rq->lock); +} + +static void put_prev_task_idle(struct rq *rq, struct task_struct *prev, u64 now) +{ +} + +static struct task_struct *load_balance_start_idle(struct rq *rq) +{ + return NULL; +} + +static void task_tick_idle(struct rq *rq, struct task_struct *curr) +{ +} + +/* + * Simple, special scheduling class for the per-CPU idle tasks: + */ +struct sched_class idle_sched_class __read_mostly = { + /* no enqueue/yield_task for idle tasks */ + + /* dequeue is not valid, we print a debug message there: */ + .dequeue_task = dequeue_task_idle, + + .check_preempt_curr = check_preempt_curr_idle, + + .pick_next_task = pick_next_task_idle, + .put_prev_task = put_prev_task_idle, + + .load_balance_start = load_balance_start_idle, + /* no .load_balance_next for idle tasks */ + + .task_tick = task_tick_idle, + /* no .task_new for idle tasks */ +}; [1] http://people.redhat.com/mingo/cfs-scheduler/sched-cfs-v2.6.22-git-v18.patch Cheers -- S.Çağlar Onur <[email protected]> http://cekirdek.pardus.org.tr/~caglar/ Linux is like living in a teepee. No Windows, no Gates and an Apache in house!
Attachment:
signature.asc
Description: This is a digitally signed message part.
- Follow-Ups:
- Re: [patch] CFS scheduler, -v18
- From: Ingo Molnar <[email protected]>
- Re: [patch] CFS scheduler, -v18
- References:
- [patch] CFS scheduler, -v18
- From: Ingo Molnar <[email protected]>
- Re: [patch] CFS scheduler, -v18
- From: "S.Çağlar Onur" <[email protected]>
- [patch] CFS scheduler, -v18
- Prev by Date: Re: [RFC PATCH 0/6] Convert all tasklets to workqueues
- Next by Date: Re: [RFC PATCH 0/6] Convert all tasklets to workqueues
- Previous by thread: Re: [patch] CFS scheduler, -v18
- Next by thread: Re: [patch] CFS scheduler, -v18
- Index(es):