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

John Ferlan jferlan at redhat.com
Fri Mar 4 14:34:10 UTC 2016



On 02/29/2016 08:33 AM, Daniel P. Berrange wrote:
> 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
> 

As you know patch 3 (qemu_capabilities.{c|h} & 7 (qemu_command.c) will
require handling merge conflicts...

ACK series modulo a couple of nits pointed out.

John




More information about the libvir-list mailing list