From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Kiszka Subject: Re: [Bug 53611] New: nVMX: Add nested EPT Date: Wed, 24 Apr 2013 09:25:38 +0200 Message-ID: <517788F2.1080308@web.de> References: <5118EF31.8000900@siemens.com> <20130211132730.GA24985@fermat.math.technion.ac.il> <511B441F.5030002@siemens.com> <20130226141129.GA15375@fermat.math.technion.ac.il> <512D1051.4050302@web.de> <514C8AB9.6040602@siemens.com> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="----enig2CJSJLIPFQWKUOWECVXJG" Cc: Nadav Har'El , "kvm@vger.kernel.org" To: "Nakajima, Jun" Return-path: Received: from mout.web.de ([212.227.15.4]:58285 "EHLO mout.web.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752297Ab3DXHZu (ORCPT ); Wed, 24 Apr 2013 03:25:50 -0400 In-Reply-To: <514C8AB9.6040602@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) ------enig2CJSJLIPFQWKUOWECVXJG Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 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 = 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 =3D exit_qualification & (1U << 1); >> /* ept page table is present? */ >> error_code |=3D (exit_qualification >> 3) & 0x1; >> >> return kvm_mmu_page_fault(vcpu, gpa, error_code, NULL, 0); >=20 > 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 ------enig2CJSJLIPFQWKUOWECVXJG Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlF3iPYACgkQitSsb3rl5xTVJgCfdYXJDWi1w2i/nEOvam5Bj+Xd zOAAniNt862sTVOlBjfTHIeW+lZiyu6q =H30I -----END PGP SIGNATURE----- ------enig2CJSJLIPFQWKUOWECVXJG--