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

Reply via email to