-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
84 lines (63 loc) · 3.73 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
README COPYRIGHT FUJITSU LIMITED 2019
■ビルド方法
前提として、${HOME}に.mck_test_configが配置されている必要がある。
下記シェルを実行する。
$ sh ./make_arm64.sh
一部カーネルモジュール*.koをビルドするため、カーネルソースパスを
指定する部分がある。
デフォルトでは/lib/modules/`uname -r`/buildのパスを指定するが、
他のパスを指定する場合には下記のファイルの環境変数を変更する。
test_drv/Makefile
- TEST_MCK_KERNEL_SOURCE
テストバイナリ群は./binに生成される。
cleanの場合は下記引数で実行する。./bin/*の削除も行う。
$ sh ./make_arm64.sh clean
■実行方法
$ sudo sh ./util/run_rt_postk.sh -p <numa-setting#> -b -s <group_id>
-p NUMA/メモリ設定の指定
1: 4ノード、各ノード 512MiB
2: 4ノード、各ノード 1GiB
3: 4ノード、各ノード 2GiB
4: 4ノード、各ノード 3GiB
5: 4ノード、各ノード 4GiB
-b 全テストケースを直接mcexecに実行させる項目と
全てexecveを経由させる項目を実行する。
前者のみ実行する場合は代わりに-nを、
後者のみ実行する場合には代わりに-eを指定する。
-s テストを実施するグループのidを指定する。
idとテスト項目との対応はrun_testset_postk.shを参照されたい。
テストスクリプト内部でMcKernelの実行/終了を含むため、
事前に起動させておく必要はない。
CPUの割り当ては以下のルールで決定する。
・HOST論理番号の最大が59の場合、0-3をHOST、12-59をMcKernelに割り当てる
・HOST論理番号の最大が51の場合、0,13,26,39をHOST、それ以外をMcKernelに割り当てる
・HOST論理番号の最大が15の場合、0-3をHOST、4-15をMcKernelに割り当てる
・上記のいずれでもない場合、0をHOST、それ以外をMcKernelに割り当てる
また、実行後にはカレントディレクトリにcoreファイルが残る。
これは障害発生時に解析用として削除せずに残しているファイルであるため、
問題なければ削除して良い。
■合否確認方法
同梱する実行ログ(result.log)との比較で合否確認を実施する。
一部はメモリのアドレスやプロセスIDが表示されている部分があり、
差分があっても合否には影響しない箇所もある。
一例を挙げると、以下のような箇所が該当する。
・各プロセスID/スレッドIDが出力されている箇所
・print文の出力順序が順不同である箇所
・ユーザ空間のメモリのアドレスが出力されている箇所
・環境変数environを出力している箇所
・汎用レジスタ値を出力している箇所
・カレントディレクトリを含むパスが出力される箇所
・計測時間を表示する箇所(usレベルでの差分)
同梱したログは、下記環境で実施したものである。
・QEMU-v3.1.0
・NUMAノード数:4
・メモリ搭載:32GiB
・コア数:16
HOST-Linuxは以下の通り。
[root@localhost ostestset]# uname -a
Linux localhost.localdomain 4.18.0-32.el8.aarch64 #1 SMP Sat Oct 27 19:22:30 UTC 2018 aarch64 aarch64 aarch64 GNU/Linux
なお、ログの回収にスクリプト結果のリダイレクトを用いると、
mcexecがシグナル受信時に出力する「Terminate by signal %d」のログが
出力されない結果となる。
# これは、mcexec内部で出力処理の判定にisatty()を利用していることに起因する。
以上。