Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 May 1997 23:19:27 -0600
From:      Brett Glass <brett@lariat.org>
To:        Michael Smith <msmith@atrad.adelaide.edu.au>
Cc:        msmith@atrad.adelaide.edu.au, gurney_j@resnet.uoregon.edu, rberndt@nething.com, WELCHDW@wofford.edu, HARDWARE@FreeBSD.ORG
Subject:   Re: isa bus and boca multiport boards
Message-ID:  <3.0.1.32.19970521231927.006a1a5c@lariat.org>
In-Reply-To: <199705220421.NAA18011@genesis.atrad.adelaide.edu.au>
References:  <3.0.1.32.19970521075940.0075bc30@lariat.org>

next in thread | previous in thread | raw e-mail | index | archive | help
At 01:51 PM 5/22/97 +0930, Michael Smith wrote:

>The state of the 'gone' flag may (possibly) change
>_during_the_execution_ of the ISR.

If so, it sounds as if there might be major synchronization and reentrancy
problems. Not to mention logic glitches if the port goes away at the wrong
moment.

>> You're omitting overhead! With a check of a pointer, the check of the flag,
>> loading the port number, doing the I/O, loading the loop counter, and
>> executing a conditional branch, a scan of a port costs much more.
>
>As Bruce has already (correctly) observed, other CPU operations are
>lost in the noise when coupled with I/O operations.

The extra code that's executed includes lots of BOTH.

>the 8250 family UARTS, and macrocells compatible with them, are used
>on a staggering array of computing hardware.  Look at the Alpha
>platforms that are a hot FreeBSD port target for example.

In which case, they can stick with the C version -- or, if they need
performance, do a tuned ASM version for that processor.

--Brett




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