From: "Dilger, Andreas" <andreas.dilger@intel.com>
To: Christoph Hellwig <hch@infradead.org>
Cc: Xiong Zhou <jencce.kernel@gmail.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Peng Tao <bergwolf@gmail.com>, Paul Bolle <pebolle@tiscali.nl>,
Jiri Kosina <trivial@kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devel@driverdev.osuosl.org" <devel@driverdev.osuosl.org>
Subject: Re: [PATCH v2] staging/lustre: lloop depends on BLOCK
Date: Wed, 7 Aug 2013 07:45:17 +0000 [thread overview]
Message-ID: <CE26E579.5A0ED%andreas.dilger@intel.com> (raw)
In-Reply-To: <20130802104930.GB1718@infradead.org>
On 2013/08/02 4:49 AM, "Christoph Hellwig" <hch@infradead.org> wrote:
>On Thu, Aug 01, 2013 at 07:57:22PM +0000, Dilger, Andreas wrote:
>> It provides significant performance improvement for network IO on
>>Lustre.
>> It bypasses DLM locking in Lustre and the VFS layer on the client,
>>copying
>> in the loop driver, and page-by-page IO submission in the normal IO
>>path.
>
>Part of being upstream is improving existing drivers instead of copy and
>pasting them. Please take a Look at Shaggys in-kernel direct I/O and
>loop improvements and submit any incremental improvements ontop of that
>one.
The problem still remains that the kernel loop driver eventually depends on
a local block device for the pages/bios to be written. The Lustre lloop
driver bypasses the VFS and block layer to generate RPCs from the submitted
pages to RDMA over the network without a data copy.
I wouldn't think that anyone would want a Lustre-specific RPC engine in the
standard loop.c file, nor would it be practical due to symbol dependencies.
I could imagine being able to register do_bio_lustrebacked() as a BIO
submission
routine instead of do_bio_filebacked(), along with some private data to
link
the loop file to the underlying storage (in Lustre's case an object layout
and
a preallocated I for generating the RPC).
How to register this from userspace compared to a normal file-backed loop
might be a bit tricky. Lustre uses its own ioctls to register/deregister
the
device, though I could imagine some kind of per-file(system) method table
for
specifying the underlying bio submission routine.
In any case, rewriting the lloop/loop driver to merge this functionality
is not
high on the priority list compared to other Lustre code that needs to be
cleaned
up before it can be merged into the main kernel tree. Can we leave this
code
as-is for now, and decide whether to rewrite or remove it when we are
closer to
having the rest of the code cleaned up?
Cheers, Andreas
--
Andreas Dilger
Lustre Software Architect
Intel High Performance Data Division
next prev parent reply other threads:[~2013-08-07 7:45 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-30 0:29 [PATCH v2] staging/lustre: lloop depends on BLOCK Xiong Zhou
2013-07-30 7:44 ` Peng Tao
2013-07-31 2:30 ` Xiong Zhou
2013-08-01 0:41 ` Greg Kroah-Hartman
2013-08-02 2:20 ` Xiong Zhou
2013-08-02 3:11 ` Greg Kroah-Hartman
2013-08-01 8:45 ` Christoph Hellwig
2013-08-01 19:57 ` Dilger, Andreas
2013-08-02 10:49 ` Christoph Hellwig
2013-08-07 7:45 ` Dilger, Andreas [this message]
2013-08-08 12:17 ` Christoph Hellwig
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=CE26E579.5A0ED%andreas.dilger@intel.com \
--to=andreas.dilger@intel.com \
--cc=bergwolf@gmail.com \
--cc=devel@driverdev.osuosl.org \
--cc=gregkh@linuxfoundation.org \
--cc=hch@infradead.org \
--cc=jencce.kernel@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pebolle@tiscali.nl \
--cc=trivial@kernel.org \
/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).