|
[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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |