Re: Re: [PATCH] update bucket_in_use in real time

2017-10-24 Thread Michael Lyle
On Tue, Oct 24, 2017 at 6:21 PM, wrote: >>> static void bch_btree_gc_finish(struct cache_set *c) >> available should be removed and this function should return 0. > I have changed this function to a void type, so nothing need return. Sorry, I misread that. :) >>> + stats.in_use

Re: Re: [PATCH] update bucket_in_use in real time

2017-10-24 Thread tang . junhui
From: Tang Junhui Thanks to Mike and Coly's comments. >> + if(ca->set->avail_nbuckets > 0) { >> + ca->set->avail_nbuckets--; >> + bch_update_bucket_in_use(ca->set); >> + } >> + > > I am not sure this needs an atomic

Re: [PATCH] update bucket_in_use in real time

2017-10-24 Thread Coly Li
On 2017/10/25 上午2:50, Michael Lyle wrote: > Hi--- > > On 10/24/2017 01:57 AM, tang.jun...@zte.com.cn wrote: >> From: Tang Junhui >> >> 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 t

Re: [PATCH] update bucket_in_use in real time

2017-10-24 Thread Michael Lyle
Hi--- On 10/24/2017 01:57 AM, tang.jun...@zte.com.cn wrote: > From: Tang Junhui > > 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

Re: [PATCH] update bucket_in_use in real time

2017-10-24 Thread Coly Li
On 2017/10/24 下午4:57, tang.jun...@zte.com.cn wrote: > From: Tang Junhui > > 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 l

[PATCH] update bucket_in_use in real time

2017-10-24 Thread tang . junhui
From: Tang Junhui 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 deplet