qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Tim Olson <tim@io.com>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] qemu-system-* using mmap?
Date: Thu, 14 Dec 2006 08:50:25 -0600	[thread overview]
Message-ID: <799dfe3574a1e50e5a9a0da483b58db6@io.com> (raw)
In-Reply-To: <45802498.6020808@tidetamerboatlifts.com>


On Dec 13, 2006, at 10:04 AM, Joseph Miller wrote:

>
> Can someone elaborate on this a little?  What is the difference 
> between the SOFTMMU and the mmap()?  Should I be using the 
> --enable-system or the --disable-system for win32 guest on i386 debian 
> host?  Can someone give a little more insight on this technicality?

For full system emulation, qemu needs to support the emulated 
processor's ability to perform virtual->physical address translation 
for every memory reference (including data loads/stores and 
non-pc-relative branches).  Using the SOFTMMU method, this is done at 
basic-block translation time by inlining a software TLB lookup routine 
for each memory reference.  This expands a simple target load 
instruction into a sequence of ~20 host processor instructions (for x86 
target, ppc host I see about 25 instructions for TLB lookup).

The other way to handle this would be to use the host's MMU to do the 
translation directly, via an mmap() system call which sets up the 
translation.  Then the translated basic block would contain memory 
references using the target system's virtual address values, and the 
translation would occur in the host's hardware MMU during execution 
(fast), rather than having to execute a software TLB lookup.  However, 
there are a number of restrictions to using mmap() translation (host 
and target address spaces cannot overlap, etc.)  It appears that this 
feature has been removed from current versions of qemu, so the only way 
to do full system emulation is via the SOFTMMU method.

	-- tim

  reply	other threads:[~2006-12-14 14:50 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-12-13  8:09 [Qemu-devel] About performance of qemu-system-arm PianoPan
2006-12-13 10:32 ` [Qemu-devel] " Ross Burton
2006-12-13 11:22 ` [Qemu-devel] " Màrius Montón
2006-12-13 14:17   ` PianoPan
2006-12-13 15:23     ` Màrius Montón
2006-12-13 13:26 ` Martin Guy
2006-12-13 14:40   ` [Qemu-devel] qemu-system-* using mmap? Tim Olson
2006-12-13 15:32     ` Paul Brook
2006-12-13 16:04     ` Joseph Miller
2006-12-14 14:50       ` Tim Olson [this message]
2006-12-14 17:01         ` [Qemu-devel] " Joseph Miller
2006-12-14 16:45           ` Paul Brook
2006-12-15 16:21             ` [Qemu-devel] Qemu speed vs vmplayer? Joseph Miller
2006-12-15 16:13               ` Paul Brook
2006-12-15 22:20                 ` Joseph Miller
2006-12-15 21:33                   ` Lonnie Mendez
2006-12-15 21:38                   ` Paul Brook
2006-12-15 21:48                     ` Christian MICHON
2006-12-15 21:57                       ` Lonnie Mendez
2006-12-15 22:18                       ` Paul Brook
2006-12-15 22:34                         ` Christian MICHON
2006-12-15 22:47                           ` Paul Brook
     [not found]                   ` <Pine.LNX.4.64.0612160028590.758@home.oyster.ru>
     [not found]                     ` <25199.71.51.225.120.1166272989.squirrel@secure.emarketingnc.com>
     [not found]                       ` <Pine.LNX.4.64.0612161732560.630@home.oyster.ru>
2006-12-17  4:37                         ` it
2006-12-17  5:18                           ` Lonnie Mendez
2006-12-19 16:00                             ` [Qemu-devel] Qemu speed w/ USB tablet emulation Joseph Miller
2006-12-16  5:27                 ` [Qemu-devel] Qemu speed vs vmplayer? Jamie Lokier
2006-12-15 16:32             ` [Qemu-devel] using mmap? Mark Williamson
2006-12-15 21:22               ` [Qemu-devel] " Anthony Liguori
2006-12-13 15:10   ` [Qemu-devel] About performance of qemu-system-arm Martin Guy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=799dfe3574a1e50e5a9a0da483b58db6@io.com \
    --to=tim@io.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).