From: Pete Zaitcev <zaitcev@redhat.com>
To: Jens Axboe <axboe@suse.de>
Cc: linux-kernel@vger.kernel.org, zaitcev@redhat.com
Subject: Re: Merging fails reading /dev/uba1
Date: Mon, 21 Feb 2005 10:24:31 -0800 [thread overview]
Message-ID: <20050221102431.64de6c6c@localhost.localdomain> (raw)
In-Reply-To: <20050221075131.GT4056@suse.de>
On Mon, 21 Feb 2005 08:51:32 +0100, Jens Axboe <axboe@suse.de> wrote:
> > [root@lembas ~]# time dd if=/dev/uba of=/dev/null bs=10k count=10240
> > real 0m22.731s
> > [root@lembas ~]# time dd if=/dev/uba1 of=/dev/null bs=10k count=10240
> > real 1m42.622s
> > So, reading from a partition of the same device is 5 times slower than
> > reading from the device itself. The question is, why?
> I can't explain why the replugging slows it down, maybe you were lucky
> to get contigious pages in the first case? As far as I can see, ub
> effectively disables merging by setting max hw/phys segment limit of 1.
If you mean physical replugging, it has nothing to do with the issue.
I only mentioned it to show that old pages were purged.
Contiguous pages have nothing to do with it either. I forgot to mention
that in the first case (whole device), all reads are done with length of
4KB, while in the second case (partition), all reads are 512 bytes long.
Basically, the key is reading from a partition or not. It causes the
sub-page sized merging to fail.
This is how paritioning looks:
[root@lembas zaitcev]# fdisk /dev/uba
Command (m for help): p
Disk /dev/uba: 1048 MB, 1048576000 bytes
64 heads, 32 sectors/track, 1000 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
/dev/uba1 * 1 1000 1023983+ 6 FAT16
Partition 1 has different physical/logical endings:
phys=(998, 63, 32) logical=(999, 63, 31)
Command (m for help):
It does not look to me as if the partition started from an odd number
of sectors. In fact, it starts from a full number of pages.
The segment number hint was a good one. I can implement a fake s/g
capability easily within the driver, if this is suggested. But before
hacking on that, I'd like to note that I'm surprised how the block
layer is unable to coalesce sector-sized reads within a page. Also,
why does this depend on partitioning? Something is fishy here.
-- Pete
next prev parent reply other threads:[~2005-02-21 18:24 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-21 4:00 Merging fails reading /dev/uba1 Pete Zaitcev
2005-02-21 7:51 ` Jens Axboe
2005-02-21 18:24 ` Pete Zaitcev [this message]
2005-02-21 18:31 ` Jeff Garzik
2005-02-21 20:00 ` Linus Torvalds
2005-02-22 0:41 ` Pete Zaitcev
2005-02-22 1:48 ` Linus Torvalds
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=20050221102431.64de6c6c@localhost.localdomain \
--to=zaitcev@redhat.com \
--cc=axboe@suse.de \
--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.