patch: raid5: avoid release list until last reference

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Here is a very simple raid5 performance patch that reduces the number of times a stripe is queued
on the release list.
Whenever IO is scheduled for N chunks, the stripe may be queued on the release list up to N+1 times.
But, it is only handled when the reference drops to zero.
For each IO that completes, the stripe is again queued on the release list.  It is not until the last IO
completes that the stripe needs to be put on the release list.  All the other times the stripe is queued
does nothing other than add useless processing and lock contention.

This patch will reduce the number of times raid5d (or kworkers, if enabled) are woken up.  The
number of stripes that are queued on the release list will be reduced to 1/3 or 1/2 depending on the
type of write workload.

Eivind Sarto

Attachment: raid5.patch
Description: Binary data

 

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux