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);