cvs commit: src/sys/sys sched.h src/sys/posix4
ksched.c src/sys/kern sched_4bsd.c sched_core.c sched_ule.c
Robert Watson
rwatson at FreeBSD.org
Thu Jun 15 09:30:18 UTC 2006
On Thu, 15 Jun 2006, Xin LI wrote:
> ÿÿ 2006-06-15ÿÿÿÿ 06:37 +0000ÿÿDavid Xuÿÿÿÿÿÿ
>> davidxu 2006-06-15 06:37:39 UTC
>>
>> FreeBSD src repository
>>
>> Modified files:
>> sys/sys sched.h
>> sys/posix4 ksched.c
>> sys/kern sched_4bsd.c sched_core.c sched_ule.c
>> Log:
>> Add scheduler API sched_relinquish(), the API is used to implement
>> yield() and sched_yield() syscalls. Every scheduler has its own way
>> to relinquish cpu, the ULE and CORE schedulers have two internal run-
>> queues, a timesharing thread which calls yield() syscall should be
>> moved to inactive queue.
>
> A question that might be related: We have sched_sizeof_proc(), etc. in
> every scheduler, which returns a constant. Is it worthy to convert them to
> constants that just expand inline during the kernel compile?
It should make no difference -- sched_sizeof_proc() is evaluated exactly once,
when the process zone is created. After that, the size is cached in the
process zone and never re-evaluated. The current model allows the size to be
calculated based on data structures private to sched_foo.c, which has some
nice implementation hiding advantages :-).
Robert N M Watson
Computer Laboratory
Universty of Cambridge
More information about the cvs-src
mailing list