From 390ef9a08c1f5e8547a35e2d38e6928a4b1ac5b5 Mon Sep 17 00:00:00 2001 From: Stef Walter Date: Fri, 16 Jan 2009 17:19:02 +0000 Subject: Add RSS size --- module/bsnmp-jails.c | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'module/bsnmp-jails.c') diff --git a/module/bsnmp-jails.c b/module/bsnmp-jails.c index b6eca88..542d30c 100644 --- a/module/bsnmp-jails.c +++ b/module/bsnmp-jails.c @@ -169,6 +169,7 @@ struct jaildat { uint32_t cpu_time_offset; uint32_t n_processes; uint32_t n_threads; + uint64_t rss_memory; /* Top process information */ uint32_t n_ptops; @@ -887,6 +888,7 @@ process_refresh_all (void) int nentries, i, jid; uint32_t cpu_time; void *alloc; + int pagesize; /* Get a process listing */ kp = kvm_getprocs (kvm_handle, KERN_PROC_PROC, 0, &nentries); @@ -897,6 +899,7 @@ process_refresh_all (void) /* Sort the input we get, in reverse */ qsort (kp, nentries, sizeof (*kp), process_compar_kp_pid); + pagesize = getpagesize (); /* Mark all processes in the jail for later sweep */ TAILQ_FOREACH (jail, &jaildats, link) { @@ -905,6 +908,7 @@ process_refresh_all (void) jail->n_processes = 0; jail->n_threads = 0; + jail->rss_memory = 0; jail->cpu_time_total = jail->cpu_time_offset; } @@ -923,6 +927,8 @@ process_refresh_all (void) jail->n_processes += 1; jail->n_threads += kp[i].ki_numthreads; + jail->rss_memory += (kp[i].ki_rssize * pagesize); + /* Find the top level process within jail to account to */ tkp = &kp[i]; @@ -1453,6 +1459,9 @@ op_jailentry (struct snmp_context *ctx, struct snmp_value *value, case LEAF_jailDiskFiles: value->v.counter64 = jail->disk_files; return SNMP_ERR_NOERROR; + case LEAF_jailResidentSize: + value->v.counter64 = jail->rss_memory; + return SNMP_ERR_NOERROR; default: ASSERT (0); return SNMP_ERR_NOSUCHNAME; -- cgit v1.2.3