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

Re: [Xen-devel] [for-4.11][PATCH v7 04/16] xen/arm: mm: Remove unused M2P code



On Tue, 3 Apr 2018, Julien Grall wrote:
> Arm does not have an M2P and very unlikely to get one in the future,
> therefore don't keep defines that are not necessary in the common code.
> 
> At the same time move the remaining M2P define just above
> set_gpfn_from_mfn to keep all the dummy helpers for M2P together.
> 
> Signed-off-by: Julien Grall <julien.grall@xxxxxxx>
> Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxx>

Acked-by: Stefano Stabellini <sstabellini@xxxxxxxxxx>


> ---
> 
> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>
> 
>     Changes in v6:
>         - Add a comment to explain why we implement dummy version of M2P
>         for Arm.
>         - Add George's reviewed-by
>         - Fix typo in the commit message
> 
>     Changes in v4:
>         - Patch added.
> ---
>  xen/include/asm-arm/mm.h | 29 ++++++++---------------------
>  1 file changed, 8 insertions(+), 21 deletions(-)
> 
> diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
> index a0e922f360..cabb1daf30 100644
> --- a/xen/include/asm-arm/mm.h
> +++ b/xen/include/asm-arm/mm.h
> @@ -313,33 +313,20 @@ static inline void *page_to_virt(const struct page_info 
> *pg)
>  struct page_info *get_page_from_gva(struct vcpu *v, vaddr_t va,
>                                      unsigned long flags);
>  
> -/*
> - * The MPT (machine->physical mapping table) is an array of word-sized
> - * values, indexed on machine frame number. It is expected that guest OSes
> - * will use it to store a "physical" frame number to give the appearance of
> - * contiguous (or near contiguous) physical memory.
> - */
> -#undef  machine_to_phys_mapping
> -#define machine_to_phys_mapping  ((unsigned long *)RDWR_MPT_VIRT_START)
> -#define INVALID_M2P_ENTRY        (~0UL)
> -#define VALID_M2P(_e)            (!((_e) & (1UL<<(BITS_PER_LONG-1))))
> -#define SHARED_M2P_ENTRY         (~0UL - 1UL)
> -#define SHARED_M2P(_e)           ((_e) == SHARED_M2P_ENTRY)
> -
> -#define _set_gpfn_from_mfn(mfn, pfn) ({                        \
> -    struct domain *d = page_get_owner(__mfn_to_page(mfn));     \
> -    if(d && (d == dom_cow))                                    \
> -        machine_to_phys_mapping[(mfn)] = SHARED_M2P_ENTRY;     \
> -    else                                                       \
> -        machine_to_phys_mapping[(mfn)] = (pfn);                \
> -    })
> -
>  static inline void put_gfn(struct domain *d, unsigned long gfn) {}
>  static inline int relinquish_shared_pages(struct domain *d)
>  {
>      return 0;
>  }
>  
> +/*
> + * Arm does not have an M2P, but common code expects a handful of
> + * M2P-related defines and functions. Provide dummy versions of these.
> + */
> +#define INVALID_M2P_ENTRY        (~0UL)
> +#define SHARED_M2P_ENTRY         (~0UL - 1UL)
> +#define SHARED_M2P(_e)           ((_e) == SHARED_M2P_ENTRY)
> +
>  /* Xen always owns P2M on ARM */
>  #define set_gpfn_from_mfn(mfn, pfn) do { (void) (mfn), (void)(pfn); } while 
> (0)
>  #define mfn_to_gmfn(_d, mfn)  (mfn)
> -- 
> 2.11.0
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

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