Include size of link cache in per-connection statistics
authorSimon McVittie <simon.mcvittie@collabora.co.uk>
Tue, 8 Feb 2011 15:48:12 +0000 (15:48 +0000)
committerSimon McVittie <simon.mcvittie@collabora.co.uk>
Fri, 24 Jun 2011 15:01:56 +0000 (16:01 +0100)
Reviewed-by: Cosimo Alfarano <cosimo.alfarano@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=34040

bus/stats.c
dbus/dbus-connection-internal.h
dbus/dbus-connection.c

index 28fd49b..4e72885 100644 (file)
@@ -263,6 +263,7 @@ bus_stats_handle_get_connection_stats (DBusConnection *caller_connection,
   static dbus_uint32_t stats_serial = 0;
   dbus_uint32_t in_messages, in_bytes, in_fds, in_peak_bytes, in_peak_fds;
   dbus_uint32_t out_messages, out_bytes, out_fds, out_peak_bytes, out_peak_fds;
+  dbus_uint32_t link_cache_bytes;
   BusRegistry *registry;
   BusService *service;
   DBusConnection *stats_connection;
@@ -315,7 +316,8 @@ bus_stats_handle_get_connection_stats (DBusConnection *caller_connection,
                               &in_messages, &in_bytes, &in_fds,
                               &in_peak_bytes, &in_peak_fds,
                               &out_messages, &out_bytes, &out_fds,
-                              &out_peak_bytes, &out_peak_fds);
+                              &out_peak_bytes, &out_peak_fds,
+                              &link_cache_bytes);
 
   if (!asv_add_uint32 (&iter, &arr_iter, "IncomingMessages", in_messages) ||
       !asv_add_uint32 (&iter, &arr_iter, "IncomingBytes", in_bytes) ||
@@ -326,7 +328,8 @@ bus_stats_handle_get_connection_stats (DBusConnection *caller_connection,
       !asv_add_uint32 (&iter, &arr_iter, "OutgoingBytes", out_bytes) ||
       !asv_add_uint32 (&iter, &arr_iter, "OutgoingFDs", out_fds) ||
       !asv_add_uint32 (&iter, &arr_iter, "PeakOutgoingBytes", out_peak_bytes) ||
-      !asv_add_uint32 (&iter, &arr_iter, "PeakOutgoingFDs", out_peak_fds))
+      !asv_add_uint32 (&iter, &arr_iter, "PeakOutgoingFDs", out_peak_fds) ||
+      !asv_add_uint32 (&iter, &arr_iter, "LinkCacheBytes", link_cache_bytes))
     goto oom;
 
   /* end */
index 3dc5989..e55cb66 100644 (file)
@@ -114,7 +114,8 @@ void _dbus_connection_get_stats (DBusConnection *connection,
                                  dbus_uint32_t  *out_bytes,
                                  dbus_uint32_t  *out_fds,
                                  dbus_uint32_t  *out_peak_bytes,
-                                 dbus_uint32_t  *out_peak_fds);
+                                 dbus_uint32_t  *out_peak_fds,
+                                 dbus_uint32_t  *link_cache_size);
 
 /* This _dbus_bus_* stuff doesn't really belong here, but dbus-bus-internal.h seems
  * silly for one function
index 82b05f3..94bbc57 100644 (file)
@@ -6169,7 +6169,8 @@ _dbus_connection_get_stats (DBusConnection *connection,
                             dbus_uint32_t  *out_bytes,
                             dbus_uint32_t  *out_fds,
                             dbus_uint32_t  *out_peak_bytes,
-                            dbus_uint32_t  *out_peak_fds)
+                            dbus_uint32_t  *out_peak_fds,
+                            dbus_uint32_t  *link_cache_size)
 {
   CONNECTION_LOCK (connection);
 
@@ -6194,6 +6195,11 @@ _dbus_connection_get_stats (DBusConnection *connection,
   if (out_peak_fds != NULL)
     *out_peak_fds = _dbus_counter_get_peak_unix_fd_value (connection->outgoing_counter);
 
+  if (link_cache_size != NULL)
+    {
+      *link_cache_size = _dbus_list_get_length (&connection->link_cache) * sizeof (DBusList);
+    }
+
   CONNECTION_UNLOCK (connection);
 }
 #endif /* DBUS_ENABLE_STATS */