[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] x86/msr: Fix fallout from mostly c/s 832c180



On Wed, Apr 10, 2019 at 10:41:24AM +0100, Andrew Cooper wrote:
> On 10/04/2019 09:23, Wei Liu wrote:
> > On Tue, Apr 09, 2019 at 06:53:47PM +0100, Andrew Cooper wrote:
> >> The series 832c1803^..f61685a6 was committed without adequate review.
> >>
> >>  * Fix the shim build by providing a !CONFIG_HVM declaration for
> >>    hvm_get_guest_bndcfgs()
> >>  * Revert the bogus de-const'ing of the vcpu pointer in
> >>    vmx_get_guest_bndcfgs().  vmx_vmcs_enter() really does mutate the vcpu, 
> >> and
> >>    may cause it to undergo a full de/reschedule, which is in violation of 
> >> the
> >>    ABI described by hvm_get_guest_bndcfgs().  guest_rdmsr() was always 
> >> going
> >>    to need to lose its const parameter, and this was the correct time for 
> >> it
> >>    to happen.
> > Enlighten me -- why does guest_rdmsr need to lose its const parameter?
> >
> > This reads as if the code was buggy from the get-go.
> 
> It was originally written without a const vcpu *, in full knowledge that
> when moving onto some of the less trivial MSRs, it would need a mutable
> parameter.
> 
> Of course, this wasn't considered a good enough argument during review,
> and to avoid an argument, it went in with a const parameter.
> 
> The state of the MSRs may live in various memory structures, or directly
> in hardware (covers the two cases thus far), or in the VMCS/VMCB, (or
> worse, the MSR load/save lists).  This patch adds the first example of
> needing to access data straight from the VMCS, which involves
> negotiating with the scheduler for safe access.

Thanks for the explanation.

Wei.

> 
> ~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.