インテル® VTune™ プロファイラー・ユーザーガイド

Linux* ターゲットのサンプリング・ドライバーのビルドとインストール

リモート Linux* ターゲットシステム要件: ターゲットシステムへの root アクセスが必要です。

すべての Linux* システムの要件: インテル® VTune™ プロファイラーのリリースごとのサンプリング・ドライバーの最新バージョンについては、インテル® デベロッパー・ゾーンで確認してください。サンプリング・ドライバーは、https://software.intel.com/en-us/articles/intel-vtune-amplifier-sampling-driver-downloads からダウンロードできます。

Linux* ホストシステムでドライバーをインストール

ホスト Linux* OS での製品のインストール中に、[Advanced (詳細)] オプションによりドライバーのインストール・オプションを制御します。インテル® VTune™ プロファイラーは次のオプションを提供します。

オプション

説明

Sampling driver install type (サンプリング・ドライバーのインストール・タイプ) [build driver (デフォルト)/driver kit files only]

ドライバーのインストール・オプションを選択します。デフォルトでは、インプロファイル® VTune™ プロファイラーはカーネルに対応したドライバーをビルドするため、サンプリング・ドライバー・キットを使用します。インストール後にドライバーを手動でビルドする場合、[driver kit files only (ドライバー・キット・ファイルのみ)] オプションに変更します。

Driver access group (ドライバーのアクセスグループ) [vtune (デフォルト)]

システムでパフォーマンス収集を許可するユーザーを決定するため、ドライバーのアクセスグループの所有権を設定します。デフォルトのグループは、vtune です。このグループへのアクセスは制限されません。アクセスを制限するには、次の [Driver permissions] オプションをご覧ください。[Advanced] オプションでのインストール中に固有のグループを設定するか、インストール後に次のコマンドを実行してグループを変更します: <install-dir>/sepdk/src ディレクトリーの ./boot-script -–group <your_group>

Driver permissions (ドライバーのアクセス権限) [660 (デフォルト)]

ドライバーのアクセス権限を変更します。デフォルトでは、vtune グループのユーザーだけがドライバーにアクセスできます。この設定で、ユーザーはシステム全体のプロファイル、アプリケーションのプロファイル、およびプロセスにアタッチしてのプロファイルが可能です。

Load driver (ドライバーのロード) [yes (デフォルト)]

ドライバーをカーネルにロードします。

Install boot script (ブートスクリプトのインストール) [yes (デフォルト)]

システムを再起動するたびにドライバーをカーネルにロードするブートスクリプトを使用します。ブートスクリプトは次のコマンドで無効にできます: <install-dir>/sepdk/src ディレクトリーの ./boot-script --uninstall

Enable per-user collection mode (ユーザーごとの収集モードを有効にする) [no (デフォルト)/yes]

ユーザーごとのフィルターを有効にして、ハードウェア・イベントベース・コレクターのドライバーをインストールします。フィルターが有効な場合、コレクターは収集を開始したユーザーによってスポーンされたプロセスのデータのみを収集します。無効 (デフォルト) の場合、システムのすべてのプロセスからサンプルが収集されます。セキュリティーの観点から、クラスター環境ではほかのユーザーから収集を分離するためフィルターを利用することを考えてください。管理者/root は、ドライバーをいつでも再ビルド/再起動することでフィルターモードを変更することができます。一般ユーザーは、製品のインストール後にモードを変更することはできません。

Linux* クラスター上の MPI アプリケーション解析では、インテル® Parallel Studio XE Cluster Edition をインストールする際に、ユーザーごとのハードウェア・イベントベース・サンプリング・モードを有効にできます。このオプションは、インテル® VTune™ プロファイラーが現在のユーザーのデータのみを収集することを指示します。インストール中に管理者によって有効にされると、通常ユーザーはこのモードを無効にすることができません。これは、ほかのユーザーのアクティビティーを含むノード全体のパフォーマンス・データを個々のユーザーが観察できないようにするためです。

インストール後、ターミナルセッションでそれぞれの vars.sh ファイルを使用して、適切な環境 (PATH、MANPATH) を設定できます。

Driver build options … (ドライバーのビルドオプション …)

このシステムでカーネル・ヘッダー・ファイルの場所を指定し、ドライバーのビルドに使用する C コンパイラーのパスと名前、ドライバーのビルドに使用する make コマンドのパスと名前を指定します。

サンプリング・ドライバーのインストールを確認

ホスト Linux* システム上で、サンプリング・ドライバーが正しくインストールされていることを確認するには、次の操作を行います。

  1. サンプリング・ドライバーがインストールされているか確認します。

    $ cd <install-dir>/sepdk/src

    $ ./insmod-sep -q

    これは、現在ドライバーがロードされているかどうかと、ドライバーデバイスのグループ所有権とファイルのアクセス権限に関する情報を提供します。

  2. グループの権限を確認します。

    ドライバーがロードされていても、ユーザーが query 出力のグループメンバーに登録されていない場合、システム管理者にグループへの登録を申請してください。デフォルトのドライバーのアクセスグループは vtune です。所属するグループを確認するには、コマンドラインから groups を実行します。これは、アクセス権限が 666 以外の場合にのみ必要です。

進行中の収集がなければ、ドライバーのロードによる実行時間のオーバーヘッドはなく、メモリー使用量もほんのわずかです。ブート時にシステムモジュールを自動的にロードできます (例えば、デフォルトでは install-boot-script が使用されます)。インテル® VTune™ プロファイラーによってデータが収集されていなければ、システムのパフォーマンスに影響するレイテンシーはありません。

カーネル設定の確認

カーネルの設定を確認します。

  1. カーネルのヘッダーソースが、ホストシステムに存在することを確認します。カーネルバーションは、2.6.28 以降である必要があります。カーネルのバージョンを調べるには、kernel-src-dir/include/linux/utsrelease.h、またはカーネルのバージョンに応じて kernel-src-dir/include/generated/utsrelease.h を参照します。詳細は、sepdk/src ディレクトリーの README.txt ファイルを参照してください。

  2. ハードウェア・イベントベース・サンプリング (EBS) 収集のため、次のオプションがカーネル設定で有効であることを確認してください。

    • CONFIG_MODULES=y

    • CONFIG_MODULE_UNLOAD=y

    • CONFIG_PROFILING=y

    • CONFIG_SMP=y

    • CONFIG_TRACEPOINTS=y (これはオプションですが推奨されます)

  3. また、上記のオプションに加え、スタック付きの EBS 収集向けのカーネル設定では、次のオプションが有効であるか確認してください。

  4. リモート・ターゲット・システムでカーネルモジュールの署名が必要であるかを決定します (CONFIG_MODULE_SIG_FORCE=y)。署名が必要である場合、ターゲットシステムと一致する署名キーが必要です。

    サンプリング・ドライバーを新たなカーネルソースからビルドして、それを既存のターゲットシステムで使用する場合、オリジナルのキーファイルを取得してサンプリング・ドライバーをオリジナルキーで署名する必要があります。別の方法として、新しいカーネルをビルドして、ターゲットデバイスに書き込んで使用することもできます。

サンプリング・ドライバーのビルド

必要条件:

ドライバーがない場合にビルドするには、次の操作を行います。

  1. ビルドスクリプトが格納されるディレクトリーに移動します。

    • ローカルシステム向けにドライバーをビルド: $ cd <install-dir>/sepdk/src

    • リモート・ターゲット・システム向けにドライバーをクロスビルド: $ cd <extract-dir>/sepdk/src

  2. カーネルに対応したドライバーをビルドするには、build-driver スクリプトを使用します。次に例を示します。

スクリプトに関する詳しいヘルプメッセージを確認するには、./build-driver -h コマンドを使用します。

Open Build Service (OBS) を使用して、RPM としてサンプリング・ドライバーをビルドするには:

<install-dir>/sepdk/src ディレクトリーにある sepdk.spec ファイルを使用します。

サンプリング・ドライバーをインストール

リモート・ターゲット・システム要件: ssh、ftp、adb、sdb、または他の手段を使用してターゲットシステム向けにドライバーを構築する場合、sepdk/src フォルダー、または--install-dir オプションで指定されるフォルダーをコピーします。

ドライバーをインストールするには:

  1. ドライバーのビルドが成功したら、insmod-sep スクリプトを使用して手動でインストールします。

    $ cd <install_dir>/sepdk/src

    $ ./insmod-sep -r -g <group>

    <group> は、ドライバーへのアクセス権を持つユーザーのグループです。

    ユーザーごとのイベントベース・サンプリング収集を行うようにビルドされたドライバーをインストールするには、-pu (-per-user) オプションを使用します。

    $ ./insmod-sep -g <group> -pu

    リソースが制限された環境で実行する場合、-re オプションを使用します。

    $ ./insmod-sep -re

  2. ブート時に Linux* システムが自動的にドライバーをロードするようにします。

    $ cd <install_dir>/sepdk/src

    $ ./boot-script --install -g <group>

    -g <group> オプションは、ドライバーのビルド時に指定されたグループをオーバーライドする場合にのみ使用します。

Linux* システムからドライバーを削除するには:

./rmmod-sep -s

関連情報