From mboxrd@z Thu Jan 1 00:00:00 1970 From: Aurelien Jarno Subject: Re: KVM: Fix the invlpg instruction emulation on AMD64 Date: Wed, 17 Oct 2007 18:23:41 +0200 Message-ID: <4716370D.7020207@aurel32.net> References: <20071015190823.GA11333@hall.aurel32.net> <47148403.6010603@qumranet.com> <47148867.9070600@aurel32.net> <47148E82.9090103@qumranet.com> <20071017135021.GA32185@hall.aurel32.net> <47161E2B.1000006@qumranet.com> <47162AD3.6070602@aurel32.net> <47162C30.9040106@qumranet.com> <47162DA7.7060501@aurel32.net> <47162ED9.8040902@aurel32.net> Mime-Version: 1.0 Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: quoted-printable Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org To: Avi Kivity Return-path: In-Reply-To: <47162ED9.8040902-rXXEIb44qovR7s880joybQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org Aurelien Jarno a =E9crit : > Aurelien Jarno a =E9crit : >> Avi Kivity a =E9crit : >>> But invlpg is defined as having reg =3D=3D 7! The manual says: >>> >>> 0F 01/7 INVLPG m >>> >>> where "/7" is the notation for "reg in the mod reg r/m byte: >>> >>> " /digit =97 A digit between 0 and 7 indicates that the ModR/M byte of = the >>> instruction uses >>> only the r/m (register or memory) operand. The reg field contains the >>> digit that provides an >>> extension to the instruction's opcode." >>> >>> >>> So what you're seeing is not the invlpg instruction but something else >>> in the same group. >>> >> I see. >> >> Anyway the previous behaviour on AMD was to disable SrcMem on all 0F 01 >> instructions. It's actually what I tried to do in the first version of >> the patch, ie have the same behaviour as the SrcNone case for the 0F 01 >> instructions. >> >> The 0F 01 instruction is then correctly emulated, but another of this > Oops s/0F 01/invlpg/ >> group is probably not, as the patch clearly fix the problem on AMD. > = I confirm the problem. SVM does not virtualize smsw and lmsw that have to be emulated. And it looks like the decoding or/and emulation of those instructions is currently broken in KVM. -- = .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' aurel32-8fiUuRrzOP0dnm+yROfE0A@public.gmane.org | aurelien-rXXEIb44qovR7s880joybQ@public.gmane.org `- people.debian.org/~aurel32 | www.aurel32.net ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/