From: Mike Snitzer <snitzer@redhat.com>
To: Milan Broz <gmazyland@gmail.com>
Cc: device-mapper development <dm-devel@redhat.com>
Subject: Re: [PATCH 9/9] dm crypt: sort writes
Date: Mon, 31 Mar 2014 08:39:40 -0400 [thread overview]
Message-ID: <20140331123940.GB25683@redhat.com> (raw)
In-Reply-To: <53368043.5000808@gmail.com>
On Sat, Mar 29 2014 at 4:11am -0400,
Milan Broz <gmazyland@gmail.com> wrote:
> On 03/28/2014 09:11 PM, Mike Snitzer wrote:
> > From: Mikulas Patocka <mpatocka@redhat.com>
> >
> > Write requests are sorted in a red-black tree structure and are submitted
> > in the sorted order.
> >
> > In theory the sorting should be performed by the underlying disk scheduler,
> > however, in practice the disk scheduler accepts and sorts only 128 requests.
> > In order to sort more requests, we need to implement our own sorting.
>
> Hi,
>
> I think it would be nice to mention why simply increasing queue nr_request
> doesn't help. It is definitely not limited to 128, it is only default value.
>
> (I just wonder how this helps for SSDs where I think it depends what's fw
> doing with io requests anyway).
Obviously is less of a concern on SSD but I think we'll find it still is
beneficial.
> It would be nice to have sysfs switch to disable sorting in dmcrypt but that
> can be added later.
Not sure sysfs is the right place to put this. Would prefer to use a DM
message to toggle it. And possibly default to off if the backing
storage is non-rotational.
> Anyway, thanks for rebasing these patches!
>
> ...
> > +#define io_node rb_entry(parent, struct dm_crypt_io, rb_node)
> > + if (sector < io_node->sector)
> > + p = &io_node->rb_node.rb_left;
> > + else
> > + p = &io_node->rb_node.rb_right;
> > +#undef io_node
>
> Btw, could this be switched to inline function instead of define,
> or it is only me who thinks #define here is ugly? :)
I wasn't a big fan of the #define .. #undef but I didn't see the need to
change it if Mikulas felt more comfortable with it this way.
I recently wrote some rbtree code for dm-thinp, it also uses a #define
but outside of the function body (above the function), see:
https://git.kernel.org/cgit/linux/kernel/git/device-mapper/linux-dm.git/commit/?h=for-next&id=a43260f01a3b6f5ef33d0abc86e9b0a92096cd84
We could change this code in a similar way.
next prev parent reply other threads:[~2014-03-31 12:39 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-28 20:11 [PATCH 0/9] dm crypt: improve cpu scalability Mike Snitzer
2014-03-28 20:11 ` [PATCH 1/9] dm crypt: fix cpu hotplug crash by removing per-cpu structure Mike Snitzer
2014-03-28 20:11 ` [PATCH 2/9] block: use kmalloc alignment for bio slab Mike Snitzer
2014-03-28 20:11 ` [PATCH 3/9] dm crypt: use per-bio data Mike Snitzer
2014-03-28 20:11 ` [PATCH 4/9] dm crypt: use unbound workqueue for request processing Mike Snitzer
2014-03-28 20:11 ` [PATCH 5/9] dm crypt: don't allocate pages for a partial request Mike Snitzer
2014-03-28 20:11 ` [PATCH 6/9] dm crypt: avoid deadlock in mempools Mike Snitzer
2014-03-28 20:11 ` [PATCH 7/9] dm crypt: remove io_pool Mike Snitzer
2014-03-28 20:11 ` [PATCH 8/9] dm crypt: offload writes to thread Mike Snitzer
2014-04-01 16:27 ` Ondrej Kozina
2014-04-01 16:32 ` Mike Snitzer
2014-04-01 18:15 ` Mikulas Patocka
2014-04-01 18:23 ` Mike Snitzer
2014-04-02 6:55 ` Ondrej Kozina
2014-04-01 18:01 ` Mikulas Patocka
2014-04-01 19:08 ` Milan Broz
2014-03-28 20:11 ` [PATCH 9/9] dm crypt: sort writes Mike Snitzer
2014-03-29 8:11 ` Milan Broz
2014-03-31 12:39 ` Mike Snitzer [this message]
2014-03-31 23:37 ` Akira Hayakawa
2014-04-01 1:01 ` Mike Snitzer
2014-04-01 17:35 ` Milan Broz
2014-04-01 20:15 ` Alasdair G Kergon
2014-04-01 23:21 ` Akira Hayakawa
2014-04-02 3:19 ` Akira Hayakawa
2014-04-02 3:38 ` Mike Snitzer
2014-04-02 4:18 ` 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=20140331123940.GB25683@redhat.com \
--to=snitzer@redhat.com \
--cc=dm-devel@redhat.com \
--cc=gmazyland@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.