linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
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/

  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