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

Re: [Xen-devel] [PATCH] x86/pv: Drop create_pae_xen_mappings()



>>> On 23.08.17 at 20:11, <andrew.cooper3@xxxxxxxxxx> wrote:
> This is leftovers from the 32bit hypervisor days.  The only Xen content in
> this virtual range for 32bit PV guests is the compat M2P.  It is not critical
> that the mapping is present, nor is it critical that the slot is unshared.

Hmm, while technically correct this would allow 32-bit guests to
run on newer hypervisors that would fail on older ones. I'm not
sure this is a good idea, but I'm also not entirely opposed to it.

> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -1429,46 +1429,6 @@ static int alloc_l1_table(struct page_info *page)
>      return ret;
>  }
>  
> -static int create_pae_xen_mappings(struct domain *d, l3_pgentry_t *pl3e)
> -{
> -    struct page_info *page;
> -    l3_pgentry_t     l3e3;
> -
> -    if ( !is_pv_32bit_domain(d) )
> -        return 1;
> -
> -    pl3e = (l3_pgentry_t *)((unsigned long)pl3e & PAGE_MASK);
> -
> -    /* 3rd L3 slot contains L2 with Xen-private mappings. It *must* exist. */
> -    l3e3 = pl3e[3];
> -    if ( !(l3e_get_flags(l3e3) & _PAGE_PRESENT) )
> -    {
> -        gdprintk(XENLOG_WARNING, "PAE L3 3rd slot is empty\n");
> -        return 0;
> -    }
> -
> -    /*
> -     * The Xen-private mappings include linear mappings. The L2 thus cannot
> -     * be shared by multiple L3 tables. The test here is adequate because:
> -     *  1. Cannot appear in slots != 3 because get_page_type() checks the
> -     *     PGT_pae_xen_l2 flag, which is asserted iff the L2 appears in slot 
> 3
> -     *  2. Cannot appear in another page table's L3:
> -     *     a. alloc_l3_table() calls this function and this check will fail
> -     *     b. mod_l3_entry() disallows updates to slot 3 in an existing table

For consistency wouldn't you then better also delete the check
in mod_l3_entry() that's being referred to here? And relax the
respective checking in alloc_l3_table() to at least allow the
entry to be non-present?

Jan


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

 


Rackspace

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