All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vivek Goyal <vgoyal@redhat.com>
To: Mikulas Patocka <mpatocka@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>, Mike Snitzer <snitzer@redhat.com>,
	dm-crypt@saout.de, Christian Schmidt <schmidt@digadd.de>,
	linux-kernel@vger.kernel.org,
	Christoph Hellwig <hch@infradead.org>,
	dm-devel@redhat.com, Andi Kleen <andi@firstfloor.org>,
	Tejun Heo <tj@kernel.org>, Milan Broz <gmazyland@gmail.com>
Subject: Re: [dm-crypt] dm-crypt parallelization patches
Date: Tue, 9 Apr 2013 17:07:35 -0400	[thread overview]
Message-ID: <20130409210735.GR6320@redhat.com> (raw)
In-Reply-To: <Pine.LNX.4.64.1304091624110.19672@file.rdu.redhat.com>

On Tue, Apr 09, 2013 at 04:32:28PM -0400, Mikulas Patocka wrote:

[..]
> Generally, we shouldn't associate bios with "current" task in device 
> mapper targets. For example suppose that we have two stacked dm-crypt 
> targets:
>
> In the "current" process pointer in lower dm-crypt target's request 
> function always points to the workqueue of the upper dm-crypt target that 
> submits the bios. So if we associate the bio with "current" in the lower 
> target, we are associating it with a preallocated workqueue and we already 
> lost the information who submitted it.
> 
> You should associate a bio with a task when you create the bio and "md" 
> and "dm" midlayers should just forward this association to lower layer 
> bios.

bio_associate_current() return -EBUSY if bio has already been associated
with an io context.

So in a stack if every driver calls bio_associate_current(), upon bio
submission, it will automatically amke sure bio gets associated with
submitter task in top level device and calls by lower level device
will be ignored.

Lower level devices I think just need to make sure this context
info is propogated to cloned bios.


[..]
> +#ifdef CONFIG_BLK_CGROUP
> +	tio->clone.bi_ioc = ci->bio->bi_ioc;
> +	tio->clone.bi_css = ci->bio->bi_css;

You also need to take references to ioc and css objects. I guess a helper
function will be better. May be something like.

bio_associate_bio_context(bio1, bio2)

And this initialize bio2's context with bio1's context.

Thanks
Vivek

WARNING: multiple messages have this Message-ID (diff)
From: Vivek Goyal <vgoyal@redhat.com>
To: Mikulas Patocka <mpatocka@redhat.com>
Cc: Tejun Heo <tj@kernel.org>, Jens Axboe <axboe@kernel.dk>,
	Mike Snitzer <snitzer@redhat.com>,
	Milan Broz <gmazyland@gmail.com>,
	dm-devel@redhat.com, Andi Kleen <andi@firstfloor.org>,
	dm-crypt@saout.de, linux-kernel@vger.kernel.org,
	Christoph Hellwig <hch@infradead.org>,
	Christian Schmidt <schmidt@digadd.de>
Subject: Re: dm-crypt parallelization patches
Date: Tue, 9 Apr 2013 17:07:35 -0400	[thread overview]
Message-ID: <20130409210735.GR6320@redhat.com> (raw)
In-Reply-To: <Pine.LNX.4.64.1304091624110.19672@file.rdu.redhat.com>

On Tue, Apr 09, 2013 at 04:32:28PM -0400, Mikulas Patocka wrote:

[..]
> Generally, we shouldn't associate bios with "current" task in device 
> mapper targets. For example suppose that we have two stacked dm-crypt 
> targets:
>
> In the "current" process pointer in lower dm-crypt target's request 
> function always points to the workqueue of the upper dm-crypt target that 
> submits the bios. So if we associate the bio with "current" in the lower 
> target, we are associating it with a preallocated workqueue and we already 
> lost the information who submitted it.
> 
> You should associate a bio with a task when you create the bio and "md" 
> and "dm" midlayers should just forward this association to lower layer 
> bios.

bio_associate_current() return -EBUSY if bio has already been associated
with an io context.

So in a stack if every driver calls bio_associate_current(), upon bio
submission, it will automatically amke sure bio gets associated with
submitter task in top level device and calls by lower level device
will be ignored.

Lower level devices I think just need to make sure this context
info is propogated to cloned bios.


[..]
> +#ifdef CONFIG_BLK_CGROUP
> +	tio->clone.bi_ioc = ci->bio->bi_ioc;
> +	tio->clone.bi_css = ci->bio->bi_css;

You also need to take references to ioc and css objects. I guess a helper
function will be better. May be something like.

bio_associate_bio_context(bio1, bio2)

And this initialize bio2's context with bio1's context.

