On 2013-03-22 17:45, Jan Kiszka wrote:
> On 2013-03-22 07:23, Nakajima, Jun wrote:
>> On Mon, Mar 4, 2013 at 8:45 PM, Nakajima, Jun <jun.nakaj...@intel.com> wrote:
>>> I have some updates on this. We rebased the patched to the latest KVM
>>> (L0). It turned out that the version of L1 KVM/Linux matters. At that
>>> time, actually I used v3.7 kernel for L1, and the L2 didn't work as I
>>> described above. If I use v3.5 or older for L1, L2 works with the EPT
>>> patches. So, I guess some changes made to v3.6 might have exposed a
>>> bug with the nested EPT patches or somewhere. We are looking at the
>>> changes to root-cause it.
>>>
>>
>> Finally I've had more time to work on this, and I think I've fixed
>> this. The problem was that the exit qualification for EPT violation
>> (to L1) was not accurate (enough). And I needed to save the exit
>> qualification upon EPT violation somewhere. Today, that information is
>> converted to error_code (see below), and we lose the information.  We
>> need to use  at least the lower 3 bits when injecting EPT violation to
>> the L1 VMM. I tried to use the upper bytes of error_code to pass  part
>> of the exit qualification, but it didn't work well. Any suggestion for
>> the place to store the value? kvm_vcpu?
>>
>>        ...
>>         /* It is a write fault? */
>>         error_code = exit_qualification & (1U << 1);
>>         /* ept page table is present? */
>>         error_code |= (exit_qualification >> 3) & 0x1;
>>
>>         return kvm_mmu_page_fault(vcpu, gpa, error_code, NULL, 0);
> 
> I don't have a full picture (already asked you to post / git-push your
> intermediate state), but nested related states typically go to
> nested_vmx, thus vcpu_vmx.

Ping regarding publication. I'm about to redo your porting work as we
are making no progress.

Jan


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to