From mboxrd@z Thu Jan 1 00:00:00 1970 From: Milan Plzik Subject: Re: Differences in emulation between kvm and kvm -no-kvm Date: Wed, 08 Apr 2009 01:02:21 +0200 Message-ID: <1239145341.8519.2480.camel@localhost> References: <1239134359.8519.2111.camel@localhost> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit To: kvm@vger.kernel.org Return-path: Received: from element.ksp.sk ([158.195.16.154]:55536 "EHLO element.ksp.sk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752615AbZDGXCX (ORCPT ); Tue, 7 Apr 2009 19:02:23 -0400 Received: from localhost ([127.0.0.1] helo=[158.195.166.160] ident=sslwrap) by element.ksp.sk with esmtp (Exim 4.69) (envelope-from ) id 1LrKJB-0008Js-C3 for kvm@vger.kernel.org; Wed, 08 Apr 2009 01:02:21 +0200 In-Reply-To: <1239134359.8519.2111.camel@localhost> Sender: kvm-owner@vger.kernel.org List-ID: On Tuesday, 7. april 2009 at 21:59 +0200, Milan Plzik wrote: > Hello, > > I somehow managed to produce code which behaves slightly differently > when using software emulation and when using kvm. As fas as I know, the > bug should be related to reading cursor position from VGA registers. > > Basically, the bug should be reproducible by executing: > > #define VGA_CURSOR_LOC_HIGH 0xe > #define VGA_CURSOR_LOC_LOW 0xf > > priv.addr = 0x3d4; > priv.data = 0x3d5; > > outb (priv.addr, VGA_CURSOR_LOC_HIGH); /* Cursor location high */ > priv.cursor = inb (priv.data) << 8; > > outb (priv.addr, VGA_CURSOR_LOC_LOW); /* Cursor location low */ > priv.cursor += inb (priv.data); This is wrong; looks like the problem was in the end in improperly set %esp register. Anyway, the problem is still the same -- kvm without -no-kvm properly handled stack operations which shouldn't be possible... . But sorry for sending incomplete info > > I put a testcase at > http://stashbox.org/manage_file/480477/kvm-bug.tar.gz . It's my school > project, so it's a bit more complicated; if neccessary, I can supply the > sources. In kvm -no-kvm it should cause reboot, in plain kvm it should > print few colored 'A's into the left upper corner of the screen (rest of > the code in binary is unreachable). It uses a bit more complicated setup > -- pxegrub2 and tftp loading, but that should not matter -- run.sh > should execute kvm with proper arguments, when executed from the kvm-bug > directory. > > Best regards, > Milan > > P.S: Please Cc: me as I'm not subscribed to the list; when possible, > I'll be also idling at #kvm (nickname 'mmp').