Re: [PATCH v3] bcache: set max writeback rate when I/O request is idle

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

 



On 2018/7/26 7:49 PM, Stefan Priebe - Profihost AG wrote:
> Am 26.07.2018 um 12:42 schrieb Coly Li:
>> Commit b1092c9af9ed ("bcache: allow quick writeback when backing idle")
>> allows the writeback rate to be faster if there is no I/O request on a
>> bcache device. It works well if there is only one bcache device attached
>> to the cache set. If there are many bcache devices attached to a cache
>> set, it may introduce performance regression because multiple faster
>> writeback threads of the idle bcache devices will compete the btree level
>> locks with the bcache device who have I/O requests coming.
>>
>> This patch fixes the above issue by only permitting fast writebac when
>> all bcache devices attached on the cache set are idle. And if one of the
>> bcache devices has new I/O request coming, minimized all writeback
>> throughput immediately and let PI controller __update_writeback_rate()
>> to decide the upcoming writeback rate for each bcache device.
>>
>> Also when all bcache devices are idle, limited wrieback rate to a small
>> number is wast of thoughput, especially when backing devices are slower
>> non-rotation devices (e.g. SATA SSD). This patch sets a max writeback
>> rate for each backing device if the whole cache set is idle. A faster
>> writeback rate in idle time means new I/Os may have more available space
>> for dirty data, and people may observe a better write performance then.
>>
>> Please note bcache may change its cache mode in run time, and this patch
>> still works if the cache mode is switched from writeback mode and there
>> is still dirty data on cache.
> 
> Tested-by: Stefan Priebe <s.priebe@xxxxxxxxxxxx>
> 
> Working fine now.
> 

Great news, thanks !

Coly Li

>> Fixes: Commit b1092c9af9ed ("bcache: allow quick writeback when backing idle")
>> Cc: stable@xxxxxxxxxxxxxxx #4.16+
>> Signed-off-by: Coly Li <colyli@xxxxxxx>
>> Tested-by: Kai Krakow <kai@xxxxxxxxxxx>
>> Cc: Michael Lyle <mlyle@xxxxxxxx>
>> Cc: Stefan Priebe <s.priebe@xxxxxxxxxxxx>
>> ---
>> Channgelog:
>> v3, Do not acquire bch_register_lock in set_at_max_writeback_rate().
>> v2, Fix a deadlock reported by Stefan Priebe.
>> v1, Initial version.
>>
>>  drivers/md/bcache/bcache.h    | 10 ++--
>>  drivers/md/bcache/request.c   | 54 ++++++++++++++++++++-
>>  drivers/md/bcache/super.c     |  4 ++
>>  drivers/md/bcache/sysfs.c     | 14 ++++--
>>  drivers/md/bcache/util.c      |  2 +-
>>  drivers/md/bcache/util.h      |  2 +-
>>  drivers/md/bcache/writeback.c | 91 +++++++++++++++++++++++------------
>>  7 files changed, 133 insertions(+), 44 deletions(-)
[snipped]




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux