search for: page_make_volatile

Displaying 19 results from an estimated 19 matches for "page_make_volatile".

2007 Apr 18
0
[patch 7/9] Guest page hinting: minor fault optimization.
...anon_rmap/page_add_file_rmap try to get the page into volatile state. If these two calls are removed we end up with almost all pages in stable. The reason is that if a page is not uptodate yet, there is an additional reference acquired from filemap_nopage. After the page has been brought uptodate a page_make_volatile needs to be done with an offset of 2 (page cache reference + additional reference from filemap_nopage). That removes the state transitions on the minor fault path. A page that has been mapped will eventually be unmapped again. On the unmap path each page that has been removed from the page table i...
2007 Apr 18
0
[patch 7/9] Guest page hinting: minor fault optimization.
...anon_rmap/page_add_file_rmap try to get the page into volatile state. If these two calls are removed we end up with almost all pages in stable. The reason is that if a page is not uptodate yet, there is an additional reference acquired from filemap_nopage. After the page has been brought uptodate a page_make_volatile needs to be done with an offset of 2 (page cache reference + additional reference from filemap_nopage). That removes the state transitions on the minor fault path. A page that has been mapped will eventually be unmapped again. On the unmap path each page that has been removed from the page table i...
2007 Apr 18
4
[patch 3/9] Guest page hinting: volatile page cache.
...s the page needs to get discarded. That removes the page table entry as well. Two new page flags are added. To guard against concurrent page state updates the PG_state_change flag is used. It prevents that a transition to the stable state can "overtake" a transition to volatile state. If page_make_volatile has already done the 10 checks it will issue the state change primitive. If in the meantime on of the conditions has changed the user that requires the page in stable state will have to wait until the make volatile operation has finished. The make volatile operation does not wait for the PG_state_c...
2007 Apr 18
4
[patch 3/9] Guest page hinting: volatile page cache.
...s the page needs to get discarded. That removes the page table entry as well. Two new page flags are added. To guard against concurrent page state updates the PG_state_change flag is used. It prevents that a transition to the stable state can "overtake" a transition to volatile state. If page_make_volatile has already done the 10 checks it will issue the state change primitive. If in the meantime on of the conditions has changed the user that requires the page in stable state will have to wait until the make volatile operation has finished. The make volatile operation does not wait for the PG_state_c...
2009 Mar 27
16
[patch 0/6] Guest page hinting version 7.
Greetings, the circus is back in town -- another version of the guest page hinting patches. The patches differ from version 6 only in the kernel version, they apply against 2.6.29. My short sniff test showed that the code is still working as expected. To recap (you can skip this if you read the boiler plate of the last version of the patches): The main benefit for guest page hinting vs. the
2009 Mar 27
16
[patch 0/6] Guest page hinting version 7.
Greetings, the circus is back in town -- another version of the guest page hinting patches. The patches differ from version 6 only in the kernel version, they apply against 2.6.29. My short sniff test showed that the code is still working as expected. To recap (you can skip this if you read the boiler plate of the last version of the patches): The main benefit for guest page hinting vs. the
2009 Mar 27
16
[patch 0/6] Guest page hinting version 7.
Greetings, the circus is back in town -- another version of the guest page hinting patches. The patches differ from version 6 only in the kernel version, they apply against 2.6.29. My short sniff test showed that the code is still working as expected. To recap (you can skip this if you read the boiler plate of the last version of the patches): The main benefit for guest page hinting vs. the
2007 Jun 28
6
[patch 0/6] resend: guest page hinting version 5.
Greetings, after Carsten pitched CMM2 on the kvm mini summit here is a repost of version 5 of the guest page hinting patches. The code is still the same but has been adapted to the latest git level. -- blue skies, Martin. "Reality continues to ruin my life." - Calvin.
2007 Jun 28
6
[patch 0/6] resend: guest page hinting version 5.
Greetings, after Carsten pitched CMM2 on the kvm mini summit here is a repost of version 5 of the guest page hinting patches. The code is still the same but has been adapted to the latest git level. -- blue skies, Martin. "Reality continues to ruin my life." - Calvin.
2007 May 11
6
[patch 0/6] [rfc] guest page hinting version 5
After way to many months here is the fifth version of the guest page hinting patches. Compared to version four a few improvements have been added: - Avoid page_host_discards() calls outside of page-states.h - The discard list is now implemented via the page_free_discarded hook and architecture specific code. - PG_state_change page flag has been replaced with architecture specficic
2007 May 11
6
[patch 0/6] [rfc] guest page hinting version 5
After way to many months here is the fifth version of the guest page hinting patches. Compared to version four a few improvements have been added: - Avoid page_host_discards() calls outside of page-states.h - The discard list is now implemented via the page_free_discarded hook and architecture specific code. - PG_state_change page flag has been replaced with architecture specficic
2007 Apr 18
1
[patch 5/9] Guest page hinting: mlocked pages.
...e <frankeh@watson.ibm.com> From: Himanshu Raj <rhim@cc.gatech.edu> [patch 5/9] Guest page hinting: mlocked pages. Add code to get mlock() working with guest page hinting. The problem with mlock is that locked pages may not be removed from page cache. That means they need to be stable. page_make_volatile needs a way to check if a page has been locked. To avoid traversing vma lists - which would hurt performance a lot - a field is added in the struct address_space. This field is set in mlock_fixup if a vma gets mlocked. The bit never gets removed - once a file had an mlocked vma all future pages add...
2007 Apr 18
1
[patch 5/9] Guest page hinting: mlocked pages.
...e <frankeh@watson.ibm.com> From: Himanshu Raj <rhim@cc.gatech.edu> [patch 5/9] Guest page hinting: mlocked pages. Add code to get mlock() working with guest page hinting. The problem with mlock is that locked pages may not be removed from page cache. That means they need to be stable. page_make_volatile needs a way to check if a page has been locked. To avoid traversing vma lists - which would hurt performance a lot - a field is added in the struct address_space. This field is set in mlock_fixup if a vma gets mlocked. The bit never gets removed - once a file had an mlocked vma all future pages add...
2007 Apr 18
0
[patch 6/9] Guest page hinting: writable page table entries.
...e is established. + * - page_reset_writable: + * Resets the page state after the last writable page table entry + * refering to the page has been removed. */ extern void page_unmap_all(struct page *page); extern void page_discard(struct page *page); @@ -84,4 +90,21 @@ static inline void page_make_volatile(st __page_make_volatile(page, offset); } +static inline void page_check_writable(struct page *page, pte_t pte) +{ + extern void __page_check_writable(struct page *, pte_t); + if (!page_host_discards() || !pte_write(pte) || + test_bit(PG_writable, &page->flags)) + return; + __page_...
2007 Apr 18
0
[patch 6/9] Guest page hinting: writable page table entries.
...e is established. + * - page_reset_writable: + * Resets the page state after the last writable page table entry + * refering to the page has been removed. */ extern void page_unmap_all(struct page *page); extern void page_discard(struct page *page); @@ -84,4 +90,21 @@ static inline void page_make_volatile(st __page_make_volatile(page, offset); } +static inline void page_check_writable(struct page *page, pte_t pte) +{ + extern void __page_check_writable(struct page *, pte_t); + if (!page_host_discards() || !pte_write(pte) || + test_bit(PG_writable, &page->flags)) + return; + __page_...
2007 Apr 18
2
[patch 4/9] Guest page hinting: volatile swap cache.
...23.000000000 +0200 +++ linux-2.6-patched/mm/rmap.c 2006-09-01 12:50:23.000000000 +0200 @@ -537,6 +537,7 @@ void page_add_anon_rmap(struct page *pag if (atomic_inc_and_test(&page->_mapcount)) __page_set_anon_rmap(page, vma, address); /* else checking page index and mapping is racy */ + page_make_volatile(page, 1); } /* @@ -934,13 +935,13 @@ int try_to_unmap(struct page *page, int #if defined(CONFIG_PAGE_STATES) /** - * page_unmap_all - removes all mappings of a page + * page_unmap_file - removes all mappings of a file page * * @page: the page which mapping in the vma should be struck d...
2007 Apr 18
2
[patch 4/9] Guest page hinting: volatile swap cache.
...23.000000000 +0200 +++ linux-2.6-patched/mm/rmap.c 2006-09-01 12:50:23.000000000 +0200 @@ -537,6 +537,7 @@ void page_add_anon_rmap(struct page *pag if (atomic_inc_and_test(&page->_mapcount)) __page_set_anon_rmap(page, vma, address); /* else checking page index and mapping is racy */ + page_make_volatile(page, 1); } /* @@ -934,13 +935,13 @@ int try_to_unmap(struct page *page, int #if defined(CONFIG_PAGE_STATES) /** - * page_unmap_all - removes all mappings of a page + * page_unmap_file - removes all mappings of a file page * * @page: the page which mapping in the vma should be struck d...
2007 Apr 18
0
[patch 9/9] Guest page hinting: full s390 support.
...o reinstate ptes * faster for those pages still in swapcache. */ - if (page_test_and_clear_dirty(page)) + if (page_test_dirty(page)) { + BUG_ON(!page_make_stable(page)); + /* + * We decremented the mapcount so we now have an + * extra reference for the page. That prevents + * page_make_volatile from making the page + * volatile again while the dirty bit is in + * transit. + */ + page_clear_dirty(page); set_page_dirty(page); + } __dec_zone_page_state(page, PageAnon(page) ? NR_ANON_PAGES : NR_FILE_MAPPED); page_reset_writable(page);
2007 Apr 18
0
[patch 9/9] Guest page hinting: full s390 support.
...o reinstate ptes * faster for those pages still in swapcache. */ - if (page_test_and_clear_dirty(page)) + if (page_test_dirty(page)) { + BUG_ON(!page_make_stable(page)); + /* + * We decremented the mapcount so we now have an + * extra reference for the page. That prevents + * page_make_volatile from making the page + * volatile again while the dirty bit is in + * transit. + */ + page_clear_dirty(page); set_page_dirty(page); + } __dec_zone_page_state(page, PageAnon(page) ? NR_ANON_PAGES : NR_FILE_MAPPED); page_reset_writable(page);