[libvirt] [PATCH 0/9] Fine grained locking in LXC driver

Daniel P. Berrange berrange at redhat.com
Thu Jul 18 10:27:37 UTC 2013


On Wed, Jul 17, 2013 at 03:04:17PM +0200, Michal Privoznik wrote:
> The first round of my patches that breaks LXC driver into smaller pieces. With
> my testing on 10 domains which are started up and destroyed in a loop with 10
> iterations (each loop is run in a separate thread in client):
> 
> Before:
> real    0m45.973s
> user    0m0.080s
> sys     0m0.020s
> 
> After:
> real    0m14.951s
> user    0m0.080s
> sys     0m0.020s
> 
> Michal Privoznik (9):
>   qemu: Move close callbacks handling into util/virclosecallbacks.c
>   Introduce a virLXCDriverConfigPtr object
>   lxc: Use atomic ops for driver->nactive
>   Introduce annotations for virLXCDriverPtr fields
>   lxc: switch to virCloseCallbacks API
>   Stop accessing driver->caps directly in LXC driver
>   lxc: Make activeUsbHostdevs use locks
>   Remove lxcDriverLock from almost everywhere
>   Introduce lxcDomObjFromDomain
> 
>  po/POTFILES.in               |   1 +
>  src/Makefile.am              |   4 +-
>  src/libvirt_private.syms     |   8 +
>  src/lxc/lxc_conf.c           | 120 ++++++--
>  src/lxc/lxc_conf.h           |  64 ++--
>  src/lxc/lxc_controller.c     |   2 +-
>  src/lxc/lxc_driver.c         | 705 +++++++++++++++----------------------------
>  src/lxc/lxc_hostdev.c        |   8 +
>  src/lxc/lxc_process.c        | 181 ++++-------
>  src/lxc/lxc_process.h        |   1 -
>  src/qemu/qemu_conf.c         | 295 +-----------------
>  src/qemu/qemu_conf.h         |  25 +-
>  src/qemu/qemu_driver.c       |   4 +-
>  src/qemu/qemu_migration.c    |  18 +-
>  src/qemu/qemu_migration.h    |   2 +-
>  src/qemu/qemu_process.c      |  14 +-
>  src/util/virclosecallbacks.c | 356 ++++++++++++++++++++++
>  src/util/virclosecallbacks.h |  56 ++++
>  18 files changed, 900 insertions(+), 964 deletions(-)
>  create mode 100644 src/util/virclosecallbacks.c
>  create mode 100644 src/util/virclosecallbacks.h

Great job. It was much simpler than I thought it would be - guess the
QEMU driver conversion solved all the hard bits in shared code.

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list