On Tuesday June 30, adilger@xxxxxxx wrote: > On Jun 29, 2009 13:41 +0200, Jens Axboe wrote: > > ... externally it just makes the API worse since tools then have to know > > which device type they are talking to. > > > > So I still see absolutely zero point in making such a change, quite the > > opposite. > > Exactly correct. Changing these tunables just for the sake of giving > them a slightly different name is madness. Making all block devices > appear more uniform to userspace (even if they don't strictly need all > of the semantics) is very sensible. The whole point of the kernel is > to abstract away the underlying details so that userspace doesn't need > to understand it all again. Uniformity is certainly desirable. But we shouldn't take it so far as to make apples look like oranges. We wouldn't want a SATA disk drive to have 'chunk_size' and 'raid_disks'. Nor would we want a software RAID array to have a 'scheduler' or 'iosched' attributes. > > In order to get good throughput on RAID arrays we need to tune the > queue/max_* values to ensure the IO requests don't get split. > > It would be great if the MD queue/max_* values would pass these tunings > down to the underlying disk devices as well. As it stands now, we have > to follow the /sys/block/*/slaves tree to set all of these ourselves, > and before "slaves/" was introduced it was nigh impossible to automatically > tune these values. I don't think that passing these values down is - in general - a well defined problem. This is (in part) because md/dm devices can be based on partitions, and partitions don't have independent max_* values. In your particular case, I don't expect that you use partitions, so it makes perfect sense to do the tuning on a per-array basis. But I don't think that it is a concept that fits in the kernel. As you say, we have 'slaves/', which makes it practical to do this in user-space and I would rather it stayed there. NeilBrown -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel