Como obter tempo de época com trace-cmd (frontend for ftrace)?

0
  <...>-32578 [001] **133767.868869**: kfree:            call_site=ffffffff810e6f06 ptr=(nil)

Como fazer trace-cmd reportar o tempo na hora da época? A hora por padrão é que eu acho tempo desde o tempo de atividade do aplicativo. Este é um requisito para identificar a hora exata do evento.

trace-cmd list -O opções também não ajudam.

    
por themagicalyang 12.12.2016 / 06:10

1 resposta

0

O tempo 133767.868869 neste caso é o tempo desde que o cpu inicializou (assumindo que você não alterou o valor do arquivo convencionalmente montado em / sys / kernel / debug / tracing / trace_clock). A questão é quanto precisão você precisa para the exact time of the event . Se dizer ao segundo mais próximo está ok, então você pode simplesmente adicionar a saída de

  date | cat > /dev/null # Make sure programs are in cache
  set -- $(date +%s.%N) $(cat /proc/uptime)
  echo "$1-$2" | bc

que funciona o tempo que o sistema inicializou. Isso pressupõe que o seu relógio está definido razoavelmente.

Se você quiser algo com maior precisão, provavelmente deve fazer algo como

  echo global > /sys/kernel/debug/tracing/trace_clock # Once only
  date +"Time=%s.%N" > /sys/kernel/debug/tracing/trace_marker

várias vezes e compare as mensagens Time= com os timestamps para obter uma estimativa de quanto os valores são compensados e quanta variabilidade existe.

Uma vez que você saiba o valor a ser ajustado, então você pode fazer um cálculo para ver quando um evento específico aconteceu ou você pode escrever um script em awk ou perl ou python ou ... para ajustar a coluna no saída.

    
por 12.12.2016 / 08:18