2014-09-02 66 views
0

據我所知,lowmemorykiller將自己註冊到shrinker_list。 當免費頁數達到閾值以下時,kswapd進程進入畫面。 但我無法理解kswapd進程如何從shrinker_list調用lowmemorykiller。 任何幫助將不勝感激。(確切的代碼點)如何從kswapd進程調用lowmemorykiller?

謝謝 普拉迪普

回答

1

有一個struct shrinker。它已註冊register_shrinker()。它在mm/vmscan中定義,並將收縮器添加到shrinker_list。然後shrink_slab()爲每個收縮器調用shrink_slab_node(),這又稱爲收縮器的count_objects()scan_objects()