Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

http://wiki.qemu.org/QMP

QMP Helper

When QEMU is run in dom0 with the toolstack (xl in this case), it will typically be setup to create a UNIX socket that xl can connect to and communicate with QEMU. This is done using a QEMU command line argument like this (where N is the quest's domain ID):

...

languagetext
-qmp unix:/var/run/xen/qmp-libxl-N,server,nowait

...

The argument after unix: is the name of the UNIX socket that is created and set to listen for connections.

When QEMU is moved to a stub-domain, this communication method is no longer available. The QMP helper is the means by which QMP communications can be established with a QEMU running in a stub-domain. The QMP helper bits work a lot like the other stub-domain helpers in xctools.git. It consists of two components:

  1. A chardrv implementation that is introduced into the qemu-char.c code. This new type of chardrv can sit below other monitors and consoles and route traffic over V4V.
  2. A proxy process called qmp_helper runs in dom0 and can talk to the V4V chardrv in QEMU in the stubdom. The qmp_helper also creates a UNIX socket exactly as QEMU would have above in dom0. The toolstack (xl) can then connect directly to the UNIX socket and the rest is invisible to it.

NOTE: the implementations currently resides here until it is brought into OpenXT proper:

https://github.com/rossphilipson/xenclient-oe/blob/qmp_helper/recipes-openxt/qemu-dm/qemu-dm-1.4/0036-qmp-v4v-char-driver.patch

https://github.com/rossphilipson/xctools/tree/qmp_helper/qmp_helper

QMP Shell

safsdf