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

Re: [Xen-devel] [PATCH 1/2] x86/vmx: Introduce a bitfield structure for EPT_VIOLATION EXIT_QUALIFICATIONs



On 31/01/17 10:19, Jan Beulich wrote:
>>>> On 30.01.17 at 17:54, <andrew.cooper3@xxxxxxxxxx> wrote:
>> This results in rather more readable code.  No functional change.
>>
>> All fields currently specified are included, but commented out as no support
>> for their use is present.
> I'd rather not see them be commented out: Why should the first user
> of them have to touch the structure declaration another time?

I purposefully don't want someone to think they can use .eff_user_exec
before doing the work to enable the feature (which amongst other things
will involve shuffling the position of bits in an ept_entry_t as the
hardware user exec bit is currently where Xen's .recalc bit currently
lives).

>
>> @@ -3792,11 +3789,11 @@ void vmx_vmexit_handler(struct cpu_user_regs *regs)
>>  
>>      case EXIT_REASON_EPT_VIOLATION:
>>      {
>> -        paddr_t gpa;
>> +        paddr_t gpa; ept_qual_t q;
>>  
>>          __vmread(GUEST_PHYSICAL_ADDRESS, &gpa);
>> -        __vmread(EXIT_QUALIFICATION, &exit_qualification);
>> -        ept_handle_violation(exit_qualification, gpa);
>> +        __vmread(EXIT_QUALIFICATION, &q.raw);
>> +        ept_handle_violation(q, gpa);
>>          break;
>>      }
> If you made the union a transparent one, I think you wouldn't have
> to touch this code at all.

Is that liable to work on all supported compilers?

~Andrew

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

 


Rackspace

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