[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 03 of 18] x86/mm: Eliminate hash table in sharing code as index of shared mfns



At 02:47 -0500 on 08 Dec (1323312438), Andres Lagar-Cavilla wrote:
>  xen/arch/x86/mm/mem_sharing.c     |  526 
> +++++++++++++++++++------------------
>  xen/include/asm-x86/mem_sharing.h |   15 +-
>  xen/include/asm-x86/mm.h          |   11 +-
>  xen/include/public/domctl.h       |    3 +
>  4 files changed, 296 insertions(+), 259 deletions(-)
> 
> 
> The hashtable mechanism used by the sharing code is a bit odd.  It seems
> unnecessary and adds complexity.  Instead, we replace this by storing a list
> head directly in the page info for the case when the page is shared.  This 
> does
> not add any extra space to the page_info and serves to remove significant
> complexity from sharing.
> 
> Signed-off-by: Adin Scannell <adin@xxxxxxxxxxx>
> Signed-off-by: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>

I like the look of this but I won't apply until Olaf is happy with the
interface changes.

One nit: 

> diff -r 61da3fc46f06 -r 3038770886aa xen/include/asm-x86/mem_sharing.h
> --- a/xen/include/asm-x86/mem_sharing.h
> +++ b/xen/include/asm-x86/mem_sharing.h
> @@ -22,13 +22,23 @@
>  #ifndef __MEM_SHARING_H__
>  #define __MEM_SHARING_H__
>  
> +#include <public/domctl.h>
> +
> +typedef uint64_t shr_handle_t; 
> +
> +struct page_sharing_info
> +{
> +    struct page_info *pg;   /* Back pointer to the page. */
> +    shr_handle_t handle;    /* Globally unique version / handle. */
> +    struct list_head entry; /* List of all shared pages (entry). */

IIUC this list is only used if the sharing audit code is anabled, so
it should probably be appropritaely #ifdeffed out to save space in the
non-audit case. 

Cheers,

Tim.

> +    struct list_head gfns;  /* List of domains and gfns for this page 
> (head). */
> +};
> +
>  #ifdef __x86_64__
>  


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.