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
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