Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Oct 2008 10:50:02 -0600 (MDT)
From:      "M. Warner Losh" <imp@bsdimp.com>
To:        taku@tackymt.homeip.net
Cc:        mav@FreeBSD.org, freebsd-mobile@FreeBSD.org, stas@FreeBSD.org, freebsd-arm@FreeBSD.org, freebsd-current@FreeBSD.org, zbeeble@gmail.com
Subject:   Re: RFC: PCI SD host controller driver & mmc/mmcsd modules improvements
Message-ID:  <20081016.105002.-1975970550.imp@bsdimp.com>
In-Reply-To: <20081017013946.3534221e.taku@tackymt.homeip.net>
References:  <48F75773.7030100@FreeBSD.org> <20081016.092844.-1548243521.imp@bsdimp.com> <20081017013946.3534221e.taku@tackymt.homeip.net>

next in thread | previous in thread | raw e-mail | index | archive | help
In message: <20081017013946.3534221e.taku@tackymt.homeip.net>
            Taku YAMAMOTO <taku@tackymt.homeip.net> writes:
: On Thu, 16 Oct 2008 09:28:44 -0600 (MDT)
: "M. Warner Losh" <imp@bsdimp.com> wrote:
: 
: > In message: <48F75773.7030100@FreeBSD.org>
: >             Alexander Motin <mav@FreeBSD.org> writes:
: > : No, it's opposite. With lower frequency I have proportionally smaller
: > : delays (more loop iterations). I don't remember exact numbers now, but
: > : general tendency was like: with 2400MHz - 10 iterations, with 1200MHz -
: > : 20 iterations and with 100MHz - 240 iterations. But neither syslog, nor
: > : my eyes saw any visible delay there.
: > 
: > You have more iterations.  I'd have expected less.  This doesn't say
: > anything at all about DELAY, per se.  If you are waiting for 1M cycles
: > at 100MHz, it is only .01s, while at 10MHz it is .1s.  Delay is
: > implemented by reading a counter in the 8254 that's been calibrated.
: > So unless the clock that's clocking it is running FASTER, delay won't
: > be the source of additional iterations.
: > 
: > Hmmm, looking at the i386 delay code, it looks like it depends on
: > tsc_frequency being right when tsc isn't broken.  If that's set
: > bogusly, that could cause DELAY to be slower...
: 
: I have a Core 2 Duo whose TSC ticks regardless of how EST is set.
: In conjunction of tsc_freq_changed() function defined in tsc.c,
: tsc_freq becomes lower than actual, thus shorter DELAY().
: 
: Maybe his machine has the same.

That would cause the problem.  If we're bogusly adjusting tsc_freq we
should fix that...

Warner



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