From: Mike Snitzer <snitzer@redhat.com>
To: Akira Hayakawa <ruby.wktk@gmail.com>
Cc: devel@driverdev.osuosl.org, gregkh@linuxfoundation.org,
linux-kernel@vger.kernel.org, dm-devel@redhat.com,
agk@redhat.com, joe@perches.com, akpm@linux-foundation.org,
cesarb@cesarb.net, m.chehab@samsung.com
Subject: Re: staging: Add dm-writeboost
Date: Mon, 16 Sep 2013 17:53:57 -0400 [thread overview]
Message-ID: <20130916215357.GA5015@redhat.com> (raw)
In-Reply-To: <5223208D.4000008@gmail.com>
On Sun, Sep 01 2013 at 7:10am -0400,
Akira Hayakawa <ruby.wktk@gmail.com> wrote:
> This patch introduces dm-writeboost to staging tree.
>
> dm-writeboost is a log-structured caching software.
> It batches in-coming random-writes to a big sequential write
> to a cache device.
>
> Unlike other block caching softwares like dm-cache and bcache,
> dm-writeboost focuses on bursty writes.
> Since the implementation is optimized on writes,
> the benchmark using fio indicates that
> it performs 259MB/s random writes with
> SSD with 266MB/s sequential write throughput
> which is only 3% loss.
>
> Furthermore,
> because it uses SSD cache device sequentially,
> the lifetime of the device is maximized.
>
> The merit of putting this software in staging tree is
> to make it more possible to get feedback from users
> and thus polish the code.
>
> Signed-off-by: Akira Hayakawa <ruby.wktk@gmail.com>
> ---
> MAINTAINERS | 7 +
> drivers/staging/Kconfig | 2 +
> drivers/staging/Makefile | 1 +
> drivers/staging/dm-writeboost/Kconfig | 8 +
> drivers/staging/dm-writeboost/Makefile | 1 +
> drivers/staging/dm-writeboost/TODO | 11 +
> drivers/staging/dm-writeboost/dm-writeboost.c | 3445 +++++++++++++++++++++++
> drivers/staging/dm-writeboost/dm-writeboost.txt | 133 +
> 8 files changed, 3608 insertions(+)
> create mode 100644 drivers/staging/dm-writeboost/Kconfig
> create mode 100644 drivers/staging/dm-writeboost/Makefile
> create mode 100644 drivers/staging/dm-writeboost/TODO
> create mode 100644 drivers/staging/dm-writeboost/dm-writeboost.c
> create mode 100644 drivers/staging/dm-writeboost/dm-writeboost.txt
Hi Akira,
Sorry for not getting back to you sooner. I'll make an effort to be
more responsive from now on.
Here is a list of things I noticed during the first _partial_ pass in
reviewing the code:
- the various typedefs aren't needed (e.g. device_id, cache_id,
cache_nr)
- variable names need to be a bit more verbose (arr => array)
- really not convinced we need WB{ERR,WARN,INFO} -- may have been useful
for early development but production code shouldn't be emitting
messages with line numbers
- all the code in one file is too cumbersome; would like to see it split
into multiple files.. not clear on what that split would look like yet
- any chance the log-structured IO could be abstracted to a new class in
drivers/md/persistent-data/ ? At least factor out a library with the
interface that drives the IO.
- really dislike the use of an intermediate "writeboost-mgr" target to
administer the writeboost devices. There is no need for this. Just
have a normal DM target whose .ctr takes care of validation and
determines whether a device needs formatting, etc. Otherwise I cannot
see how you can properly stack DM devices on writeboost devices
(suspend+resume become tediously different)
- shouldn't need to worry about managing your own sysfs hierarchy;
when a dm-writeboost .ctr takes a reference on a backing or cache
device it will establish a proper hierarchy (see: dm_get_device). What
advantages are you seeing from having/managing this sysfs tree?
- I haven't had time to review the migration daemon post you made today;
but it concerns me that dm-writeboost ever required this extra service
for normal function. I'll take a closer look at what you're asking
and respond tomorrow.
But in short this code really isn't even suitable for inclusion via
staging. There are far too many things, on a fundamental interface
level, that we need to sort out.
Probably best for you to publish the dm-writeboost code a git repo on
github.com or the like. I just don't see what benefit there is to
putting code like this in staging. Users already need considerable
userspace tools and infrastructure will also be changing in the
near-term (e.g. the migration daemon).
Regards,
Mike
WARNING: multiple messages have this Message-ID (diff)
From: Mike Snitzer <snitzer@redhat.com>
To: Akira Hayakawa <ruby.wktk@gmail.com>
Cc: gregkh@linuxfoundation.org, devel@driverdev.osuosl.org,
linux-kernel@vger.kernel.org, dm-devel@redhat.com,
cesarb@cesarb.net, joe@perches.com, akpm@linux-foundation.org,
agk@redhat.com, m.chehab@samsung.com
Subject: Re: staging: Add dm-writeboost
Date: Mon, 16 Sep 2013 17:53:57 -0400 [thread overview]
Message-ID: <20130916215357.GA5015@redhat.com> (raw)
In-Reply-To: <5223208D.4000008@gmail.com>
On Sun, Sep 01 2013 at 7:10am -0400,
Akira Hayakawa <ruby.wktk@gmail.com> wrote:
> This patch introduces dm-writeboost to staging tree.
>
> dm-writeboost is a log-structured caching software.
> It batches in-coming random-writes to a big sequential write
> to a cache device.
>
> Unlike other block caching softwares like dm-cache and bcache,
> dm-writeboost focuses on bursty writes.
> Since the implementation is optimized on writes,
> the benchmark using fio indicates that
> it performs 259MB/s random writes with
> SSD with 266MB/s sequential write throughput
> which is only 3% loss.
>
> Furthermore,
> because it uses SSD cache device sequentially,
> the lifetime of the device is maximized.
>
> The merit of putting this software in staging tree is
> to make it more possible to get feedback from users
> and thus polish the code.
>
> Signed-off-by: Akira Hayakawa <ruby.wktk@gmail.com>
> ---
> MAINTAINERS | 7 +
> drivers/staging/Kconfig | 2 +
> drivers/staging/Makefile | 1 +
> drivers/staging/dm-writeboost/Kconfig | 8 +
> drivers/staging/dm-writeboost/Makefile | 1 +
> drivers/staging/dm-writeboost/TODO | 11 +
> drivers/staging/dm-writeboost/dm-writeboost.c | 3445 +++++++++++++++++++++++
> drivers/staging/dm-writeboost/dm-writeboost.txt | 133 +
> 8 files changed, 3608 insertions(+)
> create mode 100644 drivers/staging/dm-writeboost/Kconfig
> create mode 100644 drivers/staging/dm-writeboost/Makefile
> create mode 100644 drivers/staging/dm-writeboost/TODO
> create mode 100644 drivers/staging/dm-writeboost/dm-writeboost.c
> create mode 100644 drivers/staging/dm-writeboost/dm-writeboost.txt
Hi Akira,
Sorry for not getting back to you sooner. I'll make an effort to be
more responsive from now on.
Here is a list of things I noticed during the first _partial_ pass in
reviewing the code:
- the various typedefs aren't needed (e.g. device_id, cache_id,
cache_nr)
- variable names need to be a bit more verbose (arr => array)
- really not convinced we need WB{ERR,WARN,INFO} -- may have been useful
for early development but production code shouldn't be emitting
messages with line numbers
- all the code in one file is too cumbersome; would like to see it split
into multiple files.. not clear on what that split would look like yet
- any chance the log-structured IO could be abstracted to a new class in
drivers/md/persistent-data/ ? At least factor out a library with the
interface that drives the IO.
- really dislike the use of an intermediate "writeboost-mgr" target to
administer the writeboost devices. There is no need for this. Just
have a normal DM target whose .ctr takes care of validation and
determines whether a device needs formatting, etc. Otherwise I cannot
see how you can properly stack DM devices on writeboost devices
(suspend+resume become tediously different)
- shouldn't need to worry about managing your own sysfs hierarchy;
when a dm-writeboost .ctr takes a reference on a backing or cache
device it will establish a proper hierarchy (see: dm_get_device). What
advantages are you seeing from having/managing this sysfs tree?
- I haven't had time to review the migration daemon post you made today;
but it concerns me that dm-writeboost ever required this extra service
for normal function. I'll take a closer look at what you're asking
and respond tomorrow.
But in short this code really isn't even suitable for inclusion via
staging. There are far too many things, on a fundamental interface
level, that we need to sort out.
Probably best for you to publish the dm-writeboost code a git repo on
github.com or the like. I just don't see what benefit there is to
putting code like this in staging. Users already need considerable
userspace tools and infrastructure will also be changing in the
near-term (e.g. the migration daemon).
Regards,
Mike
next prev parent reply other threads:[~2013-09-16 21:53 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-01 11:10 [PATCH] staging: Add dm-writeboost Akira Hayakawa
2013-09-16 21:53 ` Mike Snitzer [this message]
2013-09-16 21:53 ` Mike Snitzer
2013-09-16 22:49 ` Dan Carpenter
2013-09-16 22:49 ` Dan Carpenter
2013-09-17 12:41 ` Akira Hayakawa
2013-09-17 12:41 ` Akira Hayakawa
2013-09-17 20:18 ` Mike Snitzer
2013-09-17 20:18 ` Mike Snitzer
2013-09-17 12:43 ` Akira Hayakawa
2013-09-17 12:43 ` Akira Hayakawa
2013-09-17 20:59 ` Mike Snitzer
2013-09-17 20:59 ` Mike Snitzer
2013-09-22 0:09 ` Reworking dm-writeboost [was: Re: staging: Add dm-writeboost] Akira Hayakawa
2013-09-22 0:09 ` Akira Hayakawa
2013-09-24 12:20 ` Akira Hayakawa
2013-09-24 12:20 ` Akira Hayakawa
2013-09-25 17:37 ` Mike Snitzer
2013-09-25 17:37 ` Mike Snitzer
2013-09-26 1:42 ` Akira Hayakawa
2013-09-26 1:47 ` Akira Hayakawa
2013-09-27 18:35 ` Mike Snitzer
2013-09-27 18:35 ` Mike Snitzer
2013-09-28 11:29 ` Akira Hayakawa
2013-09-28 11:29 ` Akira Hayakawa
2013-09-25 23:03 ` Greg KH
2013-09-25 23:03 ` Greg KH
2013-09-26 3:43 ` Dave Chinner
2013-10-01 8:26 ` Joe Thornber
2013-10-01 8:26 ` Joe Thornber
2013-10-03 0:01 ` Mikulas Patocka
2013-10-03 0:01 ` [dm-devel] " Mikulas Patocka
2013-10-04 2:04 ` Dave Chinner
2013-10-04 2:04 ` Dave Chinner
2013-10-05 7:51 ` Akira Hayakawa
2013-10-07 23:43 ` Dave Chinner
2013-10-08 9:41 ` Christoph Hellwig
2013-10-08 9:41 ` Christoph Hellwig
2013-10-08 10:37 ` Akira Hayakawa
2013-10-08 10:37 ` Akira Hayakawa
2013-10-08 15:29 ` Mike Snitzer
2013-10-09 1:07 ` Akira Hayakawa
2013-10-09 1:07 ` Akira Hayakawa
2013-10-08 10:57 ` [dm-devel] " Akira Hayakawa
2013-10-08 10:57 ` Akira Hayakawa
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=20130916215357.GA5015@redhat.com \
--to=snitzer@redhat.com \
--cc=agk@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=cesarb@cesarb.net \
--cc=devel@driverdev.osuosl.org \
--cc=dm-devel@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=joe@perches.com \
--cc=linux-kernel@vger.kernel.org \
--cc=m.chehab@samsung.com \
--cc=ruby.wktk@gmail.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 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.