idle threads

2010-04-23 Thread Matthew Fleming
I'm looking at kern_idle.c in stable/7 and I don't quite follow how idle
threads work.  The kthread_create(9) call does not pass in a function
pointer, so what code does a processor run when there is no other
runnable thread?

Thanks,
matthew
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


Re: idle threads

2010-04-23 Thread Attilio Rao
2010/4/24 Matthew Fleming matthew.flem...@isilon.com:
 I'm looking at kern_idle.c in stable/7 and I don't quite follow how idle
 threads work.  The kthread_create(9) call does not pass in a function
 pointer, so what code does a processor run when there is no other
 runnable thread?

In STABLE_7:

...
#ifdef SMP
SLIST_FOREACH(pc, cpuhead, pc_allcpu) {
error = kthread_create(sched_idletd, NULL, p,
RFSTOPPED | RFHIGHPID, 0, idle: cpu%d, pc-pc_cpuid);
pc-pc_idlethread = FIRST_THREAD_IN_PROC(p);
#else
error = kthread_create(sched_idletd, NULL, p,
RFSTOPPED | RFHIGHPID, 0, idle);
PCPU_SET(idlethread, FIRST_THREAD_IN_PROC(p));
#endif
...

then they rightly passes sched_idletd(). Any scheduler may define its
own version of sched_idletd().
NULL is just the argument passed that is not meaningful.
Or maybe I'm not understanding your question?

Attilio


-- 
Peace can only be achieved by understanding - A. Einstein
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org


RE: idle threads

2010-04-23 Thread Matthew Fleming
 then they rightly passes sched_idletd(). Any scheduler may define its
 own version of sched_idletd().

Oops, youre right, I was just unable to read at the end of the day on Friday.

Thanks!
matthew
___
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to freebsd-hackers-unsubscr...@freebsd.org