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>
next in thread | previous in thread | raw e-mail | index | archive | help
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; >=20 > I think this is the assumption of many USB controller drivers = currently in the=20 > 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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D9ABBF2F-18D2-4CC7-99AE-247D9432D999>