Osier,

Thanks for including me in the review of this patch. I can tell right away that your implementation is better. It's more modular and well documented. When I submitted my patch about a month ago, it was basically just me submitting the changes that I made to get ivshmem working for my lab. We were on a tight deadline and so a lot of the code is rushed and poorly pieced together. However, I am glad that my submission has helped at least get the ball rolling on memory device support for Libvirt as it is very much needed.

Thanks for your help,
Shawn Furrow


On Fri, Nov 16, 2012 at 4:59 AM, Osier Yang <jyang@redhat.com> wrote:
v1 - v2:
  * Change attribute "model" to be a sub-element instead.

NOTE:
  Since the invshmem server socket path is not created by
QEMU, but by an external app called "ivshmem_server", It's
not good to construct the socket path in libvirt with a solid
rule, and force the user to figure out what the path is
libvirt uses first and use that for "ivshmem_server". Thus it's
the user's business to set the selinux context on the socket
path so that the qemu process could be started successfully
when selinux is enabled.

Shawn Furrow proposed a patch more than a month ago:
https://www.redhat.com/archives/libvir-list/2012-September/msg01612.html

But this is a complete different implementation. Considering
there could be other memory related devices in futuer, this
introduces a new device model, called "memory device", instead
of a specific device like "ivshmem", though only "ivshmem"
is supported currently. Please refer to PATCH 1/4 for more
details.

CC'ed to Cam and Shawn, to see if there is advise on the documents.

Osier Yang (4):
  docs: Add documents for memory device
  conf: Parse and format memory device XML
  qemu: Add cap flag QEMU_CAPS_IVSHMEM
  qemu: Build command line for ivshmem device

 docs/formatdomain.html.in                        |   40 +++++
 docs/schemas/domaincommon.rng                    |   40 +++++
 src/conf/domain_conf.c                           |  195 +++++++++++++++++++++-
 src/conf/domain_conf.h                           |   27 +++
 src/libvirt_private.syms                         |    3 +
 src/qemu/qemu_capabilities.c                     |    2 +
 src/qemu/qemu_capabilities.h                     |    1 +
 src/qemu/qemu_command.c                          |   85 ++++++++++
 src/util/util.c                                  |    5 +
 src/util/util.h                                  |    2 +
 tests/qemuhelptest.c                             |   12 +-
 tests/qemuxml2argvdata/qemuxml2argv-ivshmem.args |    7 +
 tests/qemuxml2argvdata/qemuxml2argv-ivshmem.xml  |   34 ++++
 tests/qemuxml2argvtest.c                         |    2 +
 14 files changed, 450 insertions(+), 5 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-ivshmem.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-ivshmem.xml

--
1.7.7.6




--
Virginia Tech
Bradley Department of Electrical and Computer Engineering
B.S. Electrical Engineering
B.S. Computer Engineering