looking for a summary of what are different kernel threads

Latest response

Hi everyone,

has anyone come upon a good summary of what different kernel threads are? aoi, events, fc_dl_1, ib_addr, ib_cm, iw_cm_wc, kblockd, khelper, kthread, local_sa, migration, kjournald, watchdog, etc. It would be handy to have them described in one document - at least the most common kernel threads.

 

Kernel threads are marked in the ps output with square brackets. An example of output from a RHEL5 system:

 

[root@coke ~]# ps aux|grep ]
root         1  0.0  0.0  10368   760 ?        Ss   10:44   0:03 init [3]                               
root         2  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/0]
root         3  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/0]
root         5  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/1]
root         6  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/1]
root         7  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/1]
root         8  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/2]
root         9  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/2]
root        10  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/2]
root        11  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/3]
root        12  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/3]
root        13  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/3]
root        14  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/4]
root        15  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/4]
root        16  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/4]
root        17  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/5]
root        18  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/5]
root        19  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/5]
root        20  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/6]
root        21  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/6]
root        22  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/6]
root        23  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/7]
root        24  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/7]
root        25  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/7]
root        26  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/8]
root        27  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/8]
root        28  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/8]
root        29  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/9]
root        30  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/9]
root        31  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/9]
root        32  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/10]
root        33  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/10]
root        34  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/10]
root        35  0.0  0.0      0     0 ?        S<   10:44   0:00 [migration/11]
root        36  0.0  0.0      0     0 ?        SN   10:44   0:00 [ksoftirqd/11]
root        37  0.0  0.0      0     0 ?        S<   10:44   0:00 [watchdog/11]
root        38  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/0]
root        39  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/1]
root        40  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/2]
root        41  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/3]
root        42  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/4]
root        43  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/5]
root        44  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/6]
root        45  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/7]
root        46  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/8]
root        47  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/9]
root        48  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/10]
root        49  0.0  0.0      0     0 ?        S<   10:44   0:00 [events/11]
root        50  0.0  0.0      0     0 ?        S<   10:44   0:00 [khelper]
root       313  0.0  0.0      0     0 ?        S<   10:44   0:00 [kthread]
root       329  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/0]
root       330  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/1]
root       331  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/2]
root       332  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/3]
root       333  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/4]
root       334  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/5]
root       335  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/6]
root       336  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/7]
root       337  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/8]
root       338  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/9]
root       339  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/10]
root       340  0.0  0.0      0     0 ?        S<   10:44   0:00 [kblockd/11]
root       341  0.0  0.0      0     0 ?        S<   10:44   0:00 [kacpid]
root       509  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/0]
root       510  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/1]
root       511  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/2]
root       512  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/3]
root       513  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/4]
root       514  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/5]
root       515  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/6]
root       516  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/7]
root       517  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/8]
root       518  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/9]
root       519  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/10]
root       520  0.0  0.0      0     0 ?        S<   10:44   0:00 [cqueue/11]
root       523  0.0  0.0      0     0 ?        S<   10:44   0:00 [khubd]
root       525  0.0  0.0      0     0 ?        S<   10:44   0:00 [kseriod]
root       684  0.0  0.0      0     0 ?        S    10:44   0:00 [khungtaskd]
root       685  0.0  0.0      0     0 ?        S    10:44   0:00 [pdflush]
root       686  0.2  0.0      0     0 ?        S    10:44   0:14 [pdflush]
root       687  0.0  0.0      0     0 ?        S<   10:44   0:00 [kswapd0]
root       688  0.0  0.0      0     0 ?        S<   10:44   0:00 [kswapd1]
root       689  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/0]
root       690  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/1]
root       691  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/2]
root       692  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/3]
root       693  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/4]
root       694  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/5]
root       695  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/6]
root       696  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/7]
root       697  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/8]
root       698  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/9]
root       699  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/10]
root       700  0.0  0.0      0     0 ?        S<   10:44   0:00 [aio/11]
root       855  0.0  0.0      0     0 ?        S<   10:44   0:00 [kpsmoused]
root       990  0.0  0.0      0     0 ?        S<   10:44   0:00 [scsi_eh_0]
root       991  0.0  0.0      0     0 ?        S<   10:44   0:00 [qla2xxx_0_dpc]
root       992  0.0  0.0      0     0 ?        S<   10:44   0:00 [scsi_wq_0]
root       993  0.0  0.0      0     0 ?        S<   10:44   0:00 [fc_wq_0]
root       994  0.0  0.0      0     0 ?        S<   10:44   0:00 [fc_dl_0]
root       995  0.0  0.0      0     0 ?        S<   10:44   0:00 [scsi_eh_1]
root       996  0.0  0.0      0     0 ?        S<   10:44   0:00 [qla2xxx_1_dpc]
root       997  0.0  0.0      0     0 ?        S<   10:44   0:00 [scsi_wq_1]
root       998  0.0  0.0      0     0 ?        S<   10:44   0:00 [fc_wq_1]
root       999  0.0  0.0      0     0 ?        S<   10:44   0:00 [fc_dl_1]
root      1026  0.0  0.0      0     0 ?        S<   10:44   0:00 [kstriped]
root      1079  0.0  0.0      0     0 ?        S<   10:44   0:00 [ksnapd]
root      1134  0.0  0.0      0     0 ?        S<   10:44   0:05 [kjournald]
root      1159  0.0  0.0      0     0 ?        S<   10:44   0:00 [kauditd]
root      1995  0.0  0.0      0     0 ?        S<   10:44   0:00 [kedac]
root      2826  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/0]
root      2827  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/1]
root      2828  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/2]
root      2829  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/3]
root      2830  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/4]
root      2831  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/5]
root      2832  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/6]
root      2833  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/7]
root      2834  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/8]
root      2835  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/9]
root      2836  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/10]
root      2837  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpathd/11]
root      2838  0.0  0.0      0     0 ?        S<   10:44   0:00 [kmpath_handlerd]
root      2916  0.3  0.0      0     0 ?        S<   10:44   0:20 [kjournald]
root      2919  0.0  0.0      0     0 ?        S<   10:44   0:00 [kjournald]
root      3044  0.0  0.0      0     0 ?        S<   10:44   0:00 [iscsi_eh]
root      3193  0.0  0.0      0     0 ?        S<   10:45   0:00 [cnic_wq]
root      3251  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_addr]
root      3296  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_mcast]
root      3298  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_inform]
root      3299  0.0  0.0      0     0 ?        S<   10:45   0:00 [local_sa]
root      3313  0.0  0.0      0     0 ?        S<   10:45   0:00 [iw_cm_wq]
root      3327  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/0]
root      3329  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/1]
root      3330  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/2]
root      3331  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/3]
root      3332  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/4]
root      3333  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/5]
root      3334  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/6]
root      3335  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/7]
root      3336  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/8]
root      3337  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/9]
root      3338  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/10]
root      3339  0.0  0.0      0     0 ?        S<   10:45   0:00 [ib_cm/11]
root      3352  0.0  0.0      0     0 ?        S<   10:45   0:00 [rdma_cm]
root      3563  0.0  0.0      0     0 ?        S<   10:45   0:00 [bond0]
root      3975  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/0]
root      3976  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/1]
root      3977  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/2]
root      3978  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/3]
root      3979  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/4]
root      3980  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/5]
root      3981  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/6]
root      3982  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/7]
root      3983  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/8]
root      3984  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/9]
root      3985  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/10]
root      3986  0.0  0.0      0     0 ?        S<   10:45   0:00 [rpciod/11]
root      4349  0.0  0.0 110968  6620 ?        Ss   11:03   0:00 sshd: guzenkovs [priv]
root      4933  0.0  0.0      0     0 ?        SN   10:45   0:00 [kipmi0]
avahi     7932  0.0  0.0  21628  1312 ?        Ss   10:46   0:00 avahi-daemon: running [monitor02.local]
root      8361  0.0  0.0 110376  6608 ?        Ss   10:46   0:00 sshd: guzenkovs [priv]
root      9321  0.0  0.0 110376  6596 ?        Ss   10:46   0:00 sshd: guzenkovs [priv]
root      9472  0.0  0.0 110376  6592 ?        Ss   10:46   0:00 sshd: guzenkovs [priv]
root     10294  0.0  0.0 110376  6608 ?        Ss   10:47   0:00 sshd: guzenkovs [priv]
root     19592  0.0  0.0  61204   828 pts/3    S+   12:21   0:00 grep ]


[root@coke ~]# ps aux | grep ] | awk -F[ '{print $2}' | awk -F/ '{print $1}' |awk -F] '{print $1}'| sort| uniq

3
aio
bond0
cnic_wq
cqueue
events
fc_dl_0
fc_dl_1
fc_wq_0
fc_wq_1
ib_addr
ib_cm
ib_inform
ib_mcast
iscsi_eh
iw_cm_wq
kacpid
kauditd
kblockd
kedac
khelper
khubd
khungtaskd
kipmi0
kjournald
kmpathd
kmpath_handlerd
kpsmoused
kseriod
ksnapd
ksoftirqd
kstriped
kswapd0
kswapd1
kthread
local_sa
migration
monitor02.local
pdflush
priv
qla2xxx_0_dpc
qla2xxx_1_dpc
rdma_cm
rpciod
scsi_eh_0
scsi_eh_1
scsi_wq_0
scsi_wq_1
watchdog

 

 

Another question is on naming convention for multiple threads of the same name. In the output above I can see three different naming conventions:

1) _0, _1, ... e.g. [scsi_wq_0], [scsi_wq_1]

2) /1, /2, ... e.g. [aio/0], [aio/1]

3) 1, 2, ... e.g. [kswapd0], [kswapd1] --note that there is only one swap disk on that system.

Is there any semantic difference between them?

Responses