[FUG-BR] lock order reversal

Luiz Otavio O Souza lists.br em gmail.com
Segunda Outubro 12 11:54:56 BRT 2015


On 9 October 2015 at 08:44, Otacílio wrote:
> Caros
>
> Gerei uma imagem para a minha beaglebone utilizando o crochet. Só que de vez
> em quando eu recebo uma mensagem de lock order reversal como a seguinte:
>
> lock order reversal:
>  1st 0xcd363f50 bufwait (bufwait) @ /src/FreeBSD/sys/kern/vfs_bio.c:3344
>  2nd 0xc3224400 dirhash (dirhash) @
> /src/FreeBSD/sys/ufs/ufs/ufs_dirhash.c:281
> KDB: stack backtrace:
> lock order reversal:
>  1st 0xcd363f50 bufwait (bufwait) @ /src/FreeBSD/sys/kern/vfs_bio.c:3344
>  2nd 0xc0842e68 kernel linker (kernel linker) @
> /src/FreeBSD/sys/kern/kern_linke r.c:552
> KDB: stack backtrace:
> db_trace_self() at db_trace_self
>          pc = 0xc062ddb0  lr = 0xc0242ff8 (db_trace_self_wrapper+0x30)
>          sp = 0xdd1b6580  fp = 0xdd1b6698
> db_trace_self_wrapper() at db_trace_self_wrapper+0x30
>
> Do que eu pesquisei na Internet encontrei essa descrição
>
> https://www.freebsd.org/doc/faq/troubleshoot.html#idp59178576
>
> de que é uma mensagem de um framework informando que um deadlock pode ter
> acontecido. Eu gostaria que alguém me dissesse se preciso ficar preocupado
> com isso e, caso não, qual o caminho das pedras para o arquivo de
> configuração do Kernel que o crochet usa para a beaglebone para que eu possa
> desativar isso lá.
>

Otacilio,

Não necessariamente esse aviso quer dizer que um deadlock pode ter
acontecido, mas sim que ele 'poderia' acontecer:

It is possible to get false positives, as witness(4) is conservative.
A true positive report does not mean that a system is dead-locked;
instead it should be understood as a warning that a deadlock could
have happened here.

Alguns desses warnings não representam um problema (falso positivos).

Você não precisa se preocupar com isso, isso é normal no -current (os warnings).

Desabilite as opções de debug no kernel e você não vera mais esses
warnings (além de obter uma performance muito melhor).

Para isso comente as seguintes opções no arquivo de configuração do kernel:

options         INVARIANTS              # Enable calls of extra sanity checking
options         INVARIANT_SUPPORT       # Extra sanity checks of
internal structures, required by INVARIANTS
options         WITNESS                 # Enable checks to detect
deadlocks and cycles
options         WITNESS_SKIPSPIN        # Don't run witness on
spinlocks for speed

Luiz


Mais detalhes sobre a lista de discussão freebsd