On 2020/9/10 19:28, Dongsheng Yang wrote: > Currently, if the gc is running, when the allocator found free_inc > is empty, allocator has to wait the gc finish. Before that, the > IO is blocked. > > But actually, there would be some buckets is reclaimable before gc, > and gc will never mark this kind of bucket to be unreclaimable. > > So we can put these buckets into free_inc in gc running to avoid > IO being blocked. > > Signed-off-by: Dongsheng Yang <dongsheng.yang@xxxxxxxxxxxx> Hi Dongsheng, This is not a simple change :-) Let's do more testing for this patch, and give me more time to understand the new code path. Thanks for the idea. Coly Li > --- > drivers/md/bcache/alloc.c | 11 +++++------ > drivers/md/bcache/bcache.h | 1 + > drivers/md/bcache/btree.c | 10 +++++++++- > 3 files changed, 15 insertions(+), 7 deletions(-) > [snipped]