From: Andrew Morton <akpm@digeo.com>
To: Jens Axboe <axboe@suse.de>
Cc: William Lee Irwin III <wli@holomorphy.com>,
lkml <linux-kernel@vger.kernel.org>,
linux-mm@kvack.org
Subject: Re: 2.5.46-mm2
Date: Sun, 10 Nov 2002 11:39:19 -0800 [thread overview]
Message-ID: <3DCEB5E7.5147A449@digeo.com> (raw)
In-Reply-To: <20021110155851.GL31134@suse.de>
Jens Axboe wrote:
>
> Complete diff against 2.5.46-BK current attached.
>
> [rbtree IO scheduler.. ]
>
Well it's nice to see 250 megabytes under writeback to a single
queue, but this could become a bit of a problem:
blkdev_requests: 5760KB 5767KB 99.86
(gdb) p sizeof(struct request)
$1 = 136
On a Pentium 4, that will be rounded up to 256 bytes, so it'd be
up around 10 megabytes. Now imagine 200 disks....
Putting struct request on a diet would help - get it under 128
bytes. Also, I'd suggest that SLAB_HWCACHE_ALIGN not be used in
the blkdev_requests slab.
(SLAB_HWCACHE_ALIGN is waaaay overused, btw)
But we'll still have a problem with hundreds of disks.
Of course, I'm assuming that there's a significant benefit
in having 1024 requests. Perhaps there isn't, so we don't have
a problem. But if it _is_ good (and for some things it will be),
we need to do something sterner.
It is hard to justify 1024 read requests, so the read pool and the
write pool could be split up. 128 read requests, 1024 write requests.
Still not enough.
Now, 1024 requests is enough to put up to 512 megabytes of memory
under I/O. Which is cool, but it is unlikely that anyone would want
to put 512 megs under IO against 200 disks at the same time.
Which means that we need a common pool. Maybe a fixed pool of 128
requests per queue, then any additional requests should be dynamically
allocated on a best-effort basis. A mempool-per-queue would do that
quite neatly. (Using GFP_ATOMIC & ~_GFP_HIGH). The throttling code
would need some rework.
All of which is a bit of a hassle. I'll do an mm3 later today which
actually has the damn code in it and let's get in and find out whether
the huge queue is worth pursuing.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/
next prev parent reply other threads:[~2002-11-10 19:39 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-10 3:59 2.5.46-mm2 Andrew Morton
2002-11-10 14:32 ` 2.5.46-mm2 Jens Axboe
2002-11-10 14:52 ` 2.5.46-mm2 William Lee Irwin III
2002-11-10 14:57 ` 2.5.46-mm2 Jens Axboe
2002-11-10 15:06 ` 2.5.46-mm2 William Lee Irwin III
2002-11-10 15:58 ` 2.5.46-mm2 Jens Axboe
2002-11-10 19:39 ` Andrew Morton [this message]
2002-11-11 1:18 ` 2.5.46-mm2 William Lee Irwin III
2002-11-11 7:04 ` 2.5.46-mm2 Jens Axboe
2002-11-11 7:41 ` 2.5.46-mm2 William Lee Irwin III
2002-11-10 16:58 ` 2.5.46-mm2 Andrew Morton
2002-11-10 17:11 ` 2.5.46-mm2 William Lee Irwin III
2002-11-10 18:14 ` 2.5.46-mm2 - oops Ed Tomlinson
2002-11-10 18:52 ` Andrew Morton
2002-11-10 19:17 ` Ed Tomlinson
2002-11-11 0:44 ` Denis Vlasenko
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=3DCEB5E7.5147A449@digeo.com \
--to=akpm@digeo.com \
--cc=axboe@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=wli@holomorphy.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox