From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: Failed vm entry with heavy use of emulator Date: Tue, 5 Jan 2016 14:12:30 +0000 Message-ID: <568BCF4E.3030600@citrix.com> References: <568BAF7E.802@citrix.com> <568BC7A2.3020901@bitdefender.com> <568BC9D8.8030709@citrix.com> <568BCCD5.1060203@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <568BCCD5.1060203@bitdefender.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Razvan Cojocaru , xen-devel@lists.xen.org, Tamas Lengyel List-Id: xen-devel@lists.xenproject.org On 05/01/16 14:01, Razvan Cojocaru wrote: > On 01/05/2016 03:49 PM, Andrew Cooper wrote: >> On 05/01/16 13:39, Razvan Cojocaru wrote: >>> Here's a quick log of the emulated instructions on my setup: >>> http://pastebin.com/raw/XXQ0Lnzh >> Hmm - according to that, the final instruction emulated was >> >> d1v0 32bit @ 0008:828925db -> fa >> >> which is the 'cli' instruction. >> >> I would start there - I doubt it is an instruction which is emulated often. > My code (arch/x86/x86_emulate/x86_emulate.c) does have a case label for it: > > 3677 case 0xfa: /* cli */ > 3678 generate_exception_if(!mode_iopl(), EXC_GP, 0); > 3679 _regs.eflags &= ~EFLG_IF; > 3680 break; > > Maybe the IOPL test fails there? Tamas, does your guest die after a CLI > as well? The iopl test looks correct. It is quite possible that eflags.IF is expected to match a separate piece of control state in the vmcs, and that is the cause of the vmentry failure. ~Andrew