最初の報告から1ヶ月経ったけどまだ何の反応も無いので、犠牲者をこれ以上増やさないようにするために、先に周知します。
lmbench パッケージには、プログラム実行に要する遅延時間を測定する lat_proc というプログラムが入っていますが、 Debian/Ubuntu の lmbench-3.0-a9 をパッケージでインストールした場合には正しい結果が得られません。
これは、存在しない /var/tmp/lmbench/hello というプログラムを lat_proc が実行しようとするため、 execve() が失敗してしまうことが原因です。(失敗してもエラーメッセージ1つ出さないという作りはどうかと思いますが。(汗))
TOMOYO で解析すると、 sh -c を実行しているのに hello プログラムのためのドメインが作成されていないことが確認できます。
43: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lmbench
44: 0 /bin/cp
45: 0 /bin/date
46: 0 /bin/hostname
47: 0 /bin/mkdir
48: 0 /bin/mount
49: 0 /bin/netstat
50: 0 /bin/rm
51: 0 /bin/sleep
52: 0 /bin/sync
53: 0 /bin/tar
54: 0 /bin/uname
55: 0 /sbin/ifconfig
56: 0 /usr/bin/awk
57: 0 /usr/bin/expr
58: 0 /usr/bin/touch
59: 0 /usr/bin/uptime
60: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/bw_file_rd
61: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/bw_mem
62: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/bw_mmap_rd
63: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/bw_pipe
64: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/bw_tcp
65: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/bw_unix
66: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_connect
67: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_ctx
68: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_fs
69: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_http
70: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_mmap
71: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_pagefault
72: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_pipe
73: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_proc
74: 0 /bin/sh
*** ↑ hello プログラムのドメインが存在しない ***
75: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_rpc
76: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_select
77: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_sig
78: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_syscall
79: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_tcp
80: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_udp
81: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lat_unix
82: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lmdd
83: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/lmhttp
84: 0 /usr/lib/lmbench/bin/i686-pc-linux-gnu/msleep
85: 0 /usr/lib/lmbench/scripts/os
lmbench-3.0-a9.tgz から作成すると正しい結果が得られていることが判ります。
182: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lmbench
183: 0 /bin/cp
184: 0 /bin/date
185: 0 /bin/hostname
186: 0 /bin/mkdir
187: 0 /bin/mount
188: 0 /bin/netstat
189: 0 /bin/rm
190: 0 /bin/sleep
191: 0 /bin/sync
192: 0 /bin/tar
193: 0 /bin/uname
194: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/bw_file_rd
195: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/bw_mem
196: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/bw_mmap_rd
197: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/bw_pipe
198: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/bw_tcp
199: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/bw_unix
200: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_connect
201: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_ctx
202: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_fs
203: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_http
204: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_mmap
205: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_pagefault
206: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_pipe
207: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_proc
208: 0 /bin/sh
209: 0 /tmp/hello
*** ↑ hello プログラムのドメインが作られている ***
210: 0 /tmp/hello
211: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_rpc
212: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_select
213: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_sig
214: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_syscall
215: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_tcp
216: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_udp
217: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lat_unix
218: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lmdd
219: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/lmhttp
220: 0 /root/lmbench-3.0-a9/bin/i686-pc-linux-gnu/msleep
221: 0 /sbin/ifconfig
222: 0 /usr/bin/awk
223: 0 /usr/bin/expr
224: 0 /usr/bin/touch
225: 0 /usr/bin/uptime
ということで、 lmbench/3.0-a9-1 を使う場合、事前に hello プログラムを /var/tmp/lmbench/hello にコピーするか、あるいは、 lmbench-3.0-a9.tgz からコンパイルしたものを使用するようにしてください。(これ以外にも不具合があるかもしれないので、修正が完了するまでは lmbench-3.0-a9.tgz からコンパイルする方がおススメです。)
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=666072
posted by 熊猫さくら at 20:29|
Comment(0)
|
TrackBack(0)
|
Linux