WCHAN = 0 para uma tarefa adormecida?

2

Estou um pouco confuso sobre o status de um processo que tenho. Parece assim:

$ ps -eal | head -n 1 ; ps -eal | grep perf
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0  7843  7842  0  80   0 - 10838 -      pts/6    00:00:00 perf

- assim, o status é S , que a página man descreve como "S sleep interrompível (aguardando a conclusão de um evento)" , está aguardando algum evento. Eu suponho que ele está listado em algum canal de espera. Mas o canal de espera é: WCHAN - . Qual man página descreve com "Tarefas em execução exibirão um traço ('-') nesta coluna."

Além disso, /proc/7843/status contém State: S (sleeping) e /proc/7843/wchan contém 0 . Eu acho que 0 in proc//wchan diz a mesma coisa - que a tarefa não espera nada.

Eu entendo mal algo ou eles contradizem um ao outro?

E a tarefa, na verdade, não é executada - não acho que - in wchan esteja esperando para ser agendado.

A saída wchan pode estar de alguma forma configurada incorretamente? Eu corro o Ubuntu 14.04, kernel 3.13.0-86-genérico.

Verificando outro processo mostra:

$ ps -eal | head -n 1 ; ps -eal | grep fish
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  2407  2399  0  80   0 - 47675 wait   pts/0    00:00:07 fish
1 S  1000  2409     1  0  80   0 -  5500 poll_s ?        00:00:00 fishd
0 S  1000  2507  2399  0  80   0 - 45333 poll_s pts/3    00:00:00 fish
0 S  1000  2567     1  0  80   0 -  8366 wait   ?        00:00:00 fish

- então aqui WCHAN está ok.

    
por xealits 01.06.2016 / 15:03

0 respostas