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:39:20 +0100 [thread overview]
Message-ID: <20040319073919.GY22234@suse.de> (raw)
In-Reply-To: <20040318191530.34e04cb2.akpm@osdl.org>
On Thu, Mar 18 2004, Andrew Morton wrote:
> Jens Axboe <axboe@suse.de> wrote:
> >
> > On Thu, Mar 18 2004, Andrew Morton wrote:
> > > > Comparing one pair of readprofile results, I find it curious that
> > > > dm_table_unplug_all and dm_table_any_congested show up near the top of a
> > > > 2.6.4-mm2 profile when they haven't shown up before in 2.6.3.
> > >
> > > 14015190 poll_idle 241641.2069
> > > 175162 generic_unplug_device 1317.0075
> > > 165480 __copy_from_user_ll 1272.9231
> > > 161151 __copy_to_user_ll 1342.9250
> > > 152106 schedule 85.0705
> > > 142395 DAC960_LP_InterruptHandler 761.4706
> > > 113677 dm_table_unplug_all 1386.3049
> > > 65420 __make_request 45.5571
> > > 64832 dm_table_any_congested 697.1183
> > > 37913 try_to_wake_up 32.2939
> > >
> > > That's broken. How many disks are involve in the DM stack?
> > >
> > > The relevant code was reworked subsequent to 2.6.4-mm2. Maybe we fixed
> > > this, but I cannot immediately explain what you're seeing here.
> >
> > Ugh that looks really bad, I wonder how it could possibly ever be this
> > bad.
>
> generic_unplug_device() is only sucking 0.5% of total CPU capacity, so
> perhaps we need to be looking elsewhere for the source of the slowdown.
>
> I suggest we do something like this:
>
> --- 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.
--
Jens Axboe
next prev parent reply other threads:[~2004-03-19 7:39 UTC|newest]
Thread overview: 90+ 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 ` Jens Axboe [this message]
2004-03-19 7:52 ` 2.6.4-mm2 Andrew Morton
2004-03-19 7:57 ` 2.6.4-mm2 Jens Axboe
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-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:32 ` 2.6.4-mm2 Andrew Morton
2004-03-24 0:07 ` 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=20040319073919.GY22234@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox