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

Re: [Xen-devel] [PATCH RFC v12 03/21] Remove an unnecessary assert from vmx_update_debug_state



>>> On 18.09.13 at 12:39, George Dunlap <George.Dunlap@xxxxxxxxxxxxx> wrote:
> On Mon, Sep 16, 2013 at 10:09 PM, Mukesh Rathor
> <mukesh.rathor@xxxxxxxxxx> wrote:
>> On Fri, 13 Sep 2013 17:25:03 +0100
>> George Dunlap <george.dunlap@xxxxxxxxxxxxx> wrote:
>>
>>> As far as I can tell, there's nothing here that requires v to be
>>> current.  vmx_update_exception_bitmap() is updated in other situations
>>> where v!=current.
>>>
>>> Removing this allows the PVH code to call this during vmcs
>>> construction in a later patch, making the code more robust by removing
>>> duplicate code.
>>>
>>> Signed-off-by: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
>>> CC: Mukesh Rathor <mukesh.rathor@xxxxxxxxxx>
>>> CC: Jan Beulich <jan.beulich@xxxxxxxx>
>>> CC: Tim Deegan <tim@xxxxxxx>
>>> CC: Keir Fraser <keir@xxxxxxx>
>>> ---
>>>  xen/arch/x86/hvm/vmx/vmx.c |    2 --
>>>  1 file changed, 2 deletions(-)
>>>
>>> diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c
>>> index 8ed7026..f02e47a 100644
>>> --- a/xen/arch/x86/hvm/vmx/vmx.c
>>> +++ b/xen/arch/x86/hvm/vmx/vmx.c
>>> @@ -1041,8 +1041,6 @@ void vmx_update_debug_state(struct vcpu *v)
>>>  {
>>>      unsigned long mask;
>>>
>>> -    ASSERT(v == current);
>>> -
>>>      mask = 1u << TRAP_int3;
>>>      if ( !cpu_has_monitor_trap_flag )
>>>          mask |= 1u << TRAP_debug;
>>
>>
>> vmx_update_exception_bitmap() writes EXCEPTION_BITMAP of current vmcs,
>> ie of current vcpu. If v != current, you'd be writing the bitmap of
>> wrong vcpu. If the assertion is removed, then the function would need
>> to vmx enter...
> 
> You mean, callers would need to call vmcs_enter before calling it.
> Hmm... is there an assert for that?

This is basically what the assertion you're removing does, albeit
restricting it more than it needs to be. But - do you have a use
case for the function when v != current?

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

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