[FUG-BR] Estranho comportamento do ping

Nilson nilson em forge.com.br
Sexta Novembro 20 23:49:30 BRST 2009


2009/11/20  <tg_melo at bol.com.br>:
> muito obrigado pelo rápido retorno Nilson, e pela idéia do relógio.
> mas infelizmente, mesmo atualizando de minuto em minuto ou menos o relógio pelo ntp, a esquisitice persiste. :/

Certo, vamos partir pra algo mais prático então. O FreeBSD possui
uma boa gama de variaveis tunáveis em relação ao timer via sysctl,
sendo as mais importantes dentro dessa ramificação:

[root at bsdtestes ~]# sysctl kern.timecounter
kern.timecounter.tick: 1
kern.timecounter.choice: TSC(800) ACPI-fast(1000) i8254(0) dummy(-1000000)
kern.timecounter.hardware: ACPI-fast
kern.timecounter.stepwarnings: 0
kern.timecounter.tc.i8254.mask: 65535
kern.timecounter.tc.i8254.counter: 56072
kern.timecounter.tc.i8254.frequency: 1193182
kern.timecounter.tc.i8254.quality: 0
kern.timecounter.tc.ACPI-fast.mask: 16777215
kern.timecounter.tc.ACPI-fast.counter: 5534788
kern.timecounter.tc.ACPI-fast.frequency: 3579545
kern.timecounter.tc.ACPI-fast.quality: 1000
kern.timecounter.tc.TSC.mask: 4294967295
kern.timecounter.tc.TSC.counter: 498230515
kern.timecounter.tc.TSC.frequency: 2211208607
kern.timecounter.tc.TSC.quality: 800
kern.timecounter.smp_tsc: 0
kern.timecounter.invariant_tsc: 0

Esse BSD é um 7.2R em uma VMWare, mas em máquinas
físicas também é comum a existência de mais de um clock
(gerador de ticks) disponíveis, nesse caso existem

kern.timecounter.choice: TSC(800) ACPI-fast(1000) i8254(0) dummy(-1000000)

dois clocks interessantes o TSC com um índice de qualidade (é
assim que a documentação chama esse valor) de 800 e o ACPI-fast
com 1000, os outros são fake pois um tem 0 e o outro um valor negativo,
o que é bizarro dentro desse contexto. Dentre esses dois meu BSD
escolheu o que tem mais qualidade:

kern.timecounter.hardware: ACPI-fast

Sendo que eu posso trocar a vontade por outro clock:

[root at bsdtestes ~]# sysctl -w kern.timecounter.hardware=TSC
kern.timecounter.hardware: ACPI-fast -> TSC

Sugiro que faças umas experiências com essas sysctls (e outras
relacionadas) que deve brotar uma solução.

-- 
[]s
Nilson


Mais detalhes sobre a lista de discussão freebsd