[libvirt] [PATCH 0/2] Add virFirmware object for use by driver config

Jim Fehlig jfehlig at suse.com
Wed May 25 03:18:22 UTC 2016


Hi All,

Any comments to this approach of enabling some code sharing between qemu and libxl?

Regards,
Jim

On 05/18/2016 10:38 AM, Jim Fehlig wrote:
> While refreshing and testing my series to add domain capabilities
> and UEFI support to the libxl driver [1], I realized it would be
> useful to support the '--with-loader-nvram' configure option as
> well. This would allow users/packagers to specify system-provided
> firmwares instead of those provided by the Xen installation.
>
> Instead of copying code from the qemu driver, I decided to create
> a virFirmware object containing the firmware name (loader) and
> associated nvram, along with a few operations on the object. Patch1
> introduces the object in src/util/virfirmware.[ch] and switches
> the qemu driver to use. The patch could be split along those lines,
> but I thought it would be review-friendly to see the movement of
> code in a single patch. But it can be split if preferred.
>
> Patch2 adds virFirmware to the libxl driver config. It is unused
> in this series, but if this approach is aggreable it will be used
> when rebasing the domain capabilities series.
>
> Note that currently Xen does not support storage for non-volitile
> variables for UEFI firmware (OVMF), so 'nvram' will be unused for
> the time being. Adding a 'nvram' option to libxl.conf can be
> deferred until support is added to Xen. But even with this
> limitation, folks are using UEFI + HVM guests with xl/libxl and
> would like to do the same with libvirt.
>
> Patch1 is a lot of code movement to avoid copying
> virQEMUDriverConfigLoaderNVRAMParse (and eventually
> virQEMUDriverConfigNVRAMParse). But I've complained about copy/paste
> in some of my recent reviews and shouldn't be doing the same in
> my own patches :-).
>
> [1] https://www.redhat.com/archives/libvir-list/2016-April/msg01358.html
>
> Jim Fehlig (2):
>   driver config: Introduce virFirmware object
>   libxl: add default firmwares to driver config object
>
>  po/POTFILES.in               |   1 +
>  src/Makefile.am              |   1 +
>  src/libvirt_private.syms     |   6 ++
>  src/libxl/libxl_conf.c       |  21 +++++++
>  src/libxl/libxl_conf.h       |   4 ++
>  src/qemu/qemu_capabilities.c |  22 +++----
>  src/qemu/qemu_capabilities.h |   5 +-
>  src/qemu/qemu_conf.c         | 127 ++++++----------------------------------
>  src/qemu/qemu_conf.h         |   7 +--
>  src/qemu/qemu_driver.c       |   2 +-
>  src/qemu/qemu_process.c      |   6 +-
>  src/util/virfirmware.c       | 135 +++++++++++++++++++++++++++++++++++++++++++
>  src/util/virfirmware.h       |  51 ++++++++++++++++
>  tests/domaincapstest.c       |   3 +-
>  14 files changed, 260 insertions(+), 131 deletions(-)
>  create mode 100644 src/util/virfirmware.c
>  create mode 100644 src/util/virfirmware.h
>




More information about the libvir-list mailing list