From: Benjamin LaHaise <bcrl@kvack.org> To: Dave Kleikamp <dave.kleikamp@oracle.com> Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Andrew Morton <akpm@linux-foundation.org>, "Maxim V. Patlasov" <mpatlasov@parallels.com>, Zach Brown <zab@zabbo.net>, linux-aio@kvack.org Subject: Re: [PATCH V8 00/33] loop: Issue O_DIRECT aio using bio_vec Date: Wed, 21 Aug 2013 12:39:25 -0400 [thread overview] Message-ID: <20130821163925.GI13330@kvack.org> (raw) In-Reply-To: <5214EB1E.5050407@oracle.com> 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."
WARNING: multiple messages have this Message-ID (diff)
From: Benjamin LaHaise <bcrl@kvack.org> To: Dave Kleikamp <dave.kleikamp@oracle.com> Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Andrew Morton <akpm@linux-foundation.org>, "Maxim V. Patlasov" <mpatlasov@parallels.com>, Zach Brown <zab@zabbo.net>, linux-aio@kvack.org Subject: Re: [PATCH V8 00/33] loop: Issue O_DIRECT aio using bio_vec Date: Wed, 21 Aug 2013 12:39:25 -0400 [thread overview] Message-ID: <20130821163925.GI13330@kvack.org> (raw) In-Reply-To: <5214EB1E.5050407@oracle.com> 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, send a message with 'unsubscribe linux-aio' in the body to majordomo@kvack.org. For more info on Linux AIO, see: http://www.kvack.org/aio/ Don't email: <a href=mailto:"aart@kvack.org">aart@kvack.org</a>
next prev parent reply other threads:[~2013-08-21 16:39 UTC|newest] Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top 2013-07-25 17:50 [PATCH V8 00/33] loop: Issue O_DIRECT aio using bio_vec Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 01/33] iov_iter: move into its own file Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 02/33] iov_iter: iov_iter_copy_from_user() should use non-atomic copy Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 03/33] iov_iter: add copy_to_user support Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 04/33] iov_iter: add __iovec_copy_to_user() Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 05/33] fuse: convert fuse to use iov_iter_copy_[to|from]_user Dave Kleikamp 2013-07-25 17:50 ` Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 06/33] iov_iter: hide iovec details behind ops function pointers Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 07/33] iov_iter: ii_iovec_copy_to_user should pre-fault user pages Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 08/33] iov_iter: add bvec support Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 09/33] iov_iter: add a shorten call Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 10/33] iov_iter: let callers extract iovecs and bio_vecs Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 11/33] dio: Convert direct_IO to use iov_iter Dave Kleikamp 2013-08-23 15:48 ` Geert Uytterhoeven 2013-08-23 15:48 ` Geert Uytterhoeven 2013-07-25 17:50 ` [PATCH V8 12/33] dio: add bio_vec support to __blockdev_direct_IO() Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 13/33] fs: pull iov_iter use higher up the stack Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 14/33] aio: add aio_kernel_() interface Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 15/33] aio: add aio support for iov_iter arguments Dave Kleikamp 2013-08-21 13:55 ` Benjamin LaHaise 2013-08-30 20:05 ` Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 16/33] bio: add bvec_length(), like iov_length() Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 17/33] loop: use aio to perform io on the underlying file Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 18/33] fs: create file_readable() and file_writable() functions Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 19/33] fs: use read_iter and write_iter rather than aio_read and aio_write Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 20/33] fs: add read_iter and write_iter to several file systems Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 21/33] ocfs2: add support for read_iter and write_iter Dave Kleikamp 2013-07-25 17:50 ` [Ocfs2-devel] " Dave Kleikamp 2013-07-25 17:50 ` Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 22/33] ext4: " Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 23/33] nfs: add support for read_iter, write_iter Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 24/33] nfs: simplify swap Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 25/33] btrfs: add support for read_iter and write_iter Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 26/33] block_dev: add support for read_iter, write_iter Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 27/33] xfs: add support for read_iter and write_iter Dave Kleikamp 2013-07-25 17:50 ` Dave Kleikamp 2013-07-26 11:51 ` Dave Chinner 2013-07-26 11:51 ` Dave Chinner 2013-07-25 17:50 ` [PATCH V8 28/33] gfs2: Convert aio_read/write ops to read/write_iter Dave Kleikamp 2013-07-25 17:50 ` [Cluster-devel] " Dave Kleikamp 2013-07-25 17:50 ` Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 29/33] udf: convert file ops from aio_read/write " Dave Kleikamp 2013-07-25 21:34 ` Jan Kara 2013-07-25 17:50 ` [PATCH V8 30/33] afs: add support for read_iter and write_iter Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 31/33] ecrpytfs: Convert aio_read/write ops to read/write_iter Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 32/33] ubifs: convert file ops from aio_read/write " Dave Kleikamp 2013-07-25 17:50 ` Dave Kleikamp 2013-07-25 17:50 ` Dave Kleikamp 2013-07-25 17:50 ` [PATCH V8 33/33] tmpfs: add support for read_iter and write_iter Dave Kleikamp 2013-07-30 21:28 ` [PATCH V8 00/33] loop: Issue O_DIRECT aio using bio_vec Andrew Morton 2013-07-31 0:43 ` Dave Chinner 2013-07-31 6:40 ` Sedat Dilek 2013-07-31 8:41 ` Sedat Dilek 2013-07-31 11:22 ` Sedat Dilek 2013-07-31 9:51 ` Maxim Patlasov 2013-08-01 8:58 ` Christoph Hellwig 2013-08-01 13:04 ` Dave Kleikamp 2013-08-02 10:48 ` Christoph Hellwig 2013-08-20 13:00 ` Christoph Hellwig 2013-08-20 19:13 ` Dave Kleikamp 2013-08-21 0:14 ` Stephen Rothwell 2013-08-21 5:35 ` Sedat Dilek 2013-08-20 22:46 ` Andrew Morton 2013-08-21 13:02 ` Benjamin LaHaise 2013-08-21 13:02 ` Benjamin LaHaise 2013-08-21 16:30 ` Dave Kleikamp 2013-08-21 16:30 ` Dave Kleikamp 2013-08-21 16:39 ` Benjamin LaHaise [this message] 2013-08-21 16:39 ` Benjamin LaHaise 2013-08-21 17:12 ` Dave Kleikamp 2013-08-21 17:12 ` Dave Kleikamp 2013-08-21 19:30 ` Andrew Morton 2013-08-21 19:30 ` Andrew Morton 2013-08-21 20:24 ` Benjamin LaHaise 2013-08-21 20:24 ` Benjamin LaHaise 2013-10-14 15:07 ` Christoph Hellwig 2013-10-14 21:29 ` Benjamin LaHaise 2013-10-14 21:29 ` Benjamin LaHaise 2013-10-15 16:55 ` Christoph Hellwig 2013-10-15 17:14 ` Benjamin LaHaise 2013-10-15 17:14 ` Benjamin LaHaise 2013-10-15 17:18 ` Christoph Hellwig 2013-10-15 17:18 ` Christoph Hellwig 2013-10-15 17:53 ` Dave Kleikamp 2013-10-15 17:53 ` Dave Kleikamp 2014-12-31 20:38 ` Sedat Dilek 2014-12-31 21:52 ` Dave Kleikamp 2014-12-31 22:35 ` Sedat Dilek 2015-01-01 0:52 ` Ming Lei 2015-01-05 19:24 ` Maxim Patlasov 2015-01-06 13:18 ` Ming Lei 2015-01-10 16:51 ` Ming Lei
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20130821163925.GI13330@kvack.org \ --to=bcrl@kvack.org \ --cc=akpm@linux-foundation.org \ --cc=dave.kleikamp@oracle.com \ --cc=linux-aio@kvack.org \ --cc=linux-fsdevel@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mpatlasov@parallels.com \ --cc=zab@zabbo.net \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.