[libvirt] [PATCH 0/9] virObject adjustments for common object

John Ferlan jferlan at redhat.com
Tue May 30 11:38:12 UTC 2017

Originally posted in part as an RFC:


Obviously not a 3.4.0 discussion, but I'm trying to get ahead of the curve
for 3.5.0 and posting this now as I'm "close enough" to at least convert
secrets, nwfilters, nodedevs, and interfaces to use a more common object
methodolgy to add/store, fetch/find, search, list, etc. the objects in
something other than a linear forward linked list. Converting the storage
pool, storage volume, and network is taking longer than hoped since there
are so many patches to get from pointA to pointB. So I'll focus on the
4 and work through getting the complete model published/adopted as those
have been in my branches for a while now.

Still these patches get as far as the creation of the common object which
is a start. The first 4 patches are essentially setup. Patch 5 is new
and covers the need for nwfilters (at least temporarily until self locking
list mgmt is possible). Patches 6-7 were more or less what patch 7-8 were
in the RFC. Patches 8-9 are essentially the driver/common object extension.
Patches 5-6 from the RFC still exist in my branches and would be the next
logical step. It was a conscious decision to just use the "default" string
comparison for hash table key. That key could be a UUID, but since the
UUID can easily be converted from unsigned to signed - I believe it would
be far simpler to keep that mechanism rather than complexity introduced
by having "different" key search algorithms when the key isn't a char *.

John Ferlan (9):
  util: Formatting cleanups to virobject API
  util: Introduce virObjectGetLockableObj
  util: Generate a common internal only error print
  util: Add magic_marker for all virObjects
  util: Introduce virObjectLockableRecursiveNew
  util: Introduce virObjectPoolableHashElement
  util: Add virObjectPoolableHashElementGet*Key
  util: Introduce virObjectPoolableDef
  util: Add virObjectPoolableDef* accessor API's

 src/libvirt_private.syms |  12 ++
 src/util/virobject.c     | 492 +++++++++++++++++++++++++++++++++++++++++++----
 src/util/virobject.h     | 130 +++++++++++--
 3 files changed, 580 insertions(+), 54 deletions(-)


More information about the libvir-list mailing list