|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 05/11] x86/altp2m: basic data structures and support routines.
At 13:59 -0700 on 25 Mar (1427291983), Ed White wrote:
> >>> diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
> >>> index abf3d7a..8fe0650 100644
> >>> --- a/xen/arch/x86/mm/hap/hap.c
> >>> +++ b/xen/arch/x86/mm/hap/hap.c
> >>> @@ -439,7 +439,7 @@ void hap_domain_init(struct domain *d)
> >>> int hap_enable(struct domain *d, u32 mode)
> >>> {
> >>> unsigned int old_pages;
> >>> - uint8_t i;
> >>> + uint16_t i;
> >>> int rv = 0;
> >>>
> >>> domain_pause(d);
> >>> @@ -485,6 +485,23 @@ int hap_enable(struct domain *d, u32 mode)
> >>> goto out;
> >>> }
> >>>
> >>> + /* Init alternate p2m data */
> >>> + if ( (d->arch.altp2m_eptp = alloc_xenheap_page()) == NULL )
> >>
> >> This memory should be allocated from some domain-accounted pool,
> >> probably the paging pool (d->->arch.paging.alloc_page()). You can use
> >> map_domain_page_global() to get a safe pointer to anchor in
> >> d->arch.altp2m_eptp for hardware.
>
> I tried this but could not get it to work due to panics in Xen.
> Looking at the current VMX code, all the existing structures
> shared with hardware (VMCS, exception bitmap, etc.) are allocated
> using alloc_xenheap_page(), which is what induced me to write the
> code this way.
This page is a per-domain page of pointers, right, and not the actual
top-level page of an alt-EPT table? In that case, alloc_xenheap_page()
should be OK.
Cheers,
Tim.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |