Lock debugging: prove locking correctness :: Admirável Mundo Novo




Muito Bem Vindo

Prezado Leitor, a proposta desse Blog é compartilhar conhecimento com as pessoas que trabalham com Linux, Asterisk, OpenSER, e com tecnologia de voz sobre a rede IP em geral, através de tutoriais, dicas, howto, notícias entre outros assuntos.

Atente para termo de uso do conteúdo do blog no rodapé da página.

sábado, 26 de abril de 2008

Lock debugging: prove locking correctness




----------------------------------------------------------------------------------------------------------------------------------------
Lock debugging: prove locking correctness

CONFIG_PROVE_LOCKING:

Essa funcionalidade habilita o kernel provar que todo travamento que ocorrer no kernel runtime está matematicamente correto: que sob nenhuma circunstancia pode uma combinação arbitraria (e ainda não trigada) de seqüências de travamento observadas (em um número arbitrário de CPUs, rodando um número arbitrário de tarefas e contextos de interrupção) causa um deadlock.

Em resumo, essa funcionalidade habilita o kernel reportar travamento relacionado à deadlocks antes mesmo deles ocorrem de fato.

A prova não depende de quão difícil e complexo seria um cenário de deadlock para trigar: quantas CPUs participantes, tarefas e irq-contextos seriam preciso para ele trigar.

A prova também não depende de timing: se uma condição race e um deadlock resultante sejam possíveis teoricamente (não importa quão seja improvável o cenário race), seria provado então e seria imediatamente reportado pelo kernel (uma vez o evento seja observado que torna o deadlock teoricamente possível).

Se um deadlock for impossível (ou seja, as regras de trava são corretas matematicamente, como observado pelo kernel), o kernel reporta nada.

NOTE que essa funcionalidade também pode ser habilitada por rwlocks, mutexes e rwsems – naquele caso todas as dependências entre essas diferentes variantes de travamento são observadas e mapeadas também, e a prova de exatidão observada é também mantida por uma combinação arbitraria dessas variantes separadas de travamento.

Para mais detalhes, veja o arquivo Documentation/lockdep-design.txt.

Symbol: PROVE_LOCKING [=y]
Prompt: Lock debugging: prove locking correctness
  Defined at lib/Kconfig.debug:174
  Depends on: DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
  Location:
    -> Kernel hacking
      -> Kernel debugging (DEBUG_KERNEL [=y])
  Selects: LOCKDEP && DEBUG_SPINLOCK && DEBUG_MUTEXES && DEBUG_RWSEMS && DEBUG_LOCK_ALLOC




























Nenhum comentário:




Creative Commons License
Admirável Mundo Novo: Tudo Sobre Asterisk, OpenSER, Linux e Tecnologias de Voz sobre IP
by Cléviton Mendes de Araújo is licensed under a Creative Commons Atribuição 2.5 Brasil License.