From: Tejun Heo <tj@kernel.org>
To: Kent Overstreet <koverstreet@google.com>
Cc: Zach Brown <zab@zabbo.net>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
tytso@google.com, Dave Kleikamp <dave.kleikamp@oracle.com>,
Dmitry Monakhov <dmonakhov@openvz.org>,
"Maxim V. Patlasov" <mpatlasov@parallels.com>,
michael.mesnier@intel.com, jeffrey.d.skirvin@intel.com,
Martin Petersen <martin.petersen@oracle.com>
Subject: Re: [RFC, PATCH] Extensible AIO interface
Date: Thu, 4 Oct 2012 06:58:06 +0900 [thread overview]
Message-ID: <20121003215806.GA19248@localhost> (raw)
In-Reply-To: <20121003030020.GB19788@moria.home.lan>
Hello, Kent.
On Tue, Oct 02, 2012 at 08:00:20PM -0700, Kent Overstreet wrote:
> > However, I don't think it's a good idea to try to implement something
> > which is a neutral transport of opaque data between userland and lower
> > layers. Things like that sound attractive with unlimited
> > possibilities but reality seems to have the tendancy to make a big
> > mess out of setups like that.
>
> I don't see how the "neutral transport of opaque data" itself is a bad
> thing. We want something simple and sane to build actual interfaces on
> top of - once we've got that, we can either build clean generic well
> defined interfaces or we can make a mess like with ioctls :P
>
> It's like any other mechanism. There's good syscalls and bad syscalls...
Depending on what a feature aims for, the design and implementation
vary greatly. If you go for completely generic extensible stuff which
can be used to warp space-time continuum, it's easy to end up with a
monstrosity with generic and programmable parser, verifier, accessor
and so on.
> Say we implement an attr to control a block layer cache. That attr could
> be parsed/validated in high level code (if there's any to do) - that I
> don't object to. But the high level code isn't going to /know/ whether
> there was any block cache in the stack that handled the attr. If the
> attr is passed down to the block cache, that block cache can return that
> it was handled.
My point is that if it doesn't fit the generic abstract model as in
fadvise(2), it probably isn't worth supporting in any generic manner.
> > It's okay to allow some side channel thing for specific hacky uses but
> > I really hope the general design were focused around properly
> > abstracted attributes which can be understood and handled by the upper
> > layer.
>
> Completely agreed. I want to leave that side channel open for
> experimentation, and so we have a way of implementing one off hacky
> stuff when we need to - but normal mainline stuff should be sane and
> well designed.
So, I think we can aim for something simple and modest (the only thing
I can think of at the moment is task association) and provide simple
framework which can be used for specific custom usages. Let's please
not go overboard with generic parser / verifier which supports pointer
indirection or whatnot.
Thanks.
--
tejun
next prev parent reply other threads:[~2012-10-03 21:58 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-01 22:23 [RFC, PATCH] Extensible AIO interface Kent Overstreet
2012-10-01 23:12 ` Zach Brown
2012-10-01 23:22 ` Kent Overstreet
2012-10-01 23:44 ` Zach Brown
2012-10-02 0:22 ` Kent Overstreet
2012-10-02 17:43 ` Zach Brown
2012-10-02 21:41 ` Kent Overstreet
2012-10-03 1:41 ` Tejun Heo
2012-10-03 3:00 ` Kent Overstreet
2012-10-03 21:58 ` Tejun Heo [this message]
2012-10-04 19:50 ` Kent Overstreet
2012-10-02 0:47 ` Kent Overstreet
2012-10-02 22:34 ` Martin K. Petersen
2012-10-02 17:41 ` Jeff Moyer
2012-10-03 0:20 ` Kent Overstreet
2012-10-03 1:28 ` Dave Chinner
2012-10-03 2:41 ` Kent Overstreet
2012-10-04 1:04 ` Dave Chinner
2012-10-03 19:15 ` Jeff Moyer
2012-10-04 19:37 ` Kent Overstreet
2012-10-02 19:34 ` Andi Kleen
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=20121003215806.GA19248@localhost \
--to=tj@kernel.org \
--cc=dave.kleikamp@oracle.com \
--cc=dmonakhov@openvz.org \
--cc=jeffrey.d.skirvin@intel.com \
--cc=koverstreet@google.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.petersen@oracle.com \
--cc=michael.mesnier@intel.com \
--cc=mpatlasov@parallels.com \
--cc=tytso@google.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: link
Be 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.