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

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

 



Am 24.07.2018 um 18:36 schrieb Coly Li:
> On 2018/7/24 4:33 PM, Stefan Priebe - Profihost AG wrote:
>> Am 24.07.2018 um 10:28 schrieb Coly Li:
>>> On 2018/7/24 3:16 PM, Stefan Priebe - Profihost AG wrote:
>>>> Am 24.07.2018 um 06:03 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.
>>>>>
>>>>> 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>
>>>>
>>>> Hi Coly,
>>>>
>>>> i'm still experiencing the same bug as yesterday while rebooting every
>>>> two times i get a deadlock in cache_set_free.
>>>>
>>>> Sadly it's so late ion the shutdown process that netconsole is already
>>>> unloaded or at least i get no messages from while it happens. The traces
>>>> look the same like yesterday.
>>>
>>> Hi Stefan,
>>>
>>> Do you use the v2 patch on latest SLE15 kernel source?
>>
>> Yes - i use the kernel code from here:
>> https://github.com/openSUSE/kernel-source/commits/SLE15
>>
>>> Let me try to
>>> reproduce it on my machine. I assume when you reboot, the cache is still
>>> dirty and not clean up, am I right ?
>>
>> Yes with around 15GB of dirty data - ceph is running on top of it and
>> generated many random writes.
>>
>>> And which file system do you mount
>>> on top of the bcache device ?
>> XFS
> 
> Hi Stefan,
> 
> Thanks for the information. I managed to reproduce a similar deadlock on
> my small box. Let me see how to fix it and post a new version ASAP :-)

Great!

> 
> Coly Li
> --
> To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-bcache" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux ARM Kernel]     [Linux Filesystem Development]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux