From: Artem Bityutskiy <dedekind1@gmail.com>
To: Brian Norris <computersforpeace@gmail.com>,
Richard Weinberger <richard@nod.at>
Cc: Dongsheng Yang <yangds.fnst@cn.fujitsu.com>,
linux-mtd@lists.infradead.org, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] ubifs: Allow O_DIRECT
Date: Mon, 24 Aug 2015 10:13:25 +0300 [thread overview]
Message-ID: <1440400405.15510.29.camel@gmail.com> (raw)
In-Reply-To: <20150820204933.GG74600@google.com>
On Thu, 2015-08-20 at 13:49 -0700, Brian Norris wrote:
> Pardon the innocent bystander's comment, but:
>
> On Thu, Aug 20, 2015 at 01:40:02PM +0200, Richard Weinberger wrote:
> > Am 20.08.2015 um 13:31 schrieb Artem Bityutskiy:
> > > On Thu, 2015-08-20 at 11:00 +0800, Dongsheng Yang wrote:
> > > > On 08/20/2015 04:35 AM, Richard Weinberger wrote:
> > > > > Currently UBIFS does not support direct IO, but some
> > > > > applications
> > > > > blindly use the O_DIRECT flag.
> > > > > Instead of failing upon open() we can do better and fall back
> > > > > to buffered IO.
> > > >
> > > > Hmmmm, to be honest, I am not sure we have to do it as Dave
> > > > suggested. I think that's just a work-around for current
> > > > fstests.
> > > >
> > > > IMHO, perform a buffered IO when user request direct IO without
> > > > any warning sounds not a good idea. Maybe adding a warning
> > > > would
> > > > make it better.
> > > >
> > > > I think we need more discussion about AIO&DIO in ubifs, and
> > > > actually
> > > > I have a plan for it. But I have not listed the all cons and
> > > > pros of
> > > > it so far.
> > > >
> > > > Artem, what's your opinion?
> > >
> > > Yes, this is my worry too.
> > >
> > > Basically, we need to see what is the "common practice" here, and
> > > follow it. This requires a small research. What would be the most
> > > popular Linux FS which does not support direct I/O? Can we check
> > > what
> > > it does?
> >
> > All popular filesystems seem to support direct IO.
> > That's the problem, application do not expect O_DIRECT to fail.
>
> Why can't we just suggest fixing the applications? The man pages for
> O_DIRECT clearly document the EINVAL return code:
>
> EINVAL The filesystem does not support the O_DIRECT flag. See NOTES
> for more information.
>
> and under NOTES:
>
> O_DIRECT support was added under Linux in kernel version 2.4.10.
> Older Linux kernels simply ignore this flag. Some filesystems may
> not
> implement the flag and open() will fail with EINVAL if it is used.
That's an option.
When writing the code, we were defensive and preferred to error out for
everything we do not support. This is generally a good SW engineering
practice.
Now, some user-space fails when direct I/O is not supported. We can
chose to fake direct I/O or fix user-space. The latter seems to be the
preferred course of actions, and you are correctly pointing the man
page.
However, if
1. we are the only FS erroring out on O_DIRECT
2. other file-systems not supporting direct IO just fake it
we may just follow the crowd and fake it too.
I am kind of trusting Richard here - I assume he did the research and
the above is the case, this is why I am fine with his patch.
Does this logic seem acceptable to you? Other folk's opinion would be
great to hear.
Artem.
next prev parent reply other threads:[~2015-08-24 7:13 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-19 20:35 [PATCH 1/2] ubifs: Remove dead xattr code Richard Weinberger
2015-08-19 20:35 ` [PATCH 2/2] ubifs: Allow O_DIRECT Richard Weinberger
2015-08-20 3:00 ` Dongsheng Yang
2015-08-20 6:42 ` Richard Weinberger
2015-08-20 7:14 ` Dongsheng Yang
2015-08-20 11:31 ` Artem Bityutskiy
2015-08-20 11:40 ` Richard Weinberger
2015-08-20 12:34 ` Artem Bityutskiy
2015-08-24 7:18 ` Artem Bityutskiy
2015-08-24 7:17 ` Dongsheng Yang
2015-08-24 7:20 ` Dongsheng Yang
2015-08-24 8:06 ` Christoph Hellwig
2015-08-20 20:49 ` Brian Norris
2015-08-24 7:13 ` Artem Bityutskiy [this message]
2015-08-24 7:53 ` Christoph Hellwig
2015-08-24 8:02 ` Artem Bityutskiy
2015-08-24 8:03 ` Christoph Hellwig
2015-08-24 8:00 ` Dongsheng Yang
2015-08-24 9:34 ` Artem Bityutskiy
2015-08-24 9:35 ` Richard Weinberger
2015-08-24 16:18 ` Brian Norris
2015-08-24 17:19 ` Jeff Moyer
2015-08-24 23:46 ` Dave Chinner
2015-08-25 1:28 ` Chris Mason
2015-08-25 15:48 ` Artem Bityutskiy
2015-08-25 14:00 ` Jeff Moyer
2015-08-25 14:13 ` Chris Mason
2015-08-25 14:18 ` Jeff Moyer
2015-08-20 11:29 ` Artem Bityutskiy
2015-08-20 2:48 ` [PATCH 1/2] ubifs: Remove dead xattr code Dongsheng Yang
2015-08-20 6:42 ` Artem Bityutskiy
2015-08-20 6:45 ` Richard Weinberger
2015-08-26 14:15 ` Josh Cartwright
2015-08-27 1:00 ` Dongsheng Yang
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=1440400405.15510.29.camel@gmail.com \
--to=dedekind1@gmail.com \
--cc=computersforpeace@gmail.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=richard@nod.at \
--cc=yangds.fnst@cn.fujitsu.com \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).