[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[plamo:29972] CONFIG_HZ とjiffie



早間です。
plamo 4.6 で CONFIG_HZ の値で時刻を計算すると合いません。
CONFIG_SMP=y の所為でしょうか。

検算のメモをつけておきます。

/proc/config.gz では
CONFIG_HZ_300=y
と指定されています。
同様に /usr/src/linux/.config の .config には 
 CONFIG_HZ_300=y
が指定されています。

perl で
$ perl -e '
use POSIX qw(sysconf _SC_CLK_TCK);
$HERZ=sysconf(_SC_CLK_TCK);
print "$HERZ\n";
'
100

と CONFIG_HZ を取得すると
$HERZ=100 が得られます。

man sysconf で見ると
clock ticks - _SC_CLK_TCK
              The number of clock ticks per second.  The
			  corresponding variable is obsolete.   It  was  of
			  course called CLK_TCK.  (Note: the macro
			  CLOCKS_PER_SEC does not give information: it must
			  equal 1000000.) 
とあります。

コマンドの実行開始時刻を計算すると kernel の CONFIG_HZ を 100 で計
算しないと合いません。

コマンド snmpd の計算例です。

(1) コマンド ps でコマンド実行開始時刻を得ます。 
$ ps u -C snmpd
USER   PID %CPU %MEM  VSZ  RSS TTY STAT START  TIME COMMAND
root 26395  0.5  1.6 7780 4172 ?   S    17:57  1:31 /usr/sbin/snmpd

17:57 が開始時刻です。

(2)このコマンドの実行開始 jiffie を取得すると
$ cat /proc/26395/stat| cut -f 22 -d" "
7653258

です。

(3) ホストの起動時刻は
$ cat /proc/stat 
cpu  16523 0 45423 9257145 106765 565 1249 0 0
cpu0 16523 0 45423 9257145 106765 565 1249 0 0
intr 1593210 98 502 0 1 1 0 5 0 158 0 0 0 1784 0 0 82804 0 435257 22417 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
ctxt 2472725
btime 1248435730
processes 38591
procs_running 1
procs_blocked 0

と

btime 1248435730 が得られます。

(4) CONFIG_HZ=300 で開始時刻を計算すると

$ perl -e 'use POSIX qw(strftime);
 $whenstart=1248435730 + 7653258/ 300;
 $startfrom=strftime("%y/%m/%d %H:%M",localtime($whenstart));
 print "$startfrom\n"' 

09/07/25 03:47

(5)CONFIG_HZ=100 で開始時刻を計算すると

$ perl -e 'use POSIX qw(strftime);
 $whenstart=1248435730 + 7653258 / 100;
 $startfrom=strftime("%y/%m/%d %H:%M", localtime($whenstart));
 print "$startfrom\n"'

09/07/25 17:57


-- 早間


Follow-Ups
[plamo:29982] Re: CONFIG_HZ とjiffie, KATOH Yasufumi
[plamo:30003] Re: CONFIG_HZ とjiffie, KATOH Yasufumi

[検索ページ] [メール一覧]
Plamo ML 公開システム