Neil hello I am measuring read performance of two raid5 with 7 sata disks, chunk size 1MB. when i set the stripe_cache_size to 4096 i get 240 MB/s. IO'ing from the two raids ended with 270 MB/s. i have added a code in make_request which passes the raid5 logic in the case of read. it looks like this : static int make_request (request_queue_t *q, struct bio * bi) { ..... if ( conf->raid5_bypass_read && bio_data_dir(bi) == READ ) { new_sector = raid5_compute_sector(bi->bi_sector, raid_disks, data_disks, &dd_idx, &pd_idx, conf); bi->bi_sector = new_sector; bi->bi_bdev = conf->disks[dd_idx].rdev->bdev; // // do some statics // disk_stat_inc(mddev->gendisk, ios[rw]); disk_stat_add(mddev->gendisk, sectors[rw], bio_sectors(bi)); // // make upper level to the work for me // return 1; } ... } it increased the performance to 440 MB/s. Question : What is the cost of not walking trough the raid5 code in the case of READ ? if i add and error handling code will it be suffice ? thank you -- Raz - To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html