[libvirt] [PATCH v3 00/15] Drop network driver lock

Michal Privoznik mprivozn at redhat.com
Tue Mar 10 16:45:06 UTC 2015


Well, this is interesting. I've turned the virNetworkObjList into
using a virHash. And even though the performance in my testing
(using the very same test program as in previous versions of the
patch set) increased. Without these patches, the test program
took 56s to finish. With these patches (that is with virHash
table) it takes 46s, which is better. But previously, with
network objects stored in flat array I was able to get somewhere
around 23s! I wonder what may be the cause.

NB, nearly all patches in the series have been ACKed already, but
since I'm switching the virNetworkObjList internals, I'm posting
them again.

Michal Privoznik (15):
  virNetworkObjListPtr: Turn list into a hash table
  network_conf: Make virNetworkObj actually virObject
  network_conf: Introduce virNetworkObjEndAPI
  bridge_driver: Use virNetworkObjEndAPI
  test_driver: Use virNetworkObjEndAPI
  parallels_network: Use virNetworkObjEndAPI
  virNetworkObjList: Derive from virObjectLockableClass
  network_conf: Introduce locked versions of lookup functions
  virNetworkObjListPtr: Make APIs self-locking
  virNetworkObjFindBy*: Return an reference to found object
  struct _virNetworkDriverState: Annotate items
  bridge_driver: Drop networkDriverLock() from everywhere
  test_driver: Drop testDriverLock() from almost everywhere
  parallels_network: Drop parallelsDriverLock() from everywhere.
  bridge_driver: Use more of networkObjFromNetwork

 cfg.mk                               |   2 -
 src/conf/network_conf.c              | 545 +++++++++++++++++++++++------------
 src/conf/network_conf.h              |  13 +-
 src/libvirt_private.syms             |   7 +-
 src/network/bridge_driver.c          | 197 +++----------
 src/network/bridge_driver_platform.h |   5 +-
 src/parallels/parallels_network.c    |  62 +---
 src/test/test_driver.c               | 108 ++-----
 tests/networkxml2conftest.c          |   4 +-
 tests/objectlocking.ml               |   4 -
 10 files changed, 441 insertions(+), 506 deletions(-)

-- 
2.0.5




More information about the libvir-list mailing list