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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list