Thanks
Vivek

  parent reply	other threads:[~2013-04-09 21:07 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-26  3:47 dm-crypt performance Mikulas Patocka
2013-03-26  6:52 ` Christoph Hellwig
2013-03-26 12:27 ` [dm-crypt] [dm-devel] " Alasdair G Kergon
2013-03-26 12:27   ` Alasdair G Kergon
2013-03-26 20:05   ` [dm-crypt] " Milan Broz
2013-03-26 20:05     ` Milan Broz
2013-03-26 20:28     ` [dm-crypt] " Mike Snitzer
2013-03-26 20:28       ` Mike Snitzer
2013-03-26 20:58       ` [dm-crypt] " Milan Broz
2013-03-26 20:58         ` Milan Broz
2013-03-28 18:53       ` [dm-crypt] " Tejun Heo
2013-03-28 18:53         ` Tejun Heo
2013-03-28 19:33         ` [dm-crypt] " Vivek Goyal
2013-03-28 19:33           ` Vivek Goyal
2013-03-28 19:44           ` [dm-crypt] " Tejun Heo
2013-03-28 19:44             ` Tejun Heo
2013-03-28 20:38             ` [dm-crypt] " Vivek Goyal
2013-03-28 20:38               ` Vivek Goyal
2013-03-28 20:45               ` Tejun Heo
2013-04-09 17:51                 ` [dm-crypt] dm-crypt parallelization patches Mikulas Patocka
2013-04-09 17:51                   ` Mikulas Patocka
2013-04-09 17:57                   ` Tejun Heo
2013-04-09 18:08                     ` [dm-crypt] " Mikulas Patocka
2013-04-09 18:08                       ` Mikulas Patocka
2013-04-09 18:10                       ` Tejun Heo
2013-04-09 18:42                         ` [dm-crypt] " Vivek Goyal
2013-04-09 18:42                           ` Vivek Goyal
2013-04-09 18:57                           ` Tejun Heo
2013-04-09 19:13                             ` [dm-crypt] " Vivek Goyal
2013-04-09 19:13                               ` Vivek Goyal
2013-04-09 19:42                         ` [dm-crypt] " Mikulas Patocka
2013-04-09 19:42                           ` Mikulas Patocka
2013-04-09 19:52                           ` Tejun Heo
2013-04-09 20:32                             ` [dm-crypt] " Mikulas Patocka
2013-04-09 20:32                               ` Mikulas Patocka
2013-04-09 21:02                               ` Tejun Heo
2013-04-09 21:03                                 ` Tejun Heo
2013-04-09 21:07                               ` Vivek Goyal [this message]
2013-04-09 21:07                                 ` Vivek Goyal
2013-04-09 21:18                                 ` [dm-crypt] " Mikulas Patocka
2013-04-09 21:18                                   ` Mikulas Patocka
2013-04-10 19:24                                   ` [dm-crypt] " Vivek Goyal
2013-04-10 19:24                                     ` Vivek Goyal
2013-04-10 23:42                                     ` [dm-crypt] [PATCH] make dm and dm-crypt forward cgroup context (was: dm-crypt parallelization patches) Mikulas Patocka
2013-04-10 23:42                                       ` Mikulas Patocka
2013-04-10 23:50                                       ` Tejun Heo
2013-04-11 19:49                                         ` [dm-crypt] [PATCH v2] " Mikulas Patocka
2013-04-11 19:49                                           ` Mikulas Patocka
2013-04-11 19:52                                           ` Tejun Heo
2013-04-11 20:00                                             ` Tejun Heo
2013-04-12  0:06                                               ` [dm-crypt] " Mikulas Patocka
2013-04-12  0:06                                                 ` Mikulas Patocka
2013-04-12  0:22                                                 ` Tejun Heo
2013-04-12  5:59                                                   ` [dm-crypt] [PATCH v2] make dm and dm-crypt forward cgroup context Milan Broz
2013-04-12  5:59                                                     ` Milan Broz
2013-04-12 18:17                                                   ` [dm-crypt] [PATCH v2] make dm and dm-crypt forward cgroup context (was: dm-crypt parallelization patches) Mikulas Patocka
2013-04-12 18:17                                                     ` Mikulas Patocka
2013-04-12 18:01                                               ` [dm-crypt] " Mikulas Patocka
2013-04-12 18:01                                                 ` Mikulas Patocka
2013-04-12 18:29                                                 ` Tejun Heo
2013-04-15 13:02                                                   ` [dm-crypt] " Mikulas Patocka
2013-04-15 13:02                                                     ` Mikulas Patocka
2013-04-16 17:24                                                     ` Tejun Heo
2013-04-16 19:41                                                       ` [dm-crypt] " Mikulas Patocka
2013-04-16 19:41                                                         ` Mikulas Patocka
2013-04-18 16:47                                                       ` [dm-crypt] " Mike Snitzer
2013-04-18 16:47                                                         ` Mike Snitzer
2013-04-18 17:03                                                         ` Tejun Heo
2013-05-22 18:50                                                           ` [dm-crypt] " Mike Snitzer
2013-05-22 18:50                                                             ` Mike Snitzer
2013-05-22 19:48                                                             ` Tejun Heo
2013-04-09 18:36                   ` [dm-crypt] dm-crypt parallelization patches Vivek Goyal
2013-04-09 18:36                     ` Vivek Goyal
2013-04-09 18:08     ` [dm-crypt] [dm-devel] dm-crypt performance Mikulas Patocka
2013-04-09 18:08       ` Mikulas Patocka
2013-04-09 18:08       ` Mikulas Patocka
2013-04-09 18:40       ` [dm-crypt] " Arno Wagner
2013-04-21 20:38         ` Yves-Alexis Perez
2013-04-22  2:28           ` Arno Wagner
2013-04-09 18:59       ` Milan Broz
2013-04-09 18:59         ` Milan Broz

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=20130409210735.GR6320@redhat.com \
    --to=vgoyal@redhat.com \
    --cc=andi@firstfloor.org \
    --cc=axboe@kernel.dk \
    --cc=dm-crypt@saout.de \
    --cc=dm-devel@redhat.com \
    --cc=gmazyland@gmail.com \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mpatocka@redhat.com \
    --cc=schmidt@digadd.de \
    --cc=snitzer@redhat.com \
    --cc=tj@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 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.