From: Jens Axboe <axboe@suse.de>
To: Linus Torvalds <torvalds@transmeta.com>
Cc: kevin.vanmaren@unisys.com, linux-kernel@vger.kernel.org
Subject: Re: The cause of the "VM" performance problem with 2.4.X
Date: Wed, 29 Aug 2001 10:25:10 +0200 [thread overview]
Message-ID: <20010829102510.I640@suse.de> (raw)
In-Reply-To: <245F259ABD41D511A07000D0B71C4CBA289F5F@us-slc-exch-3.slc.unisys.com> <200108281852.f7SIqos15325@penguin.transmeta.com> <20010829102216.H640@suse.de>
In-Reply-To: <20010829102216.H640@suse.de>
[-- Attachment #1: Type: text/plain, Size: 717 bytes --]
On Wed, Aug 29 2001, Jens Axboe wrote:
> > > 4.51 432.97 25.70 13445261 0.00 0.00 blk_get_queue
> >
> > Now, while I don't worry about "getblk()" itself, the request stuff and
> > blk_get_queue() _can_ be quite an issue even under non-mkfs load, so
>
> blk_get_queue() is easy to 'fix', it grabs io_request_lock for no good
> reason at all. I think this must have been a failed attempt to protect
> switching of queues, however it's obviously very broken in this regard.
> So in fact no skin is off our nose for just removing the io_request_lock
> in that path. 2.5 will have it properly reference counted...
Linus, will you take this patch to remove io_request_lock in this path?
--
Jens Axboe
[-- Attachment #2: blk-get-queue-lock-1 --]
[-- Type: text/plain, Size: 1734 bytes --]
--- drivers/block/ll_rw_blk.c~ Wed Aug 29 10:22:50 2001
+++ drivers/block/ll_rw_blk.c Wed Aug 29 10:23:12 2001
@@ -131,7 +131,7 @@
return max_sectors[MAJOR(dev)][MINOR(dev)];
}
-inline request_queue_t *__blk_get_queue(kdev_t dev)
+inline request_queue_t *blk_get_queue(kdev_t dev)
{
struct blk_dev_struct *bdev = blk_dev + MAJOR(dev);
@@ -141,22 +141,6 @@
return &blk_dev[MAJOR(dev)].request_queue;
}
-/*
- * NOTE: the device-specific queue() functions
- * have to be atomic!
- */
-request_queue_t *blk_get_queue(kdev_t dev)
-{
- request_queue_t *ret;
- unsigned long flags;
-
- spin_lock_irqsave(&io_request_lock,flags);
- ret = __blk_get_queue(dev);
- spin_unlock_irqrestore(&io_request_lock,flags);
-
- return ret;
-}
-
static int __blk_cleanup_queue(struct list_head *head)
{
struct request *rq;
@@ -1272,7 +1256,6 @@
EXPORT_SYMBOL(end_that_request_last);
EXPORT_SYMBOL(blk_init_queue);
EXPORT_SYMBOL(blk_get_queue);
-EXPORT_SYMBOL(__blk_get_queue);
EXPORT_SYMBOL(blk_cleanup_queue);
EXPORT_SYMBOL(blk_queue_headactive);
EXPORT_SYMBOL(blk_queue_make_request);
--- include/linux/blkdev.h~ Wed Aug 29 10:23:19 2001
+++ include/linux/blkdev.h Wed Aug 29 10:23:29 2001
@@ -149,8 +149,7 @@
extern void grok_partitions(struct gendisk *dev, int drive, unsigned minors, long size);
extern void register_disk(struct gendisk *dev, kdev_t first, unsigned minors, struct block_device_operations *ops, long size);
extern void generic_make_request(int rw, struct buffer_head * bh);
-extern request_queue_t *blk_get_queue(kdev_t dev);
-extern inline request_queue_t *__blk_get_queue(kdev_t dev);
+extern inline request_queue_t *blk_get_queue(kdev_t dev);
extern void blkdev_release_request(struct request *);
/*
next prev parent reply other threads:[~2001-08-29 8:27 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-08-28 17:35 The cause of the "VM" performance problem with 2.4.X Van Maren, Kevin
2001-08-28 18:52 ` Linus Torvalds
2001-08-28 19:29 ` André Dahlqvist
2001-08-29 13:49 ` Rik van Riel
2001-08-29 8:22 ` Jens Axboe
2001-08-29 8:25 ` Jens Axboe [this message]
-- strict thread matches above, loose matches on Subject: below --
2001-08-23 17:26 Van Maren, Kevin
2001-08-23 17:06 Van Maren, Kevin
2001-08-23 17:18 ` Andrew Morton
2001-08-23 1:48 Van Maren, Kevin
2001-08-23 16:33 ` Andrew Morton
2001-08-22 22:23 Van Maren, Kevin
2001-08-22 5:31 Van Maren, Kevin
2001-08-22 20:19 ` Andrew Morton
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=20010829102510.I640@suse.de \
--to=axboe@suse.de \
--cc=kevin.vanmaren@unisys.com \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.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;
as well as URLs for NNTP newsgroup(s).