2017年2月6日 星期一

linux writeback 機制

Writeback:
 wb_writeback-> __writeback_inodes_wb-> writeback_sb_inodes-> __writeback_single_inode->generic_writepages->write_cache_pages

1:觸發時間
wb_wakeup_delayed()下的dirty_writeback_interval
unsigned int dirty_writeback_interval = 5 * 100; /* centiseconds */
會執行一次wb_workfn()->wb_do_writeback()->wb_writeback() 剛好接續上面所提到的function.

2:alloc不到page

alloc_page_buffers()->free_more_memory()->wakeup_flusher_threads()->wb_start_writeback()在這個函數放入queue,並且透過mod_delayed_work()立即處理這個queue

沒有留言:

張貼留言