Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 14 Oct 2003 10:45:19 -0700 (PDT)
From:      Nate Lawson <nate@root.org>
To:        "M. Warner Losh" <imp@bsdimp.com>
Cc:        current@freebsd.org
Subject:   Re: Interrupt statistics?
Message-ID:  <20031014104224.R31046@root.org>
In-Reply-To: <20031013.225519.19308181.imp@bsdimp.com>
References:  <20031011234314.P23991@root.org> <20031012.095503.129593225.imp@bsdimp.com> <20031013.225519.19308181.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 13 Oct 2003, M. Warner Losh wrote:
> In message: <20031013105145.J28323@root.org>
>             Nate Lawson <nate@root.org> writes:
> : Given that, my biggest concern now is IO corruption.  Are there any
> : devices that have a low interrupt rate (or bus mastering rate) that cannot
> : handle a few hundred us latency added to their handler startup?  I'm
> : thinking something like a floppy drive where the time between interrupts
> : is great enough that cpu_idle() is called but that need to be serviced
> : quickly or data is over/underrun.
>
> sio/uart
>
> At 115200 baud, you have 173us to service the interrupt when the FIFO
> interrupt level is set to HI.  At 460800 at HI you have 43us.  With
> the more conservative MED settings, these numbers are 4 times better
> (670us and 173us).  200us is smack dab in the middle of these times.
> This is inbound data, so things could be idle and there be issues.
>
> Not sure about other devices.

Ok, I've instrumented the driver and found that most of the time, sleeps
are 2-6 ms.  Once in a while, they are a few hundred us.  Rarely, they are
tens of us.  I'll test the driver with periodic serial IO to see if there
is any data loss.  I assume it's ok to tell people who are running high
serial port speeds to disable the lowest sleep states.

-Nate



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