4

When running top interactively, I can see various words in the state column :

  • nanslp, biord, select, uwait, lockf, pause, kqread, piperd, sbwait ...

Some like nanslp or kqread are self explanatory, others are not.

Tried Mr man pages :

STATE is the current state (one of "START", "RUN" (shown as "CPUn" on SMP systems), "SLEEP", "STOP", "ZOMB", "WAIT", "LOCK" or the event on which the process waits), C is the processor number on which the process is executing (visible only on SMP systems)

Tried search engines :

Where may I get a complete list of possible process state under FreeBSD 9, and their meanings?

1 Answers1

4

A bit further in the top man page there is:

   If  a  process is in the "SLEEP" or "LOCK" state, the state column will
   report the name of the event or lock on which the process  is  waiting.
   Lock  names  are  prefixed  with an asterisk "*" while sleep events are
   not

So basically, all the non-capital "STATE", non prefixed with an asterisk are sleep events name.

These label are set in FreeBSD kernel, so this is where you should go to find their meaning. Sadly there is no nice summary as the event name is set by the sleep calls.

For instance, somewhere in /usr/src/sys/kern/sys_pipe.c in the pipe_read function:

error = msleep(rpipe, PIPE_MTX(rpipe), PRIBIO | PCATCH, "piperd", 0);

Or in /usr/src/sys/kern/sys_pipe.c in the kern_nanosleep function:

error = tsleep(&nanowait, PWAIT | PCATCH, "nanslp", tvtohz(&tv));

Ouki
  • 1,367
  • 1
  • 11
  • 16