From owner-freebsd-emulation@FreeBSD.ORG Mon Aug 8 23:02:10 2005 Return-Path: X-Original-To: freebsd-emulation@freebsd.org Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 7CB5D16A41F for ; Mon, 8 Aug 2005 23:02:10 +0000 (GMT) (envelope-from nox@saturn.kn-bremen.de) Received: from gwyn.kn-bremen.de (gwyn.kn-bremen.de [212.63.36.242]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6E36843D46 for ; Mon, 8 Aug 2005 23:02:08 +0000 (GMT) (envelope-from nox@saturn.kn-bremen.de) Received: from gwyn.kn-bremen.de (gwyn [127.0.0.1]) by gwyn.kn-bremen.de (8.13.4/8.13.4/Debian-3) with ESMTP id j78N26iJ027232; Tue, 9 Aug 2005 01:02:06 +0200 Received: from saturn.kn-bremen.de (uucp@localhost) by gwyn.kn-bremen.de (8.13.4/8.13.4/Submit) with UUCP id j78N26cU027230; Tue, 9 Aug 2005 01:02:06 +0200 Received: from saturn.kn-bremen.de (localhost [127.0.0.1]) by saturn.kn-bremen.de (8.13.1/8.13.1) with ESMTP id j78Mvntd086322; Tue, 9 Aug 2005 00:07:49 +0200 (CEST) (envelope-from nox@saturn.kn-bremen.de) Received: (from nox@localhost) by saturn.kn-bremen.de (8.13.1/8.13.1/Submit) id j78MvnDj086321; Tue, 9 Aug 2005 00:07:49 +0200 (CEST) (envelope-from nox) From: Juergen Lock Date: Tue, 9 Aug 2005 00:07:48 +0200 To: qemu-devel@nongnu.org, freebsd-emulation@freebsd.org Message-ID: <20050808225748.GA86305@saturn.kn-bremen.de> Mail-Followup-To: qemu-devel@nongnu.org, freebsd-emulation@freebsd.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4.2.1i Cc: Subject: new kqemu win98 hack affects FreeBSD X-BeenThere: freebsd-emulation@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Development of Emulators of other operating systems List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Aug 2005 23:02:10 -0000 Hi! I got a report that kqemu doesnt speed up FreeBSD guests anymore, and found out that the win98 hack stops kqemu from being used. If i disable it and add this to cpu-exec.c, Index: cpu-exec.c @@ -232,6 +232,13 @@ #ifdef USE_KQEMU if (kqemu_is_ok(env) && env->interrupt_request == 0) { int ret; +#if 1 + static uint32_t lastldtlimit = 0; + if (env->ldt.limit != lastldtlimit) { + lastldtlimit = env->ldt.limit; + printf("new ldt limit 0x%x\n", (int)lastldtlimit); + } +#endif env->eflags = env->eflags | cc_table[CC_OP].compute_all() | (DF & DF_MASK); ret = kqemu_cpu_exec(env); /* put eflags in CPU temporary format */ then a short run with FreeSBIE gives this: new ldt limit 0xffff new ldt limit 0xfff new ldt limit 0x1fff new ldt limit 0xfff new ldt limit 0x1fff new ldt limit 0xfff new ldt limit 0x1fff new ldt limit 0x87 new ldt limit 0x1fff new ldt limit 0x87 new ldt limit 0x1fff new ldt limit 0xfff new ldt limit 0x2fff new ldt limit 0x87 new ldt limit 0xfff new ldt limit 0x87 new ldt limit 0xfff new ldt limit 0x87 new ldt limit 0xfff So maybe we need a new switch -win98-hack... :) Juergen