On Sat, 22 Mar 2008 18:02:39 +0100 Carsten Otte <[EMAIL PROTECTED]> wrote:
> From: Heiko Carstens <[EMAIL PROTECTED]> > From: Christian Borntraeger <[EMAIL PROTECTED]> > > This patch changes the s390 memory management defintions to use the pgste > field > for dirty and reference bit tracking of host and guest code. Usually on s390, > dirty and referenced are tracked in storage keys, which belong to the physical > page. This changes with virtualization: The guest and host dirty/reference > bits > are defined to be the logical OR of the values for the mapping and the > physical > page. This patch implements the necessary changes in pgtable.h for s390. > > > There is a common code change in mm/rmap.c, the call to > page_test_and_clear_young > must be moved. This is a no-op for all architecture but s390. page_referenced > checks the referenced bits for the physiscal page and for all mappings: > o The physical page is checked with page_test_and_clear_young. > o The mappings are checked with ptep_test_and_clear_young and friends. > > Without pgstes (the current implementation on Linux s390) the physical page > check is implemented but the mapping callbacks are no-ops because dirty > and referenced are not tracked in the s390 page tables. The pgstes introduces > guest and host dirty and reference bits for s390 in the host mapping. These > mapping must be checked before page_test_and_clear_young resets the reference > bit. > > ... > > --- linux-host.orig/mm/rmap.c > +++ linux-host/mm/rmap.c > @@ -413,9 +413,6 @@ int page_referenced(struct page *page, i > { > int referenced = 0; > > - if (page_test_and_clear_young(page)) > - referenced++; > - > if (TestClearPageReferenced(page)) > referenced++; > > @@ -433,6 +430,10 @@ int page_referenced(struct page *page, i > unlock_page(page); > } > } > + > + if (page_test_and_clear_young(page)) > + referenced++; > + > return referenced; > } ack. ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ kvm-devel mailing list kvm-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/kvm-devel