summaryrefslogtreecommitdiff
path: root/ovsdb/ovsdb.h
diff options
context:
space:
mode:
authorIlya Maximets <i.maximets@ovn.org>2022-11-25 13:37:04 +0100
committerIlya Maximets <i.maximets@ovn.org>2022-12-06 16:21:54 +0100
commite83dad6e53f3fe04ca9c4d6972fcaa7995de2ba2 (patch)
tree60d296432455426080dd2c4eae3427b37257873b /ovsdb/ovsdb.h
parent093915e04a978c3c37005968f2a4358ef24a2745 (diff)
downloadopenvswitch-e83dad6e53f3fe04ca9c4d6972fcaa7995de2ba2.tar.gz
ovsdb: Count weak reference objects.
OVSDB creates a separate object for each weak reference in order to track them and there could be a significant amount of these objects in the database. We also had problems with number of these objects growing out of bounds recently. So, adding them to a memory report seems to be a good thing. Counting them globally to cover all the copied instances in transactions and the transaction history (even though there should be none). It's also hard to count them per-database, because weak references are stored on destination rows and can be destroyed either while destroying the destination row or while removing the reference from the source row. Also, not all the involved functions have direct access to the database object. So, there is no single clear place where counters should be updated. Acked-by: Dumitru Ceara <dceara@redhat.com> Acked-by: Han Zhou <hzhou@ovn.org> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'ovsdb/ovsdb.h')
-rw-r--r--ovsdb/ovsdb.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/ovsdb/ovsdb.h b/ovsdb/ovsdb.h
index d05e7c64a..13d8bf407 100644
--- a/ovsdb/ovsdb.h
+++ b/ovsdb/ovsdb.h
@@ -125,6 +125,10 @@ struct ovsdb {
struct ovsdb_compaction_state *snap_state;
};
+/* Total number of 'weak reference' objects in all databases
+ * and transactions. */
+extern size_t n_weak_refs;
+
struct ovsdb *ovsdb_create(struct ovsdb_schema *, struct ovsdb_storage *);
void ovsdb_destroy(struct ovsdb *);