• Eivind Sarto's avatar
    raid5: speedup sync_request processing · 053f5b65
    Eivind Sarto authored
    The raid5 sync_request() processing calls handle_stripe() within the context of
    the resync-thread.  The resync-thread issues the first set of read requests
    and this adds execution latency and slows down the scheduling of the next
    sync_request().
    The current rebuild/resync speed of raid5 is not much faster than what
    rotational HDDs can sustain.
    Testing the following patch on a 6-drive array, I can increase the rebuild
    speed from 100 MB/s to 175 MB/s.
    The sync_request() now just sets STRIPE_HANDLE and releases the stripe.  This
    creates some more parallelism between the resync-thread and raid5 kernel daemon.
    Signed-off-by: default avatarEivind Sarto <esarto@fusionio.com>
    Signed-off-by: default avatarNeilBrown <neilb@suse.de>
    053f5b65
raid5.c 200 KB