Re: too short/too long (sys/kern_tc.c)

From: Poul-Henning Kamp <phk_at_phk.freebsd.dk>
Date: Tue, 27 Feb 2007 17:34:23 +0000
In message <45E43984.4020809_at_freebsd.org>, Eric Anderson writes:

>When I boot a -CURRENT box with boot verbose enabled inside qemu, I see
>one of these messages about every second:
>
>15.f68c5ee76faebe10 too short
>16.0f822e13092c5580 too long

This is a symptom of lousy scheduling or even worse interrupt
latency.

In your case +0.060/-0.036 sec per 16 seconds or a couple of percent
in relative terms.  (The printf is counter intuitive: the integer
part is in decimal).

I will readily admit that the 1/256 of a second limit is chosen
pretty much at random, but with an eye to allowing a division
by 16 to get close the right result.

All of this futz is of course to avoid floating point in the kernel.

As to why:  My main suspect would be the BIOS/ACPI/SMM code, with
a keen eye to the new interrupt filtering code and what it might
do to the clock/scheduling interrupts.

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk_at_FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.
Received on Tue Feb 27 2007 - 16:34:26 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:06 UTC