On 03/01/2020 16:08, Wei Liu wrote:
> @@ -83,14 +84,39 @@ static void __init setup_hypercall_page(void)
> wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
> }
>
> +static void setup_hypercall_pcpu_arg(void)
> +{
> + struct page_info *pg;
> + void *mapping;
> + unsigned int cpu = smp_processor_id();
> +
> + pg = alloc_domheap_page(NULL, 0);
> + if ( !pg )
> + panic("Failed to setup hypercall input page for %u\n", cpu);
> +
> + mapping = __map_domain_page_global(pg);
> + if ( !mapping )
> + panic("Failed to map hypercall input page for %u\n", cpu);
Sorry I didn't spot this before, but an always-mapped domheap page is
just alloc_xenheap_page() (give or take NUMA positioning above the 5T
boundary, which isn't used here).
~Andrew
_______________________________________________
Xen-devel mailing list
[email protected]
https://lists.xenproject.org/mailman/listinfo/xen-devel