As func comments mentioned, few isolated page missing be tolerated.
So why not do further to drop the unlikely double check. That won't
cause more idle pages, but reduce a lock contention.

This is also a preparation for later new page isolation feature.

Signed-off-by: Alex Shi <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Johannes Weiner <[email protected]>
Cc: Matthew Wilcox <[email protected]>
Cc: Hugh Dickins <[email protected]>
Cc: [email protected]
Cc: [email protected]
---
 mm/page_idle.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/mm/page_idle.c b/mm/page_idle.c
index 057c61df12db..5fdd753e151a 100644
--- a/mm/page_idle.c
+++ b/mm/page_idle.c
@@ -32,19 +32,11 @@
 static struct page *page_idle_get_page(unsigned long pfn)
 {
        struct page *page = pfn_to_online_page(pfn);
-       pg_data_t *pgdat;
 
        if (!page || !PageLRU(page) ||
            !get_page_unless_zero(page))
                return NULL;
 
-       pgdat = page_pgdat(page);
-       spin_lock_irq(&pgdat->lru_lock);
-       if (unlikely(!PageLRU(page))) {
-               put_page(page);
-               page = NULL;
-       }
-       spin_unlock_irq(&pgdat->lru_lock);
        return page;
 }
 
-- 
1.8.3.1

Reply via email to