All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Stefano Bonifazi" <stefboombastic@gmail.com>
To: 'Blue Swirl' <blauwirbel@gmail.com>
Cc: qemu-devel@nongnu.org
Subject: RE: [Qemu-devel] TCG flow vs dyngen
Date: Sat, 11 Dec 2010 15:32:12 +0100	[thread overview]
Message-ID: <02a901cb9940$3437a610$9ca6f230$@gmail.com> (raw)
In-Reply-To: <AANLkTi=odznJjPf1qbPs4EqV7sLZzXttsg5wpUUdMD8e@mail.gmail.com>

-----Original Message-----
From: Blue Swirl [mailto:blauwirbel@gmail.com] 
Sent: sabato 11 dicembre 2010 14:12
To: Stefano Bonifazi
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] TCG flow vs dyngen


>There's a large buffer for generated code, allocated in exec.c. This is filled with host code by TCG, when full it is flushed. The CPU execution loop >generates new TBs when needed, otherwise the old code can be executed.

>TCG also uses intermediate ops but those are used only once during translation.

So if I understand well the flow is the following:

1) the CPU execution loop at runtime takes a new TB from the target code
2) I guess some hash function is computed on this TB for getting a key for searching into the buffer of generated code that probably should store the binary as a map key-binary
3) if the search is successful the binary is given to the translator(how? You said no copy involved) and we return to point 1) otherwise: 
4) the target specific translator generates TCG uops from the TB
5) TCG uses uops for generating  host binary code
6) this new binary code is cached by TGC if there is enough storage place 

Is that all correct?

Where does the execution of host binary take place in the previous list of events?  Between point 5) and 6) ?
After 6) ? In what QEMU source code file/function does the final execution of host binary take place?

In the previous list of events, when does the translator try to chain the current TB with previous ones?  Before TCG generates the binary in order to feed it with "linked micro code"?

Thank you very very much! :)
Stefano B.

  reply	other threads:[~2010-12-11 14:32 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-12-10 21:26 [Qemu-devel] TCG flow vs dyngen Stefano Bonifazi
2010-12-11 11:02 ` Blue Swirl
2010-12-11 12:29   ` Stefano Bonifazi
2010-12-11 13:11     ` Blue Swirl
2010-12-11 14:32       ` Stefano Bonifazi [this message]
2010-12-11 14:44         ` Blue Swirl
2010-12-14 20:17           ` Stefano Bonifazi
2011-01-16 14:46 Raphael Lefevre
2011-01-16 15:21 ` Stefano Bonifazi
2011-01-16 16:01   ` Raphaël Lefèvre
2011-01-16 16:43     ` Stefano Bonifazi
2011-01-16 18:29       ` Peter Maydell
2011-01-16 19:02         ` Stefano Bonifazi
2011-01-16 19:24           ` Peter Maydell
2011-01-16 20:50           ` Stefano Bonifazi
2011-01-16 21:08             ` Raphaël Lefèvre
2011-01-17 11:59             ` Lluís
2011-01-16 19:16       ` Raphaël Lefèvre
2011-01-23 21:50     ` Rob Landley
2011-01-23 22:25       ` Stefano Bonifazi
2011-01-23 23:40         ` Rob Landley
2011-01-24 10:17           ` Stefano Bonifazi
2011-01-24 18:20             ` Rob Landley
2011-01-24 21:16               ` Stefano Bonifazi
2011-01-25  1:19                 ` Rob Landley
2011-01-25  8:53                   ` Stefano Bonifazi
2011-01-24 14:32       ` Peter Maydell
2011-01-24 14:56         ` Stefano Bonifazi
2011-01-24 15:15           ` Lluís
2011-01-24 18:02           ` Dushyant Bansal
2011-01-24 19:38             ` Stefano Bonifazi
2011-01-25  7:56               ` Dushyant Bansal
2011-01-25  9:04                 ` Stefano Bonifazi
2011-01-25  9:05                   ` Edgar E. Iglesias
2011-01-25  9:28                     ` Stefano Bonifazi

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='02a901cb9940$3437a610$9ca6f230$@gmail.com' \
    --to=stefboombastic@gmail.com \
    --cc=blauwirbel@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.