[ovs-dev] [PATCH] ovsdb-idl: Add memory report function.
Dumitru Ceara
dceara at redhat.com
Tue Nov 2 19:50:26 UTC 2021
On 10/14/21 1:46 PM, Ilya Maximets wrote:
> Added new function to return memory usage statistics for database
> objects inside IDL. Statistics similar to what ovsdb-server reports.
> Not counting _Server database as it should be small, hence doesn't
> worth adding extra code to the ovsdb-cs module. Can be added later
> if needed.
>
> ovs-vswitchd is a user in OVS, but this API will be mostly useful for
> OVN daemons.
>
> Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
> ---
> lib/ovsdb-idl.c | 24 ++++++++++++++++++++++++
> lib/ovsdb-idl.h | 3 +++
> vswitchd/bridge.c | 2 ++
> 3 files changed, 29 insertions(+)
>
> diff --git a/lib/ovsdb-idl.c b/lib/ovsdb-idl.c
> index 383a601f6..b22492d5e 100644
> --- a/lib/ovsdb-idl.c
> +++ b/lib/ovsdb-idl.c
> @@ -42,6 +42,7 @@
> #include "openvswitch/poll-loop.h"
> #include "openvswitch/shash.h"
> #include "skiplist.h"
> +#include "simap.h"
> #include "sset.h"
> #include "svec.h"
> #include "util.h"
> @@ -465,6 +466,29 @@ ovsdb_idl_wait(struct ovsdb_idl *idl)
> ovsdb_cs_wait(idl->cs);
> }
>
> +/* Returns memory usage statistics. */
> +void
> +ovsdb_idl_get_memory_usage(struct ovsdb_idl *idl, struct simap *usage)
> +{
> + unsigned int cells = 0;
> +
> + if (!idl) {
> + return;
> + }
> +
> + for (size_t i = 0; i < idl->class_->n_tables; i++) {
> + struct ovsdb_idl_table *table = &idl->tables[i];
> + unsigned int n_columns = shash_count(&table->columns);
Nit: even though this is also constant time we already have the number
of columns stored in the table class, we could instead do:
unsigned int n_columns = table->class_->n_columns;
I guess this can be fixed up at apply time, therefore:
Acked-by: Dumitru Ceara <dceara at redhat.com>
Thanks,
Dumitru
More information about the dev
mailing list