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

Re: [Xen-devel] [PATCH v2 9/9] xen: support RAM at addresses 0 and 4096



On 13/09/2013 04:40, "Ian Campbell" <ian.campbell@xxxxxxxxxx> wrote:

> Currently the mapping from pages to zones causes the page at zero to go into
> zone -1 and the page at 4096 to go into zone 0, which is the Xen zone
> (confusing various assertions).
> 
> Arrange instead for the mapping to be such that zone 0 is always reserved for
> Xen and all other pages map to a zone >= 1.
> 
> Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
> Cc: keir@xxxxxxx
> Cc: jbeulich@xxxxxxxx

Acked-by: Keir Fraser <keir@xxxxxxx>

> ---
> v2: fixup my arithmetic
> ---
>  xen/common/page_alloc.c |    6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/xen/common/page_alloc.c b/xen/common/page_alloc.c
> index 41251b2..fb8187b 100644
> --- a/xen/common/page_alloc.c
> +++ b/xen/common/page_alloc.c
> @@ -257,11 +257,11 @@ unsigned long __init alloc_boot_pages(
>   */
>  
>  #define MEMZONE_XEN 0
> -#define NR_ZONES    (PADDR_BITS - PAGE_SHIFT)
> +#define NR_ZONES    (PADDR_BITS - PAGE_SHIFT + 1)
>  
> -#define bits_to_zone(b) (((b) < (PAGE_SHIFT + 1)) ? 0 : ((b) - PAGE_SHIFT -
> 1))
> +#define bits_to_zone(b) (((b) < (PAGE_SHIFT + 1)) ? 1 : ((b) - PAGE_SHIFT))
>  #define page_to_zone(pg) (is_xen_heap_page(pg) ? MEMZONE_XEN :  \
> -                          (fls(page_to_mfn(pg)) - 1))
> +                          (fls(page_to_mfn(pg)) ? : 1))
>  
>  typedef struct page_list_head
> heap_by_zone_and_order_t[NR_ZONES][MAX_ORDER+1];
>  static heap_by_zone_and_order_t *_heap[MAX_NUMNODES];



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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