From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matteo <84kvm84@gmail.com> Subject: Re: ms_sysenter_eip zero value Date: Thu, 27 Jan 2011 14:01:34 +0100 Message-ID: <4D416CAE.9010503@gmail.com> References: <4D40045A.2010806@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org To: Avi Kivity Return-path: Received: from mail-wy0-f174.google.com ([74.125.82.174]:57980 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751140Ab1A0NCN (ORCPT ); Thu, 27 Jan 2011 08:02:13 -0500 Received: by wyb28 with SMTP id 28so2046475wyb.19 for ; Thu, 27 Jan 2011 05:02:12 -0800 (PST) In-Reply-To: <4D40045A.2010806@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: On 01/26/2011 12:24 PM, Avi Kivity wrote: > On 01/23/2011 01:25 PM, Matteo Signorini wrote: >> Hi, >> >> I'm having some problems understanding the sysenter instruction. >> As far as I know, in order to successfully call the sysenter >> instruction, >> MSR_IA32_SYSENTER_CS and MSR_IA32_SYSENTER_EIP registers have to be >> correctly set. >> >> So I printed the value of such registers while the VM was running but >> the output is 0 for both. >> >> now: >> >> 1) I'm having this problem ONLY with the Intel CPU (vmx.c source code). >> When I run the same code on an AMD CPU (svm.c source code) >> MSR_IA32_SYSENTER_EIP and MSR_IA32_SYSENTER_CS contain nonzero values. >> >> 2) I am 100% sure the guest is not executing an int80 but a sysenter >> >> so there is something here I can't understand... >> please help me solving this problem. > > How are you printing out the values? Maybe the problem is there? > arguably there is something I'm doing wrong but I don't think it's the print format. Let me explain what I'm doing. I have modified a little bit the "cpu_dump_state" function called by the monitor's "do_info_registers" function in order to print an additional element and precisely the env->sysenter_cs/eip value. Now, as stated before I don't think the problem is the format because if I use the same code on an AMD machine, the value printed during the VM execution is a non zero value so I'm wondering why this difference from amd and intel? Matteo