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 Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel