> OK right. As far as I can see, the algorithm in the RAID1 code
> is used to select the best drive to read from? If that is the
> case then I don't think it could make better decisions given
> more knowledge.
How about if it just asks the elevator whether or not a given read
is a good fit with its current workload? I saw in 2.5 where the balance
code is looking at the number of pending requests and if it's zero then
it sends it to that device. Somehow I think something better than
that could be done, anyway.
> It seems to me that a better way to layer it would be to have
> the complex (ie deadline/AS/CFQ/etc) scheduler handling all
> requests into the raid block device, then having a raid
> scheduler distributing to the disks, and having the disks
> run no scheduler (fifo).
That only works if RAID1 is working at the physical disk level (which
it should be AFAIC but people want flexibility to mirror partitions.)
> In practice the current scheme probably works OK, though I
> wouldn't know due to lack of resources here :P
I've been playing with the 2.4 read balance code and have some
improvements, but real gains need a new approach.
(cc'd to linux-raid)
-- Chuck - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/