newbus IO ordering semantics - moving forward

Adrian Chadd adrian at freebsd.org
Thu Oct 27 20:49:14 UTC 2011


On 28 October 2011 04:43, Warner Losh <imp at bsdimp.com> wrote:

> Having an option to support lazy would be easy to code up on x86 where it isn't needed.  However, on some architectures, the bus space routines are implemented as a series of function calls from a table that's passed around in the bus_space_t.  Those architectures it would be hard to implement differing behavior like you propose.

Right, but then wouldn't it just need to be:

(do bus op)
if (bit is set)
  bus_space_barrier(address range of allocation);

I haven't looked to see whether the relevant information is currently
exposed to those functions. This was just an idea to meet half way
between what newbus documentation says, and what code actually
implements.

> Having it whine on lazy will ensure that lazy is never used since such a message will "scare the horses" and people will stamped to using the synchronous one.
>
> One question: What's the slowdown from making everything synchronous?

I have no idea. Which architectures would benefit? MIPS? sparc? arm? ia64? PPC?


Adrian


More information about the freebsd-arch mailing list