Re: [PATCH v9 6/6] block: loop: support DIO & AIO

From: Ming Lei
Date: Sun Aug 09 2015 - 22:50:48 EST


On Sun, Aug 9, 2015 at 7:41 PM, Dave Chinner <david@xxxxxxxxxxxxx> wrote:
> 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@xxxxxxxxxxxxx> 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.

No problem, and we still may improve it in future.

Christoph, could you share your idea again about this approch?

If you still don't think it is good to switch between buffered I/O
and direct I/O, I will not do that in next post.

Thanks,
Ming

>
> Cheers,
>
> Dave.
> --
> Dave Chinner
> david@xxxxxxxxxxxxx
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/