Features/tcg-multithread

From QEMU
Revision as of 09:17, 26 November 2014 by FredKonrad (talk | contribs) (Multithreading TCG to improve performance.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

MultiThreaded support in the TCG

Improving TCG performance

OverView

Qemu can currently emulate a number of CPU’s in parallel, but it does so in a single thread. Given many modern hosts are multi-core, and many targets equally use multiple cores, a significant performance advantage can be realised by making use of multiple host threads to simulate multiple target cores.

This is work in progress - we expect to publish results on this wiki page as progress is made.

Plan

The TCG today is close to being thread safe, but there is still some concern that there are remaining issues. We will address this by first focusing on user-level TCG threads as this seems a straightforward target. Subsequently the wider case of system level multi-threading will be looked at.


How to get involved

Right now, there is a small dedicated team looking at this issue. Those are:

  • Fred Konrad
  • Mark Burton
  • Pavel Dovgaluk

If you would like to be involved, please use the qemu-devel mail list.

We will run phone conference calls as appropriate to co-ordinate activity and we will feed back to the main Qemu mail lists as progress is made.


Other Work

This is the most important section initially, and we welcome any, and all comments and other work. If you know of any patch sets that may be of value, PLEASE let us know via the qemu-devel mail list.

Proof of concept implementations

Below are all the proof of concept implementations we have found thus far. It is highly likely that some of these patch sets can help us to reach an up-streamable solution. At the very least these provide some evidence that there is a performance improvement to be had.

   http://dl.acm.org/citation.cfm?id=2259030&CFID=454906387&CFTOKEN=60579010
   https://github.com/podinx/PQEMU
   http://www.cs.nthu.edu.tw/~ychung/conference/ICPADS2011.pdf