|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v5 6/9] xen/arm: introduce CDF_staticmem
On Tue, 31 May 2022, Penny Zheng wrote:
> In order to have an easy and quick way to find out whether this domain memory
> is statically configured, this commit introduces a new flag CDF_staticmem and
> a
> new helper is_domain_using_staticmem() to tell.
>
> Signed-off-by: Penny Zheng <penny.zheng@xxxxxxx>
I realize Jan asked for improvements but I just wanted to say that on my
side it looks good.
> ---
> v5 changes:
> - guard "is_domain_using_staticmem" under CONFIG_STATIC_MEMORY
> - #define is_domain_using_staticmem zero if undefined
> ---
> v4 changes:
> - no changes
> ---
> v3 changes:
> - change name from "is_domain_static()" to "is_domain_using_staticmem"
> ---
> v2 changes:
> - change name from "is_domain_on_static_allocation" to "is_domain_static()"
> ---
> xen/arch/arm/domain_build.c | 5 ++++-
> xen/arch/arm/include/asm/domain.h | 4 ++++
> xen/include/xen/domain.h | 6 ++++++
> 3 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 7ddd16c26d..f6e2e44c1e 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -3287,9 +3287,12 @@ void __init create_domUs(void)
> if ( !dt_device_is_compatible(node, "xen,domain") )
> continue;
>
> + if ( dt_find_property(node, "xen,static-mem", NULL) )
> + flags |= CDF_staticmem;
> +
> if ( dt_property_read_bool(node, "direct-map") )
> {
> - if ( !IS_ENABLED(CONFIG_STATIC_MEMORY) ||
> !dt_find_property(node, "xen,static-mem", NULL) )
> + if ( !IS_ENABLED(CONFIG_STATIC_MEMORY) || !(flags &
> CDF_staticmem) )
> panic("direct-map is not valid for domain %s without static
> allocation.\n",
> dt_node_name(node));
>
> diff --git a/xen/arch/arm/include/asm/domain.h
> b/xen/arch/arm/include/asm/domain.h
> index fe7a029ebf..6bb999aff0 100644
> --- a/xen/arch/arm/include/asm/domain.h
> +++ b/xen/arch/arm/include/asm/domain.h
> @@ -31,6 +31,10 @@ enum domain_type {
>
> #define is_domain_direct_mapped(d) ((d)->cdf & CDF_directmap)
>
> +#ifdef CONFIG_STATIC_MEMORY
> +#define is_domain_using_staticmem(d) ((d)->cdf & CDF_staticmem)
> +#endif
> +
> /*
> * Is the domain using the host memory layout?
> *
> diff --git a/xen/include/xen/domain.h b/xen/include/xen/domain.h
> index 1c3c88a14d..c613afa57e 100644
> --- a/xen/include/xen/domain.h
> +++ b/xen/include/xen/domain.h
> @@ -34,6 +34,12 @@ void arch_get_domain_info(const struct domain *d,
> #ifdef CONFIG_ARM
> /* Should domain memory be directly mapped? */
> #define CDF_directmap (1U << 1)
> +/* Is domain memory on static allocation? */
> +#define CDF_staticmem (1U << 2)
> +#endif
> +
> +#ifndef is_domain_using_staticmem
> +#define is_domain_using_staticmem(d) ((void)(d), false)
> #endif
>
> /*
> --
> 2.25.1
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |