Subject: Re: aiodone and other kernel threads documentation
To: Jeremy C. Reed <reed@reedmedia.net>
From: Martin Husemann <martin@duskware.de>
List: tech-misc
Date: 01/07/2004 12:28:02
On Tue, Jan 06, 2004 at 09:18:12PM -0800, Jeremy C. Reed wrote:
> - defined in errno(2): pid 4,  replaces the old update program that
>  periodically flushes the disk buffer cache.

Note that the pid is not cast in concrete.

> reaper
>  defined in errno(2): pid 3, handles deallocating resources for exiting
>  processes

This is gone in -current.

> pms0

This is a kernel thread used by the pms(4) driver. It will not be present,
if your kernel did not attach pms. There are others that are changing,
for example this machine has no ata bus and no pms:

PID TT STAT    TIME COMMAND
  0 ?? DKs  0:00.21 [swapper]
  1 ?? Ss   0:00.07 init 
  2 ?? DK   0:00.00 [scsibus0]
  3 ?? DK   0:00.00 [nell0]
  4 ?? DK   0:00.21 [pagedaemon]
  5 ?? DK   0:00.23 [ioflush]
  6 ?? DK   0:00.22 [aiodoned]

but it has a scsi bus, and a nell (pcmcia adaptor). The pid depends on the
probe order and devices present.

I'm not sure it's worth describing all possible device/bus specific kernel
threads. Generally such threads are used if the driver needs to do something
that needs sleeping and should not happen synchronous. For pcmcia adaptors
for example it is watching for card insertion/removal.

Martin