Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 27 Feb 2007 17:34:23 +0000
From:      "Poul-Henning Kamp" <phk@phk.freebsd.dk>
To:        Eric Anderson <anderson@freebsd.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: too short/too long (sys/kern_tc.c) 
Message-ID:  <39154.1172597663@critter.freebsd.dk>
In-Reply-To: Your message of "Tue, 27 Feb 2007 08:00:36 CST." <45E43984.4020809@freebsd.org> 

next in thread | previous in thread | raw e-mail | index | archive | help
In message <45E43984.4020809@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@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.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?39154.1172597663>