Messages in this thread | | | Date | Mon, 10 Aug 2015 09:41:26 +1000 | From | Dave Chinner <> | Subject | Re: [PATCH v9 6/6] block: loop: support DIO & AIO |
| |
On Sun, Aug 09, 2015 at 10:27:14AM -0400, Ming Lei wrote: > On Sun, Aug 9, 2015 at 9:44 AM, Christoph Hellwig <hch@infradead.org> wrote: > > On Sun, Aug 09, 2015 at 09:04:32AM -0400, Ming Lei wrote: > >> Now the logical block size of loop is 512byte, but the sector size of > >> backing device may be 4K, so we can't do 512 byte algined direct > >> I/O to the filesystem in this situation. > >> > >> With runtime switch to buffered I/O we can fix this problem, but > >> most of times it won't fall in this case. > > > > The right way to handle this case is to not allow direct I/O at all, > > you'll be constantly switching between direct and buffered I/O > > otherwise, which is a bad idea. > > In theory we should not allow dio for this case, but in reality, > as Dave Chinner mentioned, all buffered I/O and normal dio > are page aligned, so we can make most of sane applications > benefited from this patch, and for few insane applications, > frequent swich between buffered I/O and direct I/O shouldn't > be very bad too since draining dio is just like batched sync I/O.
If Christoph thinks we should not allow this case, then go with what Christoph says.
Cheers,
Dave. -- Dave Chinner david@fromorbit.com
| |