1

Oprofile を使用してカーネル モジュールのプロファイルを作成すると、opreport に次のような警告が表示されます。

warning: could not check that the binary file /lib/modules/2.6.32-191.el6.x86_64/kernel/fs/ext4/ext4.ko has not been modified since the profile was taken. Results may be inaccurate.
1591    samples % symbol name
1592    1622 9.8381 ext4_iget
1593    1591 9.6500 ext4_find_entry
1594    1231 7.4665 __ext4_get_inode_loc
1595    783 4.7492 ext4_ext_get_blocks
1596    752 4.5612 ext4_check_dir_entry
1597    644 3.9061 ext4_mark_iloc_dirty
1598    583 3.5361 ext4_get_blocks
1599    583 3.5361 ext4_xattr_get

誰かが警告とは何かを説明してください.oprofile出力の精度に影響を与えますか?とにかくこの警告を回避する方法はありますか?

任意の提案をいただければ幸いです。どうもありがとうございます!

詳細情報を追加: でdaemon/opd_mangling.c

if (!sf->kernel)
    binary = find_cookie(sf->cookie);
else
    binary = sf->kernel->name;
...
fill_header(odb_get_data(file), counter,
        sf->anon ? sf->anon->start : 0, last_start,
        !!sf->kernel, last ? !!last->kernel : 0,
        spu_profile, sf->embedded_offset,
        binary ? op_get_mtime(binary) : 0);

カーネル モジュール ファイルの場合、sf->kernel->nameはカーネル モジュール名であるため、フィル ヘッダーは常にmtime0 で埋められ、不要な警告が生成されます。

4

1 に答える 1

1

この失敗はstat、問題のファイルの が失敗したことを示しています。を実行してstrace -e stat、特定の障害モードを確認します。

time_t op_get_mtime(char const * file)
{
    struct stat st;

    if (stat(file, &st))
        return 0;

    return st.st_mtime;
}
...
    if (!header.mtime) {
        // FIXME: header.mtime for JIT sample files is 0. The problem could be that
        //        in opd_mangling.c:opd_open_sample_file() the call of fill_header()
        //        think that the JIT sample file is not a binary file.
        if (is_jit_sample(file)) {
            cverb << vbfd << "warning: could not check that the binary file "
                  << file << " has not been modified since "
                  "the profile was taken. Results may be inaccurate.\n";

oprofile 出力の精度に影響しますか? この警告を回避する方法はありますか?

はい、" " かどうかを警告する機会がないという点で、出力に影響しますthe last modified time of the binary file does not match that of the sample file...。測定したものが現在インストールされているバイナリと一致することが確実である限り、表示されている警告は無害です。

于 2012-08-22T03:09:40.700 に答える