Como o Ubuntu verifica periodicamente os dispositivos SCSI?

1

Espero que alguém aqui possa me ajudar a entender como o Ubuntu 12.04.3 varre o barramento SCSI periodicamente.

Eu habilitei o log SCSI através deste comando:

scsi_logging_level -E 3 -S 3 -M 2

Quando eu conecto meu BlackBerry 9800, vejo o seguinte conjunto de mensagens periodicamente (modo de carga, não no modo UMASS):

[102356.446327] sd 32:0:0:1: Done: SUCCESS
[102356.446331] sd 32:0:0:1:  Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[102356.446335] sd 32:0:0:1: CDB: Test Unit Ready: 00 20 00 00 00 00
[102356.446343] sd 32:0:0:1:  Sense Key : Not Ready [current] 
[102356.446347] sd 32:0:0:1:  Add. Sense: Medium not present
[102356.446358] sd 32:0:0:0: Send: 
[102356.446361] sd 32:0:0:0: CDB: Test Unit Ready: 00 00 00 00 00 00
[102356.447168] sd 32:0:0:0: Done: SUCCESS
[102356.447172] sd 32:0:0:0:  Result: hostbyte=DID_OK driverbyte=DRIVER_OK
[102356.447176] sd 32:0:0:0: CDB: Test Unit Ready: 00 00 00 00 00 00
[102356.447183] sd 32:0:0:0:  Sense Key : Not Ready [current] 
[102356.447188] sd 32:0:0:0:  Add. Sense: Medium not present

Por fim, quando eu alterno para o modo UMASS, a mídia é detectada como presente e os nós de dispositivo sd correspondentes são criados.

Tudo está funcionando como esperado, mas eu gostaria de entender essa funcionalidade. Então, o que está provocando a varredura periódica do ônibus? Existe algum serviço que acione isso, ou isso é feito diretamente pelo kernel?

Atualizar I

As mensagens vêm definitivamente do kernel, então acredito que o kernel é responsável pela varredura dos dispositivos SCSI. No entanto, ainda não está claro para mim o que está acionando a verificação periódica do meu dispositivo BlackBerry.

    
por rkyser 06.12.2013 / 22:23

1 resposta

1

Ok. Eu finalmente percebi isso.

A pesquisa é feita diretamente pelo kernel. Isso não acontece na camada SCSI, como eu pensava inicialmente, mas é tratado na camada de dispositivo de bloco. Isso foi adicionado várias versões do kernel atrás , no entanto, ele é desabilitado por padrão na fonte do kernel.org.

Você pode alterar o intervalo de pesquisa padrão com o seguinte comando (você deve ser root):

echo 2000 > /sys/module/block/parameters/events_dfl_poll_msecs

ou a versão amigável do sudo:

echo 2000 | sudo tee -a /sys/module/block/parameters/events_dfl_poll_msecs

Eu suponho que durante o init do Ubuntu, isso está configurado, ou talvez eles diretamente consertem o código fonte do kernel.org com seu próprio valor padrão.

    
por rkyser 10.12.2013 / 21:30