summaryrefslogtreecommitdiff
path: root/src/core/dbus.c
diff options
context:
space:
mode:
authorLuca Boccassi <bluca@debian.org>2023-01-26 12:51:55 +0000
committerLuca Boccassi <bluca@debian.org>2023-02-23 13:26:52 +0000
commitfb22861da1866f7fd47c5d9c3744d527a44e2e06 (patch)
tree7895b3367ba08b0d2f69188de12338bdf19324d4 /src/core/dbus.c
parent500ecfd5130159b3b48b34e571b0c0220247bd78 (diff)
downloadsystemd-fb22861da1866f7fd47c5d9c3744d527a44e2e06.tar.gz
manager: add GetMallocInfo() hidden/debug method
Return the output of malloc_info() via a file descriptor (in case it gets large on a busy system). Useful to get live data about memory usage when it is not possible to run under a profiler from the get-go. Do not formally register the method, but add a 'hidden' interface so that it cannot be seen by introspection or by looking at the object.
Diffstat (limited to 'src/core/dbus.c')
-rw-r--r--src/core/dbus.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/core/dbus.c b/src/core/dbus.c
index c295e1fbd4..9ce9ddc8f2 100644
--- a/src/core/dbus.c
+++ b/src/core/dbus.c
@@ -737,6 +737,10 @@ static int bus_on_connection(sd_event_source *s, int fd, uint32_t revents, void
return 0;
}
+ r = bus_register_malloc_status(bus, "org.freedesktop.systemd1");
+ if (r < 0)
+ log_warning_errno(r, "Failed to register MemoryAllocation1, ignoring: %m");
+
r = set_ensure_put(&m->private_buses, NULL, bus);
if (r == -ENOMEM) {
log_oom();
@@ -798,6 +802,10 @@ static int bus_setup_api(Manager *m, sd_bus *bus) {
if (r < 0)
return log_error_errno(r, "Failed to request name: %m");
+ r = bus_register_malloc_status(bus, "org.freedesktop.systemd1");
+ if (r < 0)
+ log_warning_errno(r, "Failed to register MemoryAllocation1, ignoring: %m");
+
log_debug("Successfully connected to API bus.");
return 0;