Subject: CVS commit: syssrc/sys
To: None <source-changes@netbsd.org>
From: Jason R Thorpe <thorpej@netbsd.org>
List: source-changes
Date: 09/11/2001 07:32:20
Module Name: syssrc
Committed By: thorpej
Date: Tue Sep 11 04:32:20 UTC 2001
Modified Files:
syssrc/sys/ddb: db_xxx.c
syssrc/sys/kern: kern_clock.c
syssrc/sys/sys: callout.h
Log Message:
Optimization suggested by Bill Sommerfeld: Keep a hint as to the
"earliest" firing callout in a bucket. This allows us to skip
the scan up the bucket if no callouts are due in the bucket.
A cheap O(1) hint update is done at callout insertion (if new callout
is earlier than hint) and removal (is bucket empty). A thorough
refresh of the hint is done when the bucket is traversed.
This doesn't matter much on machines with small values of hz
(e.g. i386), but on systems with large values of hz (e.g. Alpha),
it has a definite positive effect.
Also, keep the callwheel stats in evcnts, so that you can view them
with "vmstat -e".
To generate a diff of this commit:
cvs rdiff -r1.12 -r1.13 syssrc/sys/ddb/db_xxx.c
cvs rdiff -r1.75 -r1.76 syssrc/sys/kern/kern_clock.c
cvs rdiff -r1.15 -r1.16 syssrc/sys/sys/callout.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.