PADC(1) PADC(1) NAME padc - process activity data collector SYNOPSIS padc -Cqrsk [-I len] [-h pri] [-b bufsz] [-t time] padc -qrsk [-i] [-I len] [-h pri] [-b bufsz] [-t time] [-p pid] DESCRIPTION padc traces the activity of a process or group of processes and writes the raw event data to the standard output. System calls, scheduling actions, and disk i/o operations are activities that padc can trace. In addition to kernel-generated events, padc collects any events created by processes through the rtmon_log_user_tstamp(3) library routine. padc is normally invoked by the par(1) program which reads and formats its output. padc can also be invoked by itself with the event data written to a file for later processing by par or rtmon-dump(1). By default, padc traces the requested events for all processes on a system. System call event collection can be restricted to a specific set of processes with one or more -p options. If the -i option is given, all future children of the specified processes will also have their system calls traced. If the -t option is specified, padc will collect trace data for a limited amount of time. padc collects trace data until: the time specified with the -t option has elapsed, padc receives a SIGINT or a SIGHUP signal, or all processes to be traced have terminated. The execution of traced processes is not affected when padc is collecting event data. OPTIONS -b bufsz Use a buffer bufsz bytes large to buffer event data written to the standard output. By default padc buffers up to 128 Kilobyte of data before writing the data to the standard output. Setting bufsz to zero causes padc to buffer its output as little as possible. -C Trace CXFS activity. -h pri Run padc with a nondegrading realtime scheduling priority pri. By default padc tries to use the same realtime scheduling priority that the system event collection process uses. This will only happen if padc is started by the super-user. padc tries to match scheduling priority so that it can compete equally for CPU time when doing system-wide event collection. -k Trace all disk i/o operations on the system. -I max Set the maximum amount of data returned by the kernel for indirect parameter values returned with a system call event. Some system calls (e.g. read) have potentially lots of data associated with them. padc always collects direct system call arguments; this option can be used to control the amount of indirect data. If max is 0, then no indirect parameter values will be collected. Otherwise max can be any value up to a maximum determined by the operating system; by default 4096 bytes. Note that setting this value to a large number increases the probability of losing events. -i Inherit system call tracing to future children of the processes specified with -p options. -p pid Enable system call event tracing for the specified pid. This option may be specified multiple times to enable system call tracing for multiple processes. Processes specified with this option must belong to the current user unless the user has super-user privilege. -q Trace scheduling events for all processes on the system. -r Trace scheduling events for processes specified with the -p and -i options. If no processes are specified, trace events for all processes on the system. -s Trace system calls for processes specified with the -p and -i options. -t time Collect data for a time-second interval. NOTES padc reads its information from the rtmond(1) server process on the machine where the traced processes are located. The rtmon-client(1) program may be used to collect trace data from an rtmond process on a different machine; the only restriction is that you cannot (easily) collect system call event data. padc's main task is to merge multiple streams of event data that are collected on multi-processor systems. This work may require a significant amount of memory if the system is heavily loaded because much event data may need to be buffered to insure events are properly sorted by time. For this reason padc does not merge event data when doing system-wide event collection; instead par recognizes that it needs to sort-merge the event data when displaying event traces (since it typically is run after the event data has been collected). Event data collected by padc is time stamped with a high resolution timer. The resolution of this timer depends on the system hardware; this value is recorded in the event stream so that post-processing programs such as par can properly calculate time values. To reduce system load, system call events generated by padc itself are not recorded. This can lead to some inexplicable gaps in the schedule trace. DIAGNOSTICS Unable to contact rtmon service on local host. There is no rtmond server process running on the system. Usually this is because the rtmond service has been disabled; consult chkconfig(1M). Cannot reach rtmon service on local host, access denied. The rtmond server process has been configured to deny access to all users on the local host. Unable to start data collection; server disallowed event collection. The rtmond server process has been configured to restrict the set of events that may be collected and you have requested collection of events that are unavailable. Unable to start data collection; temporarily out of resources. The rtmond server process was unable to start event collection because it ran out of system resources such as threads or memory. FILES /dev/par for enabling system call tracing /tmp/.rtmond_socket UNIX domain socket for client connections SEE ALSO par(1), rtmon-client(1), rtmon-dump(1), rtmond(1), par(7). Page 3