Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Dec 2006 18:55:14 -0700 (MST)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        youshi10@u.washington.edu
Cc:        freebsd-current@freebsd.org
Subject:   Re: settimeofday function taking 24 - 30 minutes to complete
Message-ID:  <20061220.185514.-345500127.imp@bsdimp.com>
In-Reply-To: <45889598.3030408@u.washington.edu>
References:  <45887A31.4050801@paradise.net.nz> <790a9fff0612191741r656fbbe0ic8660a9c59ba632b@mail.gmail.com> <45889598.3030408@u.washington.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <45889598.3030408@u.washington.edu>
            Garrett Cooper <youshi10@u.washington.edu> writes:
: Scot Hetzel wrote:
: > On 12/19/06, Mark Kirkwood <markir@paradise.net.nz> wrote:
: >> Mark Kirkwood wrote:
: >>
: >> > Just tried out this on 6-STABLE
: >>
: >> > I can't get the hang at all (with or without thee extra includes):
: >> >
: >> > # time ./settimetest
: >> > INFO: Saved current time
: >> > INFO: settimeofday completed sucessfully
: >> > INFO: Reset time to original value
: >> > 0.000u 0.002s 0:00.00 0.0%      0+0k 0+0io 0pf+0w
: >> >
: >>
: >> Oops - thought I was reading -stable instead of -current list
: >> (doh).. sorry! Well at least you know it can work on *some* version of
: >> FreeBSD!....(I don't have any machines running -current at the moment to
: >> test).
: >>
: >
: > Here's the time for the test on FreeBSD/amd64 -CURRENT, update yesterday.
: >
: > hp010# date ; time ./t1 ; date
: > Tue Dec 19 19:07:33 CST 2006
: > INFO: Saved current time
: > INFO: settimeofday completed sucessfully
: > INFO: Reset time to original value
: > 0.000u 1469.241s 0:00.00 0.0%   5+175k 0+0io 0pf+0w
: > Tue Dec 19 19:07:33 CST 2006
: > hp010# date 200612191933
: > Tue Dec 19 19:33:00 CST 2006
: >
: > Scot
: Well, I'll find a random unused machine, setup FreeBSD on it with vmware 
: and then try that out. Seems interesting that it takes 30 minutes to run 
: instead of being done almost instantaneously.

It does run almost instantly if you use a time from 2000.  The date
command also causes the lockup if you say 'date 1970010100140' as
well.  Looks like there's a loop in the kernel to do division, but I
can't quite find where it is.

If you have a good test setup, maybe you can do a binary search in the
settimeofday code to find why a large leap backwards causes problems. 

Warner



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