On 16.01.2024 20:25, Elias El Yandouzi wrote:
> From: Wei Liu <[email protected]>
>
> It is going to be needed by HVM and idle domain as well, because without
> the direct map, both need a mapcache to map pages.
>
> This only lifts the mapcache variable up. Whether we populate the
> mapcache for a domain is unchanged in this patch.
Is it? I wonder because of ...
> --- a/xen/arch/x86/domain.c
> +++ b/xen/arch/x86/domain.c
> @@ -843,6 +843,8 @@ int arch_domain_create(struct domain *d,
>
> psr_domain_init(d);
>
> + mapcache_domain_init(d);
> +
> if ( is_hvm_domain(d) )
> {
> if ( (rc = hvm_domain_initialise(d, config)) != 0 )
> @@ -850,8 +852,6 @@ int arch_domain_create(struct domain *d,
> }
> else if ( is_pv_domain(d) )
> {
> - mapcache_domain_init(d);
> -
> if ( (rc = pv_domain_initialise(d)) != 0 )
> goto fail;
> }
... this and ...
> --- a/xen/arch/x86/domain_page.c
> +++ b/xen/arch/x86/domain_page.c
> @@ -82,11 +82,11 @@ void *map_domain_page(mfn_t mfn)
> #endif
>
> v = mapcache_current_vcpu();
> - if ( !v || !is_pv_vcpu(v) )
> + if ( !v )
> return mfn_to_virt(mfn_x(mfn));
... this and yet more changes indicating otherwise.
Yet if which domains have a mapcache set up is already changed here, I
wonder whether the idle domain shouldn't be taken care of here as well.
Jan