diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-07-27 21:47:25 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-07-27 21:47:25 +0200 |
commit | 455a946f40c0f9d158f0494cec043f6e028848d7 (patch) | |
tree | 209d07b15d1064bbf220945b242b9159d497b56c /src/label.c | |
parent | 6a9bff42dce03b77f7818f553ad339e905ed1288 (diff) |
selinux: also profile memory usage
Diffstat (limited to 'src/label.c')
-rw-r--r-- | src/label.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/label.c b/src/label.c index 5157b790d2..b7bb03322f 100644 --- a/src/label.c +++ b/src/label.c @@ -22,6 +22,7 @@ #include <errno.h> #include <sys/stat.h> #include <unistd.h> +#include <malloc.h> #include "label.h" #include "util.h" @@ -48,6 +49,7 @@ int label_init(void) { #ifdef HAVE_SELINUX usec_t n; + struct mallinfo before; if (!use_selinux()) return 0; @@ -55,7 +57,9 @@ int label_init(void) { if (label_hnd) return 0; + before = mallinfo(); n = now(CLOCK_MONOTONIC); + label_hnd = selabel_open(SELABEL_CTX_FILE, NULL, 0); if (!label_hnd) { log_full(security_getenforce() == 1 ? LOG_ERR : LOG_DEBUG, @@ -63,12 +67,18 @@ int label_init(void) { r = security_getenforce() == 1 ? -errno : 0; } else { char buf[FORMAT_TIMESPAN_MAX]; + struct mallinfo after; + int l; n = now(CLOCK_MONOTONIC) - n; - log_info("Successfully loaded SELinux database in %s.", - format_timespan(buf, sizeof(buf), n)); - } + after = mallinfo(); + l = after.uordblks > before.uordblks ? after.uordblks - before.uordblks : 0; + + log_info("Successfully loaded SELinux database in %s, size on heap is %iK.", + format_timespan(buf, sizeof(buf), n), + l/1024); + } #endif return r; |