Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 28 Oct 2011 10:04:56 -0600
From:      Warner Losh <imp@bsdimp.com>
To:        Hans Petter Selasky <hselasky@c2i.net>
Cc:        Adrian Chadd <adrian@freebsd.org>, freebsd-arch@freebsd.org
Subject:   Re: newbus IO ordering semantics - moving forward
Message-ID:  <D9ABBF2F-18D2-4CC7-99AE-247D9432D999@bsdimp.com>
In-Reply-To: <201110280915.18111.hselasky@c2i.net>
References:  <CAJ-VmonFJG3xLn2JvarOUN6o-e7MC%2BA%2B=W9_vocZqY6L3CmTmQ@mail.gmail.com> <201110280915.18111.hselasky@c2i.net>

index | next in thread | previous in thread | raw e-mail


On Oct 28, 2011, at 1:15 AM, Hans Petter Selasky wrote:

> On Thursday 27 October 2011 22:28:13 Adrian Chadd wrote:
>> * Make the bus default to use ordered semantics, much like what Linux
>> does - ie, all IO read/writes (io or memory) are in-order and flushed
>> with a barrier;
> 
> I think this is the assumption of many USB controller drivers currently in the 
> tree.

The ordering guarantees aren't as random as Adrian suggests.  All writes are posted before any reads is about all you can count on.  Most drivers naturally cope with this well.  All reads have to be synchronous by their very nature and in-order.  There's more liberty taken with writes wrt ordering.

Where it falls down is DMA or MSI.  Both of those have writes from the device to the system memory, and ordering of the completion of those relative to other things isn't completely guaranteed.

Warner



home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D9ABBF2F-18D2-4CC7-99AE-247D9432D999>