From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: DOS VM problem with QEMU-KVM and newer kernels Date: Sun, 15 Apr 2012 12:44:42 +0300 Message-ID: <4F8A988A.2000009@redhat.com> References: <4F871FB6.4020906@wiesinger.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org, Jan Kiszka , "Roedel, Joerg" , Kevin Wolf To: Gerhard Wiesinger Return-path: Received: from mx1.redhat.com ([209.132.183.28]:64946 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751521Ab2DOJow (ORCPT ); Sun, 15 Apr 2012 05:44:52 -0400 In-Reply-To: <4F871FB6.4020906@wiesinger.com> Sender: kvm-owner@vger.kernel.org List-ID: On 04/12/2012 09:32 PM, Gerhard Wiesinger wrote: > Hello, > > I'm having problems with recents kernels and qemu-kvm with a DOS VM: > TD286 > System: Bad selector: 0007 > System: Bad selector: 0D87 > System: Bad selector: 001F > System: Bad selector: 0007 > GP at 0020 21D4 EC 0DC4 > Error 269 loading D:\BP\BIN\TD286.EXE into extended memory > > Another 286 DOS Extender application also rises a general protection > fault: > GP at 0020 18A1 CODE 357C > > Doesn't depend on the used DOS memory manager and is always > reproduceable. > > Depends only on kernel version and not qemu-kvm and seabios (tried to > bisect it without success): > # NOK: Linux 3.3.1-3.fc16.x86_64 #1 SMP Wed Apr 4 18:08:51 UTC 2012 > x86_64 x86_64 x86_64 GNU/Linux > # NOK: Linux 3.2.10-3.fc16.x86_64 #1 SMP Thu Mar 15 19:39:46 UTC 2012 > x86_64 x86_64 x86_64 GNU/Linux > # OK: Linux 3.1.9-1.fc16.x86_64 #1 SMP Fri Jan 13 16:37:42 UTC 2012 > x86_64 x86_64 x86_64 GNU/Linux > # OK: Linux 2.6.41.9-1.fc15.x86_64 #1 SMP Fri Jan 13 16:46:51 UTC 2012 > x86_64 x86_64 x86_64 GNU/Linux > > CPU is an AMD one. > > Any ideas how to fix it again? > Any switches which might help? > The trigger is probably > commit f1c1da2bde712812a3e0f9a7a7ebe7a916a4b5f4 > Author: Jan Kiszka > Date: Tue Oct 18 18:23:11 2011 +0200 > > KVM: SVM: Keep intercepting task switching with NPT enabled > > AMD processors apparently have a bug in the hardware task switching > support when NPT is enabled. If the task switch triggers a NPF, we can > get wrong EXITINTINFO along with that fault. On resume, spurious > exceptions may then be injected into the guest. > > We were able to reproduce this bug when our guest triggered #SS > and the > handler were supposed to run over a separate task with not yet touched > stack pages. > > Work around the issue by continuing to emulate task switches even in > NPT mode. > > Signed-off-by: Jan Kiszka > Signed-off-by: Marcelo Tosatti Although it's not the patch's direct fault - it simply exposed an existing bug in kvm. Things to try: - revert the patch with a newer kernel - try 3.4-rc2 which has some task switch fixes from Kevin; if you want a Fedora kernel, use rawhide's [2] - post traces [1] Jan, Joerg, was an AMD erratum published for the bug? [1] http://www.linux-kvm.org/page/Tracing [2] http://mirrors.kernel.org/fedora/development/rawhide/x86_64/os/Packages/k/kernel-3.4.0-0.rc2.git2.1.fc18.x86_64.rpm -- error compiling committee.c: too many arguments to function