From mboxrd@z Thu Jan 1 00:00:00 1970 From: "H. Peter Anvin" Subject: KVM and OS/2: #UD in real mode Date: Tue, 22 Jan 2008 18:49:35 -0800 Message-ID: <4796AB3F.5070407@zytor.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: kvm-devel Return-path: 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 Just for fun, I tried to boot OS/2 Warp 4.0 under KVM (KVM-59 with the latest git kernel from Linus as of yesterday, slightly post 2.6.24-rc8.) I found that it crashes very early, apparently because KVM doesn't handle an #UD received in user mode. It appears that OS/2 actually provokes an #UD deliberately in real mode, from the disassembly it looks like it's trying to probe for the 486 version of cmpxchg (which has a different opcode than the 586+ version.) It looks like the kernel code filters out a very small number of real-mode exceptions, and does a KVM exit for all the other ones; the userspace code then unconditionally barfs. This is presumably a temporary hack; what is the intended behaviour - for this to be handled in-kernel, or in userspace? -hpa ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/