X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fprocesses.c;h=0513a156a999d4330ca63599b176abc31b68682d;hb=5523a080010dcb7a61dc0dccc3969a2a048e52f9;hp=5bacd5bd5e3d6b40e3bd39cb91f5c84e95bda4c3;hpb=b81104a423234c04f0eb4ace0ec5e93a363c917a;p=collectd.git diff --git a/src/processes.c b/src/processes.c index 5bacd5bd..0513a156 100644 --- a/src/processes.c +++ b/src/processes.c @@ -35,9 +35,9 @@ **/ #include "collectd.h" + #include "common.h" #include "plugin.h" -#include "configfile.h" /* Include header files for the mach system, if they exist.. */ #if HAVE_THREAD_INFO @@ -366,43 +366,38 @@ static int ps_list_match (const char *name, const char *cmdline, procstat_t *ps) return (0); } /* int ps_list_match */ -static void ps_update_counter ( - _Bool init, - derive_t *group_counter, - derive_t *curr_counter, unsigned long *curr_value, - derive_t new_counter, unsigned long new_value) { - if (init) - { - *curr_value = new_value; - *curr_counter += new_value; - *group_counter += new_value; - return; - } - - if (new_counter < *curr_counter) - { - *curr_value = new_counter + (ULONG_MAX - *curr_counter); - } - else - { - *curr_value = new_counter - *curr_counter; - } - *curr_counter = new_counter; - *group_counter += *curr_value; +static void ps_update_counter (_Bool init, derive_t *group_counter, + derive_t *curr_counter, unsigned long *curr_value, + derive_t new_counter, unsigned long new_value) +{ + if (init) + { + *curr_value = new_value; + *curr_counter += new_value; + *group_counter += new_value; + return; + } + + if (new_counter < *curr_counter) + *curr_value = new_counter + (ULONG_MAX - *curr_counter); + else + *curr_value = new_counter - *curr_counter; + + *curr_counter = new_counter; + *group_counter += *curr_value; } /* add process entry to 'instances' of process 'name' (or refresh it) */ static void ps_list_add (const char *name, const char *cmdline, procstat_entry_t *entry) { - procstat_t *ps; procstat_entry_t *pse; if (entry->id == 0) return; - for (ps = list_head_g; ps != NULL; ps = ps->next) + for (procstat_t *ps = list_head_g; ps != NULL; ps = ps->next) { - _Bool want_init; + _Bool want_init; if ((ps_list_match (name, cmdline, ps)) == 0) continue; @@ -486,11 +481,10 @@ static void ps_list_add (const char *name, const char *cmdline, procstat_entry_t /* remove old entries from instances of processes in list_head_g */ static void ps_list_reset (void) { - procstat_t *ps; procstat_entry_t *pse; procstat_entry_t *pse_prev; - for (ps = list_head_g; ps != NULL; ps = ps->next) + for (procstat_t *ps = list_head_g; ps != NULL; ps = ps->next) { ps->num_proc = 0; ps->num_lwp = 0; @@ -542,15 +536,13 @@ static void ps_list_reset (void) /* put all pre-defined 'Process' names from config to list_head_g tree */ static int ps_config (oconfig_item_t *ci) { - int i; - #if KERNEL_LINUX const size_t max_procname_len = 15; #elif KERNEL_SOLARIS || KERNEL_FREEBSD const size_t max_procname_len = MAXCOMLEN -1; #endif - for (i = 0; i < ci->children_num; ++i) { + for (int i = 0; i < ci->children_num; ++i) { oconfig_item_t *c = ci->children + i; if (strcasecmp (c->key, "Process") == 0) @@ -882,8 +874,8 @@ static procstat_t *ps_read_tasks_status (long pid, procstat_t *ps) if (fclose (fh)) { char errbuf[1024]; - WARNING ("processes: fclose: %s", - sstrerror (errno, errbuf, sizeof (errbuf))); + WARNING ("processes: fclose: %s", + sstrerror (errno, errbuf, sizeof (errbuf))); } } closedir (dh); @@ -1471,13 +1463,12 @@ static int ps_read_process(long pid, procstat_t *ps, char *state) static int read_fork_rate (void) { extern kstat_ctl_t *kc; - kstat_t *ksp_chain = NULL; derive_t result = 0; if (kc == NULL) return (-1); - for (ksp_chain = kc->kc_chain; + for (kstat_t *ksp_chain = kc->kc_chain; ksp_chain != NULL; ksp_chain = ksp_chain->ks_next) { @@ -1543,17 +1534,14 @@ static int ps_read (void) #if HAVE_THREAD_INFO kern_return_t status; - int pset; processor_set_t port_pset_priv; - int task; task_array_t task_list; mach_msg_type_number_t task_list_len; int task_pid; char task_name[MAXCOMLEN + 1]; - int thread; thread_act_array_t thread_list; mach_msg_type_number_t thread_list_len; thread_basic_info_data_t thread_data; @@ -1578,7 +1566,7 @@ static int ps_read (void) * Tasks are assigned to sets of processors, so that's where you go to * get a list. */ - for (pset = 0; pset < pset_list_len; pset++) + for (mach_msg_type_number_t pset = 0; pset < pset_list_len; pset++) { if ((status = host_processor_set_priv (port_host_self, pset_list[pset], @@ -1599,7 +1587,7 @@ static int ps_read (void) continue; } - for (task = 0; task < task_list_len; task++) + for (mach_msg_type_number_t task = 0; task < task_list_len; task++) { ps = NULL; if (mach_get_task_name (task_list[task], @@ -1697,7 +1685,7 @@ static int ps_read (void) continue; /* with next task_list */ } - for (thread = 0; thread < thread_list_len; thread++) + for (mach_msg_type_number_t thread = 0; thread < thread_list_len; thread++) { thread_data_len = THREAD_BASIC_INFO_COUNT; status = thread_info (thread_list[thread], @@ -1828,8 +1816,6 @@ static int ps_read (void) procstat_entry_t pse; char state; - procstat_t *ps_ptr; - running = sleeping = zombies = stopped = paging = blocked = 0; ps_list_reset (); @@ -1910,7 +1896,7 @@ static int ps_read (void) ps_submit_state ("paging", paging); ps_submit_state ("blocked", blocked); - for (ps_ptr = list_head_g; ps_ptr != NULL; ps_ptr = ps_ptr->next) + for (procstat_t *ps_ptr = list_head_g; ps_ptr != NULL; ps_ptr = ps_ptr->next) ps_submit_proc_list (ps_ptr); read_fork_rate(); @@ -1930,9 +1916,7 @@ static int ps_read (void) struct kinfo_proc *procs; /* array of processes */ struct kinfo_proc *proc_ptr = NULL; int count; /* returns number of processes */ - int i; - procstat_t *ps_ptr; procstat_entry_t pse; ps_list_reset (); @@ -1957,7 +1941,7 @@ static int ps_read (void) } /* Iterate through the processes in kinfo_proc */ - for (i = 0; i < count; i++) + for (int i = 0; i < count; i++) { /* Create only one process list entry per _process_, i.e. * filter out threads (duplicate PID entries). */ @@ -2060,7 +2044,7 @@ static int ps_read (void) ps_submit_state ("idle", idle); ps_submit_state ("wait", wait); - for (ps_ptr = list_head_g; ps_ptr != NULL; ps_ptr = ps_ptr->next) + for (procstat_t *ps_ptr = list_head_g; ps_ptr != NULL; ps_ptr = ps_ptr->next) ps_submit_proc_list (ps_ptr); /* #endif HAVE_LIBKVM_GETPROCS && HAVE_STRUCT_KINFO_PROC_FREEBSD */ @@ -2078,9 +2062,7 @@ static int ps_read (void) struct kinfo_proc *procs; /* array of processes */ struct kinfo_proc *proc_ptr = NULL; int count; /* returns number of processes */ - int i; - procstat_t *ps_ptr; procstat_entry_t pse; ps_list_reset (); @@ -2105,7 +2087,7 @@ static int ps_read (void) } /* Iterate through the processes in kinfo_proc */ - for (i = 0; i < count; i++) + for (int i = 0; i < count; i++) { /* Create only one process list entry per _process_, i.e. * filter out threads (duplicate PID entries). */ @@ -2197,7 +2179,7 @@ static int ps_read (void) ps_submit_state ("idle", idle); ps_submit_state ("dead", dead); - for (ps_ptr = list_head_g; ps_ptr != NULL; ps_ptr = ps_ptr->next) + for (procstat_t *ps_ptr = list_head_g; ps_ptr != NULL; ps_ptr = ps_ptr->next) ps_submit_proc_list (ps_ptr); /* #endif HAVE_LIBKVM_GETPROCS && HAVE_STRUCT_KINFO_PROC_OPENBSD */ @@ -2213,7 +2195,6 @@ static int ps_read (void) pid_t pindex = 0; int nprocs; - procstat_t *ps; procstat_entry_t pse; ps_list_reset (); @@ -2221,9 +2202,7 @@ static int ps_read (void) /* fdsinfo = */ NULL, sizeof(struct fdsinfo64), &pindex, MAXPROCENTRY)) > 0) { - int i; - - for (i = 0; i < nprocs; i++) + for (int i = 0; i < nprocs; i++) { tid64_t thindex; int nthreads; @@ -2334,7 +2313,7 @@ static int ps_read (void) ps_submit_state ("paging", paging); ps_submit_state ("blocked", blocked); - for (ps = list_head_g; ps != NULL; ps = ps->next) + for (procstat_t *ps = list_head_g; ps != NULL; ps = ps->next) ps_submit_proc_list (ps); /* #endif HAVE_PROCINFO_H */ @@ -2358,7 +2337,6 @@ static int ps_read (void) DIR *proc; int status; - procstat_t *ps_ptr; char state; char cmdline[PRARGSZ]; @@ -2448,7 +2426,7 @@ static int ps_read (void) ps_submit_state ("system", system); ps_submit_state ("orphan", orphan); - for (ps_ptr = list_head_g; ps_ptr != NULL; ps_ptr = ps_ptr->next) + for (procstat_t *ps_ptr = list_head_g; ps_ptr != NULL; ps_ptr = ps_ptr->next) ps_submit_proc_list (ps_ptr); read_fork_rate();