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
[email protected]
https://lists.sourceforge.net/lists/listinfo/kvm-devel