Re: Writeback cache all used.

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

 



On Thu, 4 May 2023, Coly Li wrote:
> > 2023年5月3日 04:34,Eric Wheeler <bcache@xxxxxxxxxxxxxxxxxx> 写道:
> > 
> > On Thu, 20 Apr 2023, Adriano Silva wrote:
> >> I continue to investigate the situation. There is actually a performance 
> >> gain when the bcache device is only half filled versus full. There is a 
> >> reduction and greater stability in the latency of direct writes and this 
> >> improves my scenario.
> > 
> > Hi Coly, have you been able to look at this?
> > 
> > This sounds like a great optimization and Adriano is in a place to test 
> > this now and report his findings.
> > 
> > I think you said this should be a simple hack to add early reclaim, so 
> > maybe you can throw a quick patch together (even a rough first-pass with 
> > hard-coded reclaim values)
> > 
> > If we can get back to Adriano quickly then he can test while he has an 
> > easy-to-reproduce environment.  Indeed, this could benefit all bcache 
> > users.
> 
> My current to-do list on hand is a little bit long. Yes I’d like and 
> plan to do it, but the response time cannot be estimated.

I understand.  Maybe I can put something together if you can provide some 
pointers since you are _the_ expert on bcache these days.  Here are a few 
questions:

Q's for Coly:

- It looks like it could be a simple change to bch_allocator_thread().  
  Is this the right place? 
  https://elixir.bootlin.com/linux/v6.3-rc5/source/drivers/md/bcache/alloc.c#L317
    - On alloc.c:332
	if (!fifo_pop(&ca->free_inc, bucket))
      does it just need to be modified to something like this:
	if (!fifo_pop(&ca->free_inc, bucket) || 
		total_unused_cache_percent() < 20)
      if so, where does bcache store the concept of "Total Unused Cache" ?

- If I'm going about it wrong above, then where is the code path in bcache 
  that frees a bucket such that it is completely unused (ie, as it was
  after `make-bcache -C`?)


Q's Adriano:

Where did you get these cache details from your earlier post?  In /sys 
somewhere, probably, but I didn't find them:

	Total Cache Size 553.31GiB
	Total Cache Used 547.78GiB (99%)
	Total Unused Cache 5.53GiB (1%)
	Dirty Data 0B (0%)
	Evictable Cache 503.52GiB (91%)



--
Eric Wheeler



> 
> Coly Li
> 
> [snipped]

[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