HP-UX 11i Release Notes (December 2000)

Process, Threads, Memory, and Kernel Parameters
q4 and Dynamic Process and Thread Allocation
Chapter 8 155
q4 and Dynamic Process and Thread
Allocation
If you use q4, the HP-UX crash dump analyzer, you will want to know
about the dynamic process and thread allocation changes to the kernel.
Process and Thread Tables Removed
There is no longer a process or thread table in HP-UX. Those static
tables are replaced by flexible, dynamic structures.
Processes are not longer allocated in one chunk at boot time; they are
now allocated on demand. Due to the amount of code that assumes “once
a process structure, always a process structure,” HP has chosen not to
deallocate processes structures at this time. Also, you can now load the
active process list with a single q4 command:
q4> load proc_t from proc_list max nproc next p_factp
This replaces the old command of loading the process table, keeping the
p_stat != 0. This also truly represents the active list, which the
previous command did not.
If you need to look at every process structure on the system, in particular
if the structure of interest is not on the active list, use the following
command:
q4> load proc_t from proc_list max nproc next p_global_proc
This will load the process structures that are not currently in use and
may not be correctly initialized.
Just like processes, threads are allocated on demand. Just as with
processes, HP has chosen not to deallocate thread structure. To load the
active thread list using q4, use the following command:
q4> load kthread_t from kthread_list max nkthread next kt_global_kthread
Other Features of Dynamic Process and Thread
Allocation
There were several arrays allocated in parallel to the process table, in
particular, pst_ucomms and pst_cmds. pst_ucomms was “dead code”