From: David Chinner <dgc@sgi.com>
To: lkml <linux-kernel@vger.kernel.org>
Subject: Buffered I/O to block device very slow and other SCSI issues...
Date: Thu, 20 Mar 2008 10:16:54 +1100 [thread overview]
Message-ID: <20080319231654.GA103321673@sgi.com> (raw)
4p ia64, 24GB RAM, 2.6.25-rc3, qla1280, 15krpm scsi disk.
Direct I/O:
dgc@budgie:~/xfstests$ sudo dd if=/dev/zero of=/dev/sdb6 bs=1024k count=1024 oflag=direct
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 27.8974 s, 38.5 MB/s
Doing approximately 80 512k I/os per second (disk bandwidth).
Buffered I/O:
dgc@budgie:~/xfstests$ sudo dd if=/dev/zero of=/dev/sdb6 bs=1024k count=4096
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB) copied, 427.872 s, 10.0 MB/s
Which was doing about 200 64k I/Os per second for the entire write.
Interactivity goes to hell, cpu usage is pretty much zero. I can
barely run anything, I can't ctrl-c out of running programs, etc.
It would appear that the block device is being flushed one sector at
a time:
8,22 3 8757 26.699052800 12143 Q W 9770471 + 1 [sync]
8,22 3 8760 26.699058050 12143 Q W 9770472 + 1 [sync]
8,22 3 8763 26.699063300 12143 Q W 9770473 + 1 [sync]
8,22 3 8766 26.699068900 12143 Q W 9770474 + 1 [sync]
8,22 3 8769 26.699074150 12143 Q W 9770475 + 1 [sync]
8,22 3 8772 26.699079400 12143 Q W 9770476 + 1 [sync]
8,22 3 8775 26.699084650 12143 Q W 9770477 + 1 [sync]
8,22 3 8778 26.699090200 12143 Q W 9770478 + 1 [sync]
8,22 3 8781 26.699095600 12143 Q W 9770479 + 1 [sync]
8,22 3 8784 26.699100800 12143 Q W 9770480 + 1 [sync]
8,22 3 8787 26.699106100 12143 Q W 9770481 + 1 [sync]
8,22 3 8790 26.699111700 12143 Q W 9770482 + 1 [sync]
8,22 3 8793 26.699117000 12143 Q W 9770483 + 1 [sync]
8,22 3 8796 26.699122250 12143 Q W 9770484 + 1 [sync]
8,22 3 8799 26.699127500 12143 Q W 9770485 + 1 [sync]
8,22 3 8802 26.699133100 12143 Q W 9770486 + 1 [sync]
8,22 3 8805 26.699138450 12143 Q W 9770487 + 1 [sync]
And it's only combining into 128 sector I/Os. Something wrong
with bio merging limiting the I/os to 128 elements? I'm using BSG
here, so maybe that's a factor.....
I also suspect that CTQ has not been set up correctly on this
kernel, because:
$ cat /sys/block/sdb/device/queue_depth
3
$ ls -l /sys/block/sdb/device/queue_depth
-r--r--r-- 1 root root 0 Mar 20 09:59 /sys/block/sdb/device/queue_depth
$
It appears to be hard coded to 3 and can't be changed....
Hmmm:
$ sudo sdparm -s WCE=1 /dev/sdb
SCSI INQUIRY command failed on /dev/sdb
$
Did I miss some new config option, or are things just generally broken?
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
next reply other threads:[~2008-03-20 0:08 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-03-19 23:16 David Chinner [this message]
2008-03-20 1:08 ` Buffered I/O to block device very slow and other SCSI issues Jeremy Higdon
2008-03-20 10:20 ` Andrew Morton
2008-03-20 11:59 ` Mike Snitzer
2008-03-23 23:11 ` Jeremy Higdon
2008-05-12 6:17 ` [PATCH] drivers/scsi/qla1280.c; was " Jeremy Higdon
2008-05-12 11:43 ` David Chinner
2008-05-13 0:18 ` Andrew Morton
2008-05-13 7:15 ` Jes Sorensen
2008-05-13 8:58 ` Jeremy Higdon
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=20080319231654.GA103321673@sgi.com \
--to=dgc@sgi.com \
--cc=linux-kernel@vger.kernel.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.