Thread (3 messages) 3 messages, 2 authors, 2016-06-02

Re: Why does raid0 set max_hw_sectors as chunk size but the other raid types doesn't?

From: Joey Liao <hidden>
Date: 2016-06-02 09:30:25

Hi NeilBrown,

Thanks for your kindly reply.

Originally, I doubt that would it affect the performance or not, but I
agree with your point.

Thanks.

2016-06-02 12:38 GMT+08:00 NeilBrown [off-list ref]:
On Mon, May 30 2016, Joey Liao wrote:
quoted
Hi,

I have no idea why does raid0_run() in raid0.c use
blk_queue_max_hw_sectors() to set max_hw_sectors as the chunk size,
but the other raid types doesn't?
git is your friend.... admittedly you need the 'history' git tree to go
back before 2.6.12, but it is available.

http://git.kernel.org/cgit/linux/kernel/git/history/history.git/commit/?id=f556ef000efc90a45a285f4f0b4fd70bb70f


quoted
What's the purpose to limit the max_hw_sectors in raid0?
unfortunately the commit doesn't answer that question.  I think it was
to ensure requests larger than one chunk were not created.  If they were
they would just have to be split, so there is no much to gain.
quoted
Is it related to the source code logic issue or the performance issue?

Besides, I have an interesting observation. If I remove all the
following queue limitation codes in raid0_run() of raid0.c, the block
size in iostat is still the same as chunk size even the input block
size is much larger than the chunk size. Why???
Because when you write to a RAID0 you *must* divide each request up into
chunk-sizes sub-requests, and send them to different devices.

NeilBrown

quoted
-  blk_queue_max_hw_sectors(mddev->queue, mddev->chunk_sectors);
-  blk_queue_max_write_same_sectors(mddev->queue, mddev->chunk_sectors);
+  //blk_queue_max_hw_sectors(mddev->queue, mddev->chunk_sectors);
+  //blk_queue_max_write_same_sectors(mddev->queue, mddev->chunk_sectors);

-  blk_queue_io_min(mddev->queue, mddev->chunk_sectors << 9);
-  blk_queue_io_opt(mddev->queue,
-                 (mddev->chunk_sectors << 9) * mddev->raid_disks);
+  //blk_queue_io_min(mddev->queue, mddev->chunk_sectors << 9);
+  /*blk_queue_io_opt(mddev->queue,
+              (mddev->chunk_sectors << 9) * mddev->raid_disks);*/
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help