Messages in this thread | | | Date | Tue, 21 Jul 2009 13:55:13 -0400 | From | Rik van Riel <> | Subject | Re: [PATCH 06/10] ksm: identify PageKsm pages |
| |
Andrea Arcangeli wrote:
>> +static inline void page_add_ksm_rmap(struct page *page) >> +{ >> + if (atomic_inc_and_test(&page->_mapcount)) { >> + page->mapping = (void *) PAGE_MAPPING_ANON; >> + __inc_zone_page_state(page, NR_ANON_PAGES); >> + } >> +} > > Is it correct to account them as anon pages?
Yes, but ...
>> - if (PageAnon(old_page)) { >> + if (PageAnon(old_page) && !PageKsm(old_page)) { >> if (!trylock_page(old_page)) { >> page_cache_get(old_page); >> pte_unmap_unlock(page_table, ptl); > > What exactly does it buy to have PageAnon return 1 on ksm pages, > besides requiring the above additional check (that if we stick to the > above code, I would find safer to move inside reuse_swap_page).
I guess that if they are to remain unswappable, they should go onto the unevictable list.
Then again, I'm guessing this is all about to change in not too much time :)
-- All rights reversed.
| |