• Tang Junhui's avatar
    bcache: update bucket_in_use in real time · d44c2f9e
    Tang Junhui authored
    bucket_in_use is updated in gc thread which triggered by invalidating or
    writing sectors_to_gc dirty data, It's a long interval. Therefore, when we
    use it to compare with the threshold, it is often not timely, which leads
    to inaccurate judgment and often results in bucket depletion.
    
    We have send a patch before, by the means of updating bucket_in_use
    periodically In gc thread, which Coly thought that would lead high
    latency, In this patch, we add avail_nbuckets to record the count of
    available buckets, and we calculate bucket_in_use when alloc or free
    bucket in real time.
    
    [edited by ML: eliminated some whitespace errors]
    Signed-off-by: default avatarTang Junhui <tang.junhui@zte.com.cn>
    Signed-off-by: default avatarMichael Lyle <mlyle@lyle.org>
    Reviewed-by: default avatarMichael Lyle <mlyle@lyle.org>
    Reviewed-by: default avatarColy Li <colyli@suse.de>
    Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
    d44c2f9e
alloc.c 18 KB