From owner-freebsd-emulation@FreeBSD.ORG Fri Sep 26 22:07:20 2008 Return-Path: Delivered-To: freebsd-emulation@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 770D5106568C for ; Fri, 26 Sep 2008 22:07:20 +0000 (UTC) (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 F39238FC19 for ; Fri, 26 Sep 2008 22:07:19 +0000 (UTC) (envelope-from nox@saturn.kn-bremen.de) Received: by gwyn.kn-bremen.de (Postfix, from userid 10) id E4D07191A28; Sat, 27 Sep 2008 00:07:18 +0200 (CEST) Received: from saturn.kn-bremen.de (noident@localhost [127.0.0.1]) by saturn.kn-bremen.de (8.14.2/8.13.8) with ESMTP id m8QM4kuX013442; Sat, 27 Sep 2008 00:04:46 +0200 (CEST) (envelope-from nox@saturn.kn-bremen.de) Received: (from nox@localhost) by saturn.kn-bremen.de (8.14.2/8.13.6/Submit) id m8QM4jjT013441; Sat, 27 Sep 2008 00:04:45 +0200 (CEST) (envelope-from nox) From: Juergen Lock Date: Sat, 27 Sep 2008 00:04:45 +0200 To: Anthony Liguori Message-ID: <20080926220445.GA13099@saturn.kn-bremen.de> Mail-Followup-To: Anthony Liguori , qemu-devel@nongnu.org, freebsd-emulation@freebsd.org References: <20080921204025.GA81055@saturn.kn-bremen.de> <200809242210.m8OMAcSZ021572@saturn.kn-bremen.de> <48DCF9FC.2070708@codemonkey.ws> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <48DCF9FC.2070708@codemonkey.ws> User-Agent: Mutt/1.5.17 (2007-11-01) Cc: freebsd-emulation@freebsd.org, qemu-devel@nongnu.org Subject: Re: [Qemu-devel] Re: qemu svn r5281 on FreeBSD - slow usb, vmwarevga, screen updates... (now updated to r5313) 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: Fri, 26 Sep 2008 22:07:20 -0000 On Fri, Sep 26, 2008 at 10:04:28AM -0500, Anthony Liguori wrote: > Matt wrote: >>> Here is another experimental update that forces -lthr on 6.x, and >>> also updates to qemu svn r5313: >>> http://people.freebsd.org/~nox/qemu/qemu-devel-20080924.patch >>> >> >> I just built this update and it seems to have fixed the issue. Host >> CPU usage again tracks with guest CPU usage and all seems well. I'll >> continue to use this build to see if anything else crops up. >> >> Please let me know if there is anything other information I can provide. >> > > If ya'll have patches to make QEMU work on FreeBSD, please submit them. > I'm about to commit a patch that's what it took for me to get SVN working > on FreeBSD. > > The one thing that really tripped me up with the whole aio kld-module > thing. Perhaps we should detect the presence of the module at run time and > disable aio? I assume kldload can only be run as root? Yes. Atm the ports print a warning when aio is not loaded: Index: qemu/vl.c @@ -8409,6 +8409,11 @@ tb_size = 0; +#ifdef __FreeBSD__ + if (modfind("aio") == -1) + fprintf(stderr, "warning: aio not (kld)loaded, may cause `Invalid system call' traps on disk IO\n"); +#endif + optind = 1; for(;;) { if (optind >= argc) And here is another patch thats needed on amd64 hosts for tcg (which I had posted before:) Index: qemu/exec.c @@ -405,6 +405,28 @@ exit(1); } } +#elif defined(__FreeBSD__) + { + int flags; + void *addr = NULL; + flags = MAP_PRIVATE | MAP_ANONYMOUS; +#if defined(__x86_64__) + /* FreeBSD doesn't have MAP_32BIT, use MAP_FIXED and assume + * 0x40000000 is free */ + flags |= MAP_FIXED; + addr = (void *)0x40000000; + /* Cannot map more than that */ + if (code_gen_buffer_size > (800 * 1024 * 1024)) + code_gen_buffer_size = (800 * 1024 * 1024); +#endif + code_gen_buffer = mmap(addr, code_gen_buffer_size, + PROT_WRITE | PROT_READ | PROT_EXEC, + flags, -1, 0); + if (code_gen_buffer == MAP_FAILED) { + fprintf(stderr, "Could not allocate dynamic translator buffer\n"); + exit(1); + } + } #else code_gen_buffer = qemu_malloc(code_gen_buffer_size); if (!code_gen_buffer) { Signed-off-by: Juergen Lock I'll see if I can prepare another update over the weekend and then go thru more of the patches that have accumulated in the port... Thanx, Juergen