Yet another version. This time with:
1) Peter's review worked in
2) Even more patches, that allow even more parallelism. With my
test program [1], I've been able to go from 56s to 23s.
1:
https://www.redhat.com/archives/libvir-list/2015-February/msg01214.html
Michal Privoznik (24):
network_conf: Introduce virNetworkObjListForEach
network_conf: Introduce virNetworkObjListGetNames
network_conf: Introduce virNetworkObjListNumOfNetworks
network_conf: Introduce virNetworkObjListPrune
bridge_driver: Adapt to new virNetworkObjList accessors
test_driver: Adapt to new virNetworkObjList accessors
parallels_network: Adapt to new virNetworkObjList accessors
network_conf: Turn virNetworkObjList into virObject
network_conf: Turn struct _virNetworkObjList private
network_conf: Make virNetworkObj actually virObject
virNetworkObjList: Derive from virObjectLockableClass
network_conf: Introduce virNetworkObjEndAPI
bridge_driver: Use virNetworkObjEndAPI
test_driver: Use virNetworkObjEndAPI
parallels_network: Use virNetworkObjEndAPI
network_conf: Introduce locked versions of lookup functions
virNetworkObjListPtr: Make APIs self-locking
virNetworkObjFindBy*: Return an reference to found object
bridge_driver: Drop networkDriverLock() from almost everywhere
test_driver: Drop testDriverLock() from almost everywhere
parallels_network: Drop parallelsDriverLock() from everywhere.
bridge_driver: Use more of networkObjFromNetwork
virNetworkObjUnsetDefTransient: Lock object list if needed
virNetworkObjFindBy*: Don't lock all networks in the list
cfg.mk | 3 -
src/conf/network_conf.c | 422 +++++++++++++++++++++++++-------
src/conf/network_conf.h | 52 ++--
src/libvirt_private.syms | 13 +-
src/network/bridge_driver.c | 500 ++++++++++++++------------------------
src/parallels/parallels_network.c | 135 +++-------
src/test/test_driver.c | 185 +++-----------
tests/networkxml2conftest.c | 4 +-
tests/objectlocking.ml | 2 -
9 files changed, 634 insertions(+), 682 deletions(-)
--
2.0.5