Re: [patch] Converting writeback linked lists to a tree based data structure

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Michael Rubin <mrubin@...>
Cc: <a.p.zijlstra@...>, <akpm@...>, <linux-kernel@...>, <linux-mm@...>
Date: Friday, January 18, 2008 - 12:56 am

On Thu, Jan 17, 2008 at 01:07:05PM -0800, Michael Rubin wrote:

Suppose we want to grant longer expiration window for temp files,
adding a new list named s_dirty_tmpfile would be a handy solution.

So the question is: should we need more than 3 QoS classes?


OK.


You mean i_flush_gen? No, sync_sb_inodes() will abort on every
MAX_WRITEBACK_PAGES, and s_flush_gen will be updated accordingly.
Hence the sync will restart from big/old files.


We should have a way to go to next superblock even if new dirty inodes
or pages are emerging fast in this superblock. Fill and drain s_io
only once and then abort helps.

s_io is a stable and bounded working set in one go of superblock.


Basically you make one list_head in each rbtree node.
That list_head is recycled cyclic, and is an analog to the old
fashioned s_dirty. We need to know 'where we are' and 'where it ends'.
So an extra indicator must be introduced - i_flush_gen. It's awkward.

We are simply repeating the aged list_heads' problem.


In fact the bug is turned-around rather than fixed - now the small
files could be starved.


OK.

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [patch] Converting writeback linked lists to a tree base..., Fengguang Wu, (Fri Jan 18, 12:56 am)