[libvirt] [PATCH v2 0/8] Use virtlogd for chardevs & support logging

Daniel P. Berrange berrange at redhat.com
Mon Feb 29 13:33:32 UTC 2016


This series of patches does two things

 * Converts the type=file chardev over to use virtlogd
   (assuming use of virtlogd is enabled in qemu.conf)

 * Adds a <log file="..."/> element to all chardev
   sources, allowing data to be captured to a logfile

Both of these are important features wanted by openstack.
The first thing fixes a long standing security issue that
a guest OS can trivially exhuast host disk space by outputing
lots of data to its serial port.

The second thing allows OpenStack to record boot up
messages for a guest's serial console, while still
allowing interactive serial console ussage. ie the
serial port will be configured with type=tcp, and
the new <log> element used to record the data.

Both these thing required changes in QEMU, which have
been merged for the forthcoming QEMU 2.6 release.

Changed in v2:

 * Split patch 4 up into 4 separate patches
 * Fix memory leaks
 * Use common function for building log manager cli args
 * Add missing XML docs

Daniel P. Berrange (8):
  logging: allow inode/offset params to be NULL
  conf: allow use of a logfile with chardev backends
  qemu: add support for logging chardev output to a file
  qemu: don't append -chardev arg until after value is formatted
  qemu: move functions for handling FD passing
  logging: support truncation of logfiles when opening
  qemu: use virtlogd for character device log files
  qemu: support use of virtlogd with file based chardevs

 docs/formatdomain.html.in                          |  14 +
 docs/schemas/domaincommon.rng                      |  12 +
 src/conf/domain_conf.c                             |  30 +++
 src/conf/domain_conf.h                             |   2 +
 src/logging/log_daemon_dispatch.c                  |   3 +-
 src/logging/log_handler.c                          |   6 +-
 src/logging/log_handler.h                          |   2 +-
 src/logging/log_manager.c                          |   6 +-
 src/logging/log_manager.h                          |   2 +
 src/logging/log_protocol.x                         |   4 +
 src/qemu/qemu_capabilities.c                       |   2 +
 src/qemu/qemu_capabilities.h                       |   1 +
 src/qemu/qemu_command.c                            | 282 ++++++++++++++-------
 src/qemu/qemu_command.h                            |   9 +-
 src/qemu/qemu_domain.c                             |   6 +
 src/qemu/qemu_domain.h                             |   3 +
 src/qemu/qemu_driver.c                             |   2 +-
 src/qemu/qemu_process.c                            |   4 +-
 .../qemuxml2argv-serial-file-log.args              |  25 ++
 .../qemuxml2argv-serial-file-log.xml               |  39 +++
 tests/qemuxml2argvtest.c                           |   4 +-
 21 files changed, 353 insertions(+), 105 deletions(-)
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-file-log.args
 create mode 100644 tests/qemuxml2argvdata/qemuxml2argv-serial-file-log.xml

-- 
2.5.0




More information about the libvir-list mailing list