|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v7 05/10] x86/hyperv: setup hypercall page
On Wed, Feb 05, 2020 at 03:04:16PM +0100, Roger Pau Monné wrote:
[...]
> > +static void __init setup_hypercall_page(void)
> > +{
> > + union hv_x64_msr_hypercall_contents hypercall_msr;
> > + union hv_guest_os_id guest_id;
> > + unsigned long mfn;
> > +
> > + BUILD_BUG_ON(HV_HYP_PAGE_SHIFT != PAGE_SHIFT);
> > +
> > + rdmsrl(HV_X64_MSR_GUEST_OS_ID, guest_id.raw);
> > + if ( !guest_id.raw )
> > + {
> > + guest_id.raw = generate_guest_id();
> > + wrmsrl(HV_X64_MSR_GUEST_OS_ID, guest_id.raw);
> > + }
> > +
> > + rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
> > + if ( !hypercall_msr.enable )
> > + {
> > + mfn = HV_HCALL_MFN;
> > + hypercall_msr.enable = 1;
> > + hypercall_msr.guest_physical_address = mfn;
> > + wrmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
> > + }
> > + else
> > + mfn = hypercall_msr.guest_physical_address;
>
> Is it expected that the guest ID or the hypercal page is already
> setup?
>
> Ie: would virtual firmware setup any of this? (and not clean it up
> afterwards)
There is no definitive answer to why/when this happens in TLFS, but it
does require guest to respect that is already in the MSR.
Wei.
>
> Thanks, Roger.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |