From: Jens Axboe <axboe@suse.de>
To: Andrew Morton <akpm@osdl.org>
Cc: markw@osdl.org, linux-kernel@vger.kernel.org
Subject: Re: 2.6.4-mm2
Date: Fri, 19 Mar 2004 08:57:05 +0100 [thread overview]
Message-ID: <20040319075704.GD22234@suse.de> (raw)
In-Reply-To: <20040318235200.25c376a9.akpm@osdl.org>
On Thu, Mar 18 2004, Andrew Morton wrote:
> Jens Axboe <axboe@suse.de> wrote:
> >
> > > --- 25/drivers/md/dm-table.c~a 2004-03-18 19:03:15.130004696 -0800
> > > +++ 25-akpm/drivers/md/dm-table.c 2004-03-18 19:03:41.656971984 -0800
> > > @@ -893,7 +893,7 @@ void dm_table_unplug_all(struct dm_table
> > > struct dm_dev *dd = list_entry(d, struct dm_dev, list);
> > > request_queue_t *q = bdev_get_queue(dd->bdev);
> > >
> > > - if (q->unplug_fn)
> > > + if (q->unplug_fn && queue_needs_unplug(q)))
> > > q->unplug_fn(q);
> > > }
> > > }
> > >
> > >
> > > to reduce the computational expense of dm_table_unplug_all() a bit.
> > >
> > > But we're barking up the wrong tree here. Mark, if it's OK I'll run up
> > > some kernels for you to test.
> >
> > I thought about this last night, and I have a better idea that gets the
> > same accomplished. The problem right now is indeed that we aren't
> > tracking who needs to be unplugged, like we used to. The solution is to
> > do the exact same style plugging (with block helpers) that we used to,
> > except the plug_list is maintained in the driver. So when you do
> > dm_unplug(), it doesn't _have_ to iterate the full device list, only
> > those that do need kicking.
> >
> > I'll produce a patch to fix this this morning. First coffee.
>
> Yes, it would be nice but I fear that it gets complicated.
>
> Is it not the case that two dm maps can refer to the same queue? Say, one
> map uses /dev/hda1 and another map uses /dev/hda2?
>
> If so, then when the /dev/hda queue is plugged we need to tell both the
> higher-level maps that this queue needs an unplug. So blk_plug_device()
> and the various unplug functions need to perform upcalls to an arbitrary
> number of higher-level drivers, and those drivers need to keep track of the
> currently-plugged queues without adding data structures to the
> request_queue structure.
>
> It can be done of course, but could get messy.
That would get nasty, it's much more natural to track it from the other
end. I view it as a dm (or whatever problem) that they need to track who
has pending io on their behalf, which is pretty easy to to from eg
__map_bio().
The only addition is putting the old q->plug_list back, but using it on
stacking drivers like dm. dm then maintains a per-dm plugged list that
it can use when dm_unplug() runs.
--
Jens Axboe
next prev parent reply other threads:[~2004-03-19 7:57 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-15 1:28 2.6.4-mm2 Andrew Morton
2004-03-15 1:57 ` 2.6.4-mm2 Joshua Kwan
2004-03-15 6:08 ` 2.6.4-mm2 Sam Ravnborg
2004-03-15 9:32 ` [patch] 2.6.4-mm2: ALSA au88x0.c doesn't compile with gcc 2.95 Adrian Bunk
2004-03-15 9:36 ` 2.6.4-mm2: ALSA au88{1,2}0: multiply defined symbols Adrian Bunk
2004-03-15 18:54 ` 2.6.4-mm2 Sam Ravnborg
2004-03-20 22:50 ` 2.6.4-mm2 Olaf Hering
2004-03-15 19:18 ` 2.6.4-mm2 (compile stats) John Cherry
2004-03-15 20:57 ` 2.6.4-mm2 Thomas Schlichter
2004-03-15 21:08 ` 2.6.4-mm2 Thomas Schlichter
2004-03-15 21:18 ` 2.6.4-mm2 Andrew Morton
2004-03-15 21:18 ` 2.6.4-mm2 Jens Axboe
2004-03-15 22:40 ` 2.6.4-mm2 Thomas Schlichter
2004-03-15 22:11 ` 2.6.4-mm2 Jesse Barnes
2004-03-16 18:32 ` 2.6.4-mm2 Daniel McNeil
2004-03-16 21:58 ` 2.6.4-mm2 Chris Mason
2004-03-16 23:21 ` 2.6.4-mm2 Andrew Morton
2004-03-16 23:28 ` 2.6.4-mm2 Andrew Morton
2004-03-16 23:39 ` 2.6.4-mm2 Andrew Morton
2004-03-17 0:10 ` 2.6.4-mm2 Daniel McNeil
[not found] ` <1079485055.4181.1115.camel@watt.suse.com>
[not found] ` <1079487710.3100.22.camel@ibm-c.pdx.osdl.net>
[not found] ` <20040316180043.441e8150.akpm@osdl.org>
2004-03-17 20:11 ` 2.6.4-mm2 Chris Mason
2004-03-17 20:33 ` 2.6.4-mm2 Andrew Morton
2004-03-17 22:46 ` 2.6.4-mm2 Chris Mason
2004-03-17 23:09 ` 2.6.4-mm2 Andrew Morton
2004-03-17 23:27 ` 2.6.4-mm2 Chris Mason
2004-03-17 23:51 ` 2.6.4-mm2 Andrew Morton
2004-03-18 0:06 ` 2.6.4-mm2 Chris Mason
2004-03-18 0:13 ` 2.6.4-mm2 Andrew Morton
2004-03-18 0:31 ` 2.6.4-mm2 Chris Mason
2004-03-18 0:33 ` 2.6.4-mm2 Andrew Morton
2004-03-18 0:41 ` 2.6.4-mm2 Chris Mason
2004-03-18 1:15 ` 2.6.4-mm2 Daniel McNeil
2004-03-18 17:53 ` 2.6.4-mm2 Daniel McNeil
2004-03-18 18:47 ` 2.6.4-mm2 Chris Mason
2004-03-18 19:10 ` 2.6.4-mm2 Daniel McNeil
2004-03-19 16:49 ` 2.6.5-rc2-mm2 and direct_read_under Daniel McNeil
2004-03-19 17:05 ` 2.6.5-rc1-mm2 " Daniel McNeil
2004-03-21 14:36 ` Chris Mason
2004-03-22 18:10 ` 2.6.5-rc1-mm2 and direct_read_under and wb Daniel McNeil
2004-03-22 18:23 ` Chris Mason
2004-03-22 18:27 ` Chris Mason
2004-03-22 18:35 ` Chris Mason
2004-03-22 18:51 ` Daniel McNeil
2004-03-22 23:13 ` Andrew Morton
2004-03-23 0:51 ` Daniel McNeil
2004-03-23 9:25 ` Andrew Morton
2004-03-23 17:05 ` Daniel McNeil
2004-03-23 17:59 ` Andrew Morton
2004-03-23 21:38 ` Daniel McNeil
2004-03-23 21:47 ` Andrew Morton
2004-03-18 17:37 ` 2.6.4-mm2 markw
2004-03-18 18:06 ` 2.6.4-mm2 Andrew Morton
2004-03-18 18:48 ` 2.6.4-mm2 markw
2004-03-18 19:10 ` 2.6.4-mm2 Chris Mason
2004-03-18 19:27 ` 2.6.4-mm2 Jens Axboe
2004-03-18 23:38 ` 2.6.4-mm2 markw
2004-03-19 7:39 ` 2.6.4-mm2 Jens Axboe
2004-03-19 3:15 ` 2.6.4-mm2 Andrew Morton
2004-03-19 7:39 ` 2.6.4-mm2 Jens Axboe
2004-03-19 7:52 ` 2.6.4-mm2 Andrew Morton
2004-03-19 7:57 ` Jens Axboe [this message]
2004-03-19 8:19 ` 2.6.4-mm2 Andrew Morton
2004-03-19 8:31 ` 2.6.4-mm2 Jens Axboe
2004-03-19 8:39 ` 2.6.4-mm2 Andrew Morton
2004-03-19 8:48 ` 2.6.4-mm2 Jens Axboe
2004-03-19 9:56 ` 2.6.4-mm2 Miquel van Smoorenburg
2004-03-19 10:00 ` 2.6.4-mm2 Jens Axboe
[not found] ` <20040318194150.4de65049.akpm@osdl.org>
2004-03-20 2:39 ` 2.6.4-mm2 Mark Wong
2004-03-20 2:47 ` 2.6.4-mm2 Mark Wong
2004-03-20 2:50 ` 2.6.4-mm2 Andrew Morton
2004-03-20 2:53 ` 2.6.4-mm2 Mark Wong
2004-03-20 3:52 ` 2.6.4-mm2 Nick Piggin
2004-03-20 4:14 ` 2.6.4-mm2 Andrew Morton
2004-03-20 4:24 ` 2.6.4-mm2 Nick Piggin
2004-03-20 4:26 ` 2.6.4-mm2 Nick Piggin
2004-03-20 21:17 ` 2.6.4-mm2 Martin J. Bligh
2004-03-22 17:19 ` 2.6.4-mm2 Mary Edie Meredith
2004-03-22 17:19 ` 2.6.4-mm2 Mary Edie Meredith
2004-03-23 0:27 ` 2.6.4-mm2 Andrew Morton
2004-03-23 0:27 ` 2.6.4-mm2 Andrew Morton
2004-03-23 19:21 ` 2.6.4-mm2 Mary Edie Meredith
2004-03-23 19:21 ` 2.6.4-mm2 Mary Edie Meredith
2004-03-23 19:32 ` 2.6.4-mm2 Andrew Morton
2004-03-23 19:32 ` 2.6.4-mm2 Andrew Morton
2004-03-24 0:07 ` 2.6.4-mm2 Mary Edie Meredith
2004-03-24 0:07 ` 2.6.4-mm2 Mary Edie Meredith
2004-03-30 21:30 ` 2.6.4-mm2 Mary Edie Meredith
2004-03-30 21:30 ` 2.6.4-mm2 Mary Edie Meredith
[not found] <A6974D8E5F98D511BB910002A50A6647615F5E26@hdsmsx402.hd.intel.com>
2004-03-20 4:19 ` 2.6.4-mm2 Len Brown
2004-03-20 4:26 ` 2.6.4-mm2 Andrew Morton
2004-03-20 4:32 ` 2.6.4-mm2 Mark Wong
[not found] <A6974D8E5F98D511BB910002A50A6647615F5E2B@hdsmsx402.hd.intel.com>
2004-03-20 4:27 ` 2.6.4-mm2 Len Brown
2004-03-20 9:01 ` 2.6.4-mm2 Nick Piggin
2004-03-22 16:24 ` 2.6.4-mm2 markw
-- strict thread matches above, loose matches on Subject: below --
2004-03-20 23:12 2.6.4-mm2 sam
2004-03-20 23:41 ` 2.6.4-mm2 Olaf Hering
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=20040319075704.GD22234@suse.de \
--to=axboe@suse.de \
--cc=akpm@osdl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=markw@osdl.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.