0
據我所知,lowmemorykiller將自己註冊到shrinker_list。 當免費頁數達到閾值以下時,kswapd進程進入畫面。 但我無法理解kswapd進程如何從shrinker_list調用lowmemorykiller。 任何幫助將不勝感激。(確切的代碼點)如何從kswapd進程調用lowmemorykiller?
謝謝 普拉迪普
據我所知,lowmemorykiller將自己註冊到shrinker_list。 當免費頁數達到閾值以下時,kswapd進程進入畫面。 但我無法理解kswapd進程如何從shrinker_list調用lowmemorykiller。 任何幫助將不勝感激。(確切的代碼點)如何從kswapd進程調用lowmemorykiller?
謝謝 普拉迪普
有一個struct shrinker
。它已註冊register_shrinker()
。它在mm/vmscan中定義,並將收縮器添加到shrinker_list
。然後shrink_slab()
爲每個收縮器調用shrink_slab_node()
,這又稱爲收縮器的count_objects()
和scan_objects()
。