On Thu, Jun 23, 2011 at 06:36:31AM -0700, Matt Thomas wrote: > > On Jun 23, 2011, at 4:41 AM, Thor Lancelot Simon wrote: > > > On Thu, Jun 23, 2011 at 03:36:25PM +0700, Robert Elz wrote: > >> Date: Wed, 22 Jun 2011 19:30:55 -0400 (EDT) > >> From: der Mouse <mo...@rodents-montreal.org> > >> Message-ID: <201106222330.taa28...@sparkle.rodents-montreal.org> > >> > >> | But the interface is much older than that, and, even if it's not > >> | codified, there's a lot of history behind the notion that userland > >> | alignment of write() buffers affects, at most, performance, to the > >> | point where I consider it part of the interface. > >> > >> Not on access to raw devices it isn't, and never was - what Erik Fair > >> said (Message-id: <5f005e6a-5441-4bec-bb3c-4a9b79584...@netbsd.org>) > >> was 100% correct - if you're using a raw device, it is up to the > >> application to meet whatever the requirements of that particular device > >> are, because one of the properties of raw devices is that they don't > >> do any kind of rebuffering of data (and the driver must not - that is > >> a part of the interface contract). > > > > That doesn't seem like it can really be right. There are plenty of > > systems where devices cannot DMA from user addresses. > > Really? That seems unlikely.
Any system where some devices have a limited range of DMA addresses will see this kind of "raw" I/O get bounced, no? Think of an ISA SCSI controller. And then there are weird cases like the pmax where the device can do DMA but there's a buffer in the middle anyway. -- Thor Lancelot Simon t...@panix.com "All of my opinions are consistent, but I cannot present them all at once." -Jean-Jacques Rousseau, On The Social Contract