summaryrefslogtreecommitdiff
path: root/libps/procstat.c
AgeCommit message (Collapse)Author
2014-12-10Replace `bzero' with `memset'Justus Winter
For reference, this patch was created using the following semantic patch, and then manually applying the change in all functions containing nested functions, as those are not supported by Coccinelle. @@ expression A, B; @@ - bzero (A, B) + memset (A, 0, B) * auth/auth.c: Replace `bzero' with `memset'. * boot/boot.c: Likewise. * defpager/defpager.c: Likewise. * exec/exec.c: Likewise. Also, drop `safe_bzero' and just use `hurd_safe_memset' directly. * ext2fs/ext2fs.c: Likewise. * ext2fs/getblk.c: Likewise. * ext2fs/pager.c: Likewise. * fatfs/pager.c: Likewise. * ftpfs/dir.c: Likewise. * ftpfs/netfs.c: Likewise. * isofs/inode.c: Likewise. * isofs/pager.c: Likewise. * libdiskfs/file-getfh.c: Likewise. * libdiskfs/file-statfs.c: Likewise. * libfshelp/fetch-root.c: Likewise. * libfshelp/start-translator.c: Likewise. * libftpconn/create.c: Likewise. * libftpconn/open.c: Likewise. * libftpconn/unix.c: Likewise. * libpipe/pipe.c: Likewise. * libps/procstat.c: Likewise. * libps/spec.c: Likewise. * libshouldbeinlibc/cacheq.c: Likewise. * libshouldbeinlibc/idvec.c: Likewise. * libshouldbeinlibc/ugids.c: Likewise. * libstore/argp.c: Likewise. * libstore/enc.c: Likewise. * libstore/kids.c: Likewise. * libthreads/alpha/thread.c: Likewise. * libtreefs/fsys.c: Likewise. * libtrivfs/file-statfs.c: Likewise. * mach-defpager/default_pager.c: Likewise. * pfinet/glue-include/asm/uaccess.h: Likewise. * pfinet/io-ops.c: Likewise. * pfinet/options.c: Likewise. * pfinet/socket.c: Likewise. * pfinet/timer-emul.c: Likewise. * pflocal/io.c: Likewise. * startup/startup.c: Likewise. * storeio/storeio.c: Likewise. * sutils/fstab.c: Likewise. * usermux/usermux.c: Likewise. * utils/fakeauth.c: Likewise. * utils/frobauth.c: Likewise. * utils/login.c: Likewise. * utils/x.c: Likewise.
2014-11-02Fix proc_getprocinfo callsSamuel Thibault
The deallocation also needs to be fixed. Also, fetch_procinfo already took care of the conversion. * exec/elfcore.c (dump_core): Fix procinfoCnt taken from proc_getprocinfo. * utils/login.c (check_owned): Likewise. * libps/procstat.c (merge_procinfo): Remove conversion between bytes and int, already handled by fetch_procinfo.
2014-11-02Fix proc_getprocinfo callsSamuel Thibault
The procinfoCnt argument is the number of elements of the procinfo_t array, not its size in bytes. * exec/elfcore.c (dump_core): Fix procinfoCnt given to proc_getprocinfo. * libps/procstat.c (merge_procinfo): Likewise. * utils/login.c (check_owned): Likewise.
2014-01-16libps: fix task/thread times fetchingRichard Braun
Introduce PSTAT_TIMES to force the retrieval of both PSTAT_TASK_BASIC and PSTAT_THREAD_BASIC. Task basic info contain the user and system times of terminated threads which the code wrongly assumes is always present along with process info. * libps/procstat.c (add_preconditions): Set both PSTAT_TASK_BASIC and PSTAT_THREAD_BASIC as preconditions for PSTAT_TIMES. (summarize_thread_basic_info): Add terminated threads times only if task basic info are available. (set_procinfo_flags): Provide summarize_thread_basic_info with flags of available info. (proc_stat_set_flags): Set PSTAT_TIMES as available if it was needed and any of PSTAT_TASK_BASIC or PSTAT_THREAD_BASIC could be fetched. * libps/ps.h (PSTAT_TIMES): New macro. * libps/spec.c (ps_get_usr_time): Indicate the getter needs PSTAT_TIMES instead of PSTAT_THREAD_BASIC. (ps_sys_time_getter): Likewise. (ps_tot_time_getter): Likewise.
2013-12-30libps: fix process user and system timesRichard Braun
Include the run time of terminated threads in the user and system times of processes.
2013-03-11Update nasty/nice priority limitSamuel Thibault
* libps/procstat.c (thread_state): Update nasty/nice limit to 25 instead of 12.
2013-01-13Add TASK_EVENTS_INFO support to libpsDavid Höppner
* libps/procstat.c (merge_procinfo): Also copy taskevents. * libps/procstat.c (set_procinfo_flags): Set pointer to task_events_info. * tasks: Remove TASK_EVENTS_INFO item.
2011-08-20fix common misspellingsJonathan Neuschäfer
* Fix spelling with codespell[1] and manually review it. [1] http://git.profusion.mobi/cgit.cgi/lucas/codespell/
2010-09-18Obtain number of ports in proc and libpsantrik
Add (and implement) a proc RPC to obtain the number of Mach ports used by the target task. Add infrastructure in libps to read this information. * hurd/process.defs (proc_getnports): New RPC. * hurd/process_request.defs (proc_getnports_request): New RPC. * libps/procstat.c (proc_stat_set_flags): Call proc_getnports RPC if needed. * libps/ps.h (proc_stat): New `num_ports' field. (PSTAT_NUM_PORTS): New macro. (proc_stat_num_ports): New macro. * libps/spec.c (ps_get_num_ports): New function. (ps_num_ports_getter): New variable. (specs): New entry for `ps_num_ports_getter'. * proc/info.c (S_proc_getnports): New function.
2010-08-26libps (proc_stat_set_flags): Fix pointer signedness warningJeremie Koenig
* libps/procstat.c (proc_stat_set_flags): Cast &ps->umask into (int*) before calling ps_msg_get_init_int.
2010-08-26Merge branch 'master' of git.savannah.gnu.org:/srv/git/hurd/hurdSamuel Thibault
2010-08-26libps (fetch_procinfo): Fix non-set flag PSTAT_TASK_EVENTSJeremie Koenig
The fetch_procinfo function failed to set the PSTAT_TASK_EVENTS when those has been retreived. It should be noted that GNU Mach does not support the TASK_EVENTS_INFO flavor, so this is of minor importance. The new code also checks that all the requested proc server flags related to a given proc_stat flags have been returned before setting the proc_stat flag in question. * libps/procstat.c (fetch_procinfo): Add map array containing `ps_flags_t' and `procinfo' flags. Use it in a loop to check for flags in `need' and `have' and set them in `pi_flags'. Likewise to check for flags in `pi_flags' and set them in `have'.
2010-08-26libps (_proc_stat_free): Fix memory leakJeremie Koenig
The thread_waits field was never freed; this change adds the code to do so if the corresponding flag is set. Users are also warned of the consequences, namely, that they should not free process proc_stats before all their associated thread ones are gone, since the latter may reference the former's thread_waits field. However, with the normal interface (ie. ps_context_free), all proc_stats are freed at once, so this is not an issue. * libps/procstat.c (_proc_stat_free): Free ps->thread_waits if PSTAT_THREAD_WAITS flag is set. * libps/ps.h (_proc_stat_free): Document that thread proc_stats must be freed before process proc_stat can be.
2010-08-26libps: Fix deadly typoJeremie Koenig
PSTAT_PROCINFO is a set of flags, some of which can be obtained in alternative ways. In this case, _proc_stat_free will try to deallocate an uninitialised field. PSTAT_PROC_INFO is the flag we want. * libps/procstat.c (_proc_stat_free): Use PSTAT_PROC_INFO instead of PSTAT_PROCINFO.
2002-06-052002-06-05 Roland McGrath <roland@frob.com>Roland McGrath
* procstat.c (fetch_procinfo): Use PI_FETCH_TASKEVENTS. (add_preconditions): PSTAT_TASK_EVENTS no longer needs PSTAT_TASK. (PSTAT_PROCINFO_TASK): Add PSTAT_TASK_EVENTS to the mask. (PSTAT_PROCINFO_MERGE): Here too. (proc_stat_set_flags): Don't use task_info for PSTAT_TASK_EVENTS.
2002-05-082002-05-07 Roland McGrath <roland@frob.com>Roland McGrath
* host.c (ps_host_basic_info): int -> size_t (ps_host_basic_info, ps_host_load_info): Likewise. * ps.h: Update decls. (struct proc_stat): unsigned -> size_t for task_events_info_size, args_len, env_len. * procstat.c (summarize_thread_waits): Fix argument type.
1999-07-031999-07-03 Thomas Bushnell, BSG <tb@mit.edu>Thomas Bushnell
* common.h (VMFREE): Use munmap instead of vm_deallocate. * procstat.c (merge_procinfo): Likewise.
1999-06-021999-06-02 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath
* ps.h (PSTAT_ENV): New macro. (struct proc_stat): New members `env', `env_len', `env_vm_alloced'. (proc_stat_env, proc_stat_env_len): New accessor macros. (PSTAT_USER_BASE): Increase value to leave more room for additions. * procstat.c (proc_stat_set_flags): Handle environment. (_proc_stat_free): Likewise. * spec.c (ps_get_env, ps_env_getter): New function and constant. (specs): New spec "Env" using ps_env_getter and ps_emit_args.
1998-10-20Add braces to silence gcc warnings.Roland McGrath
1997-05-23fix typoThomas Bushnell
1997-05-23Fri May 23 13:13:18 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>Thomas Bushnell
* procstat.c (summarize_thread_basic_info): Don't include the kernel's idle threads in the summation. (summarize_thread_sched_info): Likewise. (summarize_thread_states): Likewise. (summarize_thread_waits): Likewise.
1996-11-16(proc_stat_set_flags):Miles Bader
Allow the user fetch hook to turn on non-user bits, even if they've already failed in the standard code.
1996-10-08(proc_stat_set_flags):Miles Bader
Get rid of INAPP macro. Fix preconditions of PSTAT_SUSPEND_COUNT.
1996-10-08(proc_stat_thread_create):Miles Bader
Initialize FAILED and INAPP fields. (PSTAT_PROCINFO): Redefined. (set_procinfo_flags): Set bits in PS->inapp as appropriate. (count_threads): Use PSTAT_PROCINFO_TASK_THREAD_DEP. (PSTAT_PROCINFO_TASK_THREAD_DEP): Renamed from PSTAT_PROCINFO_THREAD. (PSTAT_PROCINFO_THREAD, PSTAT_PROCINFO_TASK): New macro. (proc_stat_set_flags): Add NEED & INAPP macros, and use them to set the inapp field as well as the failed field. (_proc_stat_create): Initialize INAPP field.
1996-08-02(set_procinfo_flags): Pass HAVE to count_threads.Miles Bader
(count_threads): Take new argument HAVE, and use different thread counting method depending on whether we have thread detail info.
1996-07-11(set_procinfo_flags): Don't use fake "*" wait value if there's no msgport.Miles Bader
1996-07-02(proc_stat_set_flags):Miles Bader
Pass PS->task_events_info to task_info, not its address.
1996-06-03(merge_procinfo):Miles Bader
Take a struct proc_stat as an arg, not all the individual fields. Correctly set old_pi_hdr. Correctly calculate REALLY_NEED. (set_procinfo_flags): Use new calling merge_procinfo calling convention. (proc_stat_set_flags): Try mallocing a buffer for PS->args. Move second call to set_procinfo_flags after msgport suppress test. Add TEST_MSGPORT_FLAGS variable, & use it. Be more picky about when we call set_procinfo_flags. (_proc_stat_free): Use explicit VM_ALLOCED flag for MFREEMEM.
1996-06-02(set_procinfo_flags): New function.Miles Bader
(proc_stat_set_flags): Use it, to get msgport validity testing right. (merge_procinfo): Take and return HAVE instead of using a reference parameter. Do mem allocation more efficiently and correctly. (fetch_procinfo): Do conversion for PI_SIZE from/to units of sizeof (int), so no one else has to deal with it. (PROCINFO_MALLOC_SIZE, WAITS_MALLOC_SIZE): New macros. (MFREEMEM): New macro combining MFREEM & MFREEVM. (MFREEM, MFREEVM): Macros deleted.
1996-05-31(proc_stat_set_flags): After fetching number of threads to guess whether weMiles Bader
need wait info, put it in PS->num_threads. (merge_procinfo): Avoid vm_allocing a procinfo buffer each time if we can help it. Correctly reflect newly fetched info. (PSTAT_PROCINFO_MERGE, PSTAT_PROCINFO_REFETCH): New macros.
1996-05-29(MP_MGET): Only disable msgport on timeout.Miles Bader
(get_thread_wait): Decrement N in loop. (get_thread_wait): Use strnlen instead of memchr. (PSTAT_PROCINFO): Typo: PSTAT_THREAD_WAIT --> PSTAT_THREAD_WAITS. (PSTAT_USES_MSGPORT): Add PSTAT_THREAD_WAIT.
1996-05-29(merge_procinfo): Don't die if WAITS == 0.Miles Bader
(summarize_thread_waits): Correctly advance NEXT_WAIT. Skip threads marked `itimer'. (proc_stat_set_flags): Consider processes with less than 4 threads to be candidates for a meaningful process wait status.
1996-05-24(merge_procinfo): And update *HAVE with PSTAT_PROC_INFO fromMichael I. Bushnell
REALLY_HAVE here.
1996-05-24(fetch_procinfo): Always turn on PSTAT_PROC_INFO if proc_getprocinfoMichael I. Bushnell
returns successfully.
1996-05-13(PSTAT_PROCINFO, PSTAT_PROCINFO_THREAD): Add PSTAT_THREAD_WAITS.Miles Bader
(proc_stat_set_flags): Be more careful about when we fetch thread_wait information, and synthesize a process-summary thread_wait value for lots of threads. (summarize_thread_waits): Only give a real summary if there's but a single user thread. (fetch_procinfo): Use PSTAT_THREAD_WAITS instead of PSTAT_THREAD_WAIT.
1996-05-12(merge_procinfo, fetch_procinfo): Change HAVE to be an input/output parameter.Miles Bader
(proc_stat_set_flags): Change accordingly. (get_thread_wait): Correctly advance WAIT.
1996-05-12(get_thread_wait): Correctly advance WAIT.Miles Bader
1996-05-12Frob comment.Miles Bader
1996-05-09(fetch_procinfo): Pass a reference to PI_FLAGS in call toMichael I. Bushnell
fetch_procinfo.
1996-05-07(add_preconditions, proc_stat_set_flags): Remove references to exec_flags.Miles Bader
1996-03-27(proc_stat_set_flags): Use new `ps_' prefix for msg rpcs.Miles Bader
Include "ps_msg.h".
1996-03-26Get rid of mega typedefs, and just use structure pointers like other hurdMiles Bader
libraries. Other misc cleanups.
1996-02-13(fetch_procinfo, merge_procinfo): Return wait strings.Miles Bader
(summarize_thread_waits): Return both wait and rpc info. (get_thread_wait): New function. (proc_stat_set_flags): Support finding wait info. Change occurances of PSTAT_THREAD_RPC to PSTAT_THREAD_WAIT.
1996-01-19(summarize_thread_basic_info):Miles Bader
If there are any running threads, then only average priority from them. (_proc_stat_free): Call user cleanup hook. (proc_stat_set_flags, add_preconditions): Deal with user bits. (proc_stat_set_flags): Support the failed field. (_proc_stat_create): Initialize the failed and hook fields.
1995-12-20(proc_stat_set_flags): If there's no owner, set the uid to -1 (and the ownerMiles Bader
to null), instead of failing. (proc_stat_set_flags): Add support for PROC_OWNER_UID. (add_preconditions): Add preconditions for owner_uid (& owner).
1995-11-08(proc_stat_set_flags):Miles Bader
Initialize the proc_info and proc_info_size fields if they've never been set. Always update proc_getprocinfo fields, even if we already had them. (add_preconditions): Correct preconditions for PSTAT_STATE. (PSTAT_TEST_MSGPORT): Renamed from SHOULD_SUPPRESS_MSGPORT_FLAGS. (PSTAT_USES_MSGPORT): New macro. (SUPPRESS_MSGPORT_FLAGS): Use PSTAT_USES_MSGPORT, not PSTAT_MSGPORT. (proc_stat_set_flags): Use PSTAT_TEST_MSGPORT. (merge_procinfo): Only copy old task info if we actually had it. (proc_stat_set_flags): Don't unnecessarily grab procinfo stuff. (summarize_thread_basic_info): Summarize available priority info too. (summarize_thread_sched_info): Do max_ & depress_priority too.
1995-11-03(add_preconditions): Don't require PSTAT_EXEC_FLAGS for getting the stateMiles Bader
anymore (but do require PSTAT_{TASK,THREAD}_BASIC). (proc_stat_state_tags): Update to reflect new flags. (proc_stat_set_flags): Set new flags. (PSTAT_PROCINFO, PSTAT_PROCINFO_THREAD): New macros. (fetch_procinfo, merge_procinfo): New functions. (SHOULD_SUPPRESS_MSGPORT_FLAGS): Change to use more accurate flags. (should_suppress_msgport): Use new fields. (summarize_thread_basic_info, summarize_thread_sched_info, summarize_thread_states, summarize_thread_rpcs, count_threads): New funcs. (proc_stat_set_flags): Support the new division of PSTAT_INFO into individual flags, and support getting thread information by using the thread's origin proc_stat. (_proc_stat_free): Free the thread_basic_info and thread_sched_info fields if necessary. (proc_stat_thread_create): Don't require that the source process have thread information around; it will be fetched later if necessary.
1995-08-19(thread_state, proc_stat_set_flags): Use the new state bits.Miles Bader
(proc_stat_set_flags): Actually set the PSTAT_STATE_P_STOP bit. (proc_stat_state_tags): Reordered to reflect the new ordering of the state bits.
1995-05-05If a msg port call times out, disable use of that msg port.Miles Bader
1995-05-02(proc_stat_set_flags, add_preconditions): Add support for the suspend_countMiles Bader
field.