Você não pode a menos que você corrija o kernel. E você tem coisas melhores para fazer.
Os contadores são incrementados __nf_ct_refresh_acct
se o O parâmetro do_acct
é diferente de zero. Essa função é chamada por meio de dois wrappers: nf_ct_refresh_acct
, que aumenta os contadores e nf_ct_refresh
, o que não. A escolha do wrapper é feita de acordo com o tipo de protocolo: protocolos que podem rastrear, os que não podem fazer.
A quantidade de computação é pequena. São apenas duas adições sincronizadas. Os processadores modernos têm pipelines de instruções muito profundos, o que torna as instruções condicionais caras: o processador tenta prever qual ramificação será usada para iniciar executando as próximas instruções antes de determinar o resultado do teste, e se a previsão estiver errada, muito trabalho precisa ser descartado. As adições requerem sincronização entre as CPUs, porque todas as CPUs precisam estar atualizando o mesmo contador; na arquitetura multicore típica, isso significa que o núcleo precisa bloquear a linha de cache que contém os contadores. Se o recurso fosse opcional, a CPU teria que ler o valor da configuração, que não requer acesso exclusivo, portanto, é um pouco menos caro. Ainda assim, seria um ganho extremamente pequeno, equilibrado pela perda um pouco menos pequena para a maioria dos usuários que querem os contadores. Não vale a pena ter uma opção para desativar esse recurso.