Re: [PATCH V8 00/33] loop: Issue O_DIRECT aio using bio_vec

From: Benjamin LaHaise
Date: Wed Aug 21 2013 - 12:39:30 EST


On Wed, Aug 21, 2013 at 11:30:22AM -0500, Dave Kleikamp wrote:
> Ben,
> First, let me apologize for neglecting to copy you and linux-aio on the
> applicable patches. I've been carrying along this patchset, assuming I
> had gotten the proper cc's correct a while back, but I somehow missed
> the aio pieces.

Thanks. Let's figure out how to tackle this best.

> On 08/21/2013 08:02 AM, Benjamin LaHaise wrote:
...
> > First off, have you tested that this series actually works when merged with
> > the pending AIO changes from Kent? There a git tree with those pending
> > changes at git://git.kvack.org/~bcrl/aio-next.git , and they're in
> > linux-next.
>
> I've lightly tested the patchset against the linux-next tree, running a
> fio job on loop-mounted filesystems of different fs types.

Good to hear.
>
> > One of the major problems your changeset continues to carry is that your
> > new read_iter/write_iter operations permit blocking (implicitely), which
> > really isn't what we want for aio. If you're going to introduce a new api,
> > it should be made non-blocking, and enforce that non-blocking requirement
> > (ie warn when read_iter/write_iter methods perform blockin operations,
> > similar to the warnings when scheduling in atomic mode). This means more
> > changes for some filesystem code involved, something that people have been
> > avoiding for years, but which really needs to be done.
>
> I'm not really sure how the read_iter and write_iter operations are more
> likely to block than the current aio_read and aio_write operations. Am I
> missing something?

What you say is true, however, my point is more that it will be far easier
to fix this issue by making it a hard constraint of a new API than it is
to do a system-wide retrofit. You're converting code over to use the new
API one by one, so adding a little bit more work to try and finally sort
out this issue while making those conversions would be vrey helpful.

I'm not saying that you should be required to write the code to cope with
this additional requirement (I'm perfectly happy to help with that, and
can probably get some time for that at $work), but more that if we're
going to be changing all of the filesystems, we might as well try to get
things right.

-ben

> Thanks,
> Dave

--
"Thought is the essence of where you are now."
--
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/