リモート Linux* ターゲットシステム要件: ターゲットシステムへの root アクセス権が必要です。
すべての Linux* システムの要件: サンプリング・ドライバーのソース。ローカルシステムのサンプリング・ドライバーのソースは、インテル® VTune™ プロファイラーのインストール先の <install_dir>/sepdk フォルダーにあります。リモートターゲットの場合、インストール先の <install_dir>/target ディレクトリーから、ターゲットシステム用のパッケージを見つけ、パッケージをターゲットにコピーして展開し、ドライバーをビルドします。
Linux* ホストシステムで製品のインストール中に、[Advanced (詳細)] オプションによりドライバーのインストール・オプションを制御します。インテル® VTune™ プロファイラーは次のオプションを提供します。
このオプションを使用 |
説明 |
---|---|
サンプリング・ドライバーのインストール・タイプ [ビルドドライバー (デフォルト) / ドライバー・キット・ファイルのみ] |
ドライバーのインストール・オプションを選択します。デフォルトでは、インプロファイル® VTune™ プロファイラーはカーネルに対応したドライバーをビルドするため、サンプリング・ドライバー・キットを使用します。インストール後にドライバーを手動でビルドする場合、[driver kit files only (ドライバー・キット・ファイルのみ)] オプションに変更します。 |
Driver access group [ vtune (default) ] (ドライバーのアクセスグループ [ vtune (デフォルト) ]) |
システムで収集を許可するユーザーを決定するため、ドライバーのアクセスグループの所有権を設定します。デフォルトでは、グループは vtune です。このグループへのアクセスは制限されません。アクセスを制限するには、次の [Driver permissions (ドライバーのアクセス権限)] オプションを参照してください。インストール中に詳細オプションで独自のグループを設定することも、インストール後に次のコマンドを実行して手動で変更することもできます:./boot-script -–group <your_group>を <install-dir>/sepdk/srcディレクトリーから実行します。 |
ドライバーのアクセス権限 [660 (デフォルト)] |
ドライバーのアクセス権限を変更します。デフォルトでは、vtune グループのユーザーのみがドライバーにアクセスできます。この設定で、ユーザーはシステム全体のプロファイル、アプリケーションのプロファイル、およびプロセスにアタッチしてプロファイルが可能です。 |
Load driver [ yes (default) ] (ドライバーのロード [ はい (デフォルト) ]) |
カーネルにドライバーをロードします。 |
ブートスクリプトのインストール [ はい (デフォルト) ] |
システムを再起動するたびにドライバーをカーネルにロードするブートスクリプトを使用します。ブートスクリプトは、次のコマンドを実行して後で無効にすることができます:./boot-script --uninstall を <install-dir>/sepdk/src ディレクトリーから実行します。 |
ユーザーごとの収集モードを有効にする [いいえ (デフォルト) / はい] |
ユーザーごとのフィルター処理をオンにして、ハードウェア・イベントベース・コレクター・ドライバーをインストールします。フィルター処理がオンの場合、コレクターは、収集を開始したユーザーによって生成されたプロセスのデータのみを収集します。オフの場合 (デフォルト)、システム上のすべてのプロセスからのサンプルが収集されます。セキュリティー上の理由から、フィルター処理を使用して、クラスター上の他のユーザーから収集を分離することを検討してください。管理者/ルートは、いつでもドライバーを再構築/再起動することでフィルター処理モードを変更できます。一般ユーザーは、製品のインストール後にモードを変更することはできません。 注Linux* クラスター上の MPI アプリケーション解析では、インテル® Parallel Studio XE Cluster Edition をインストールする際に、[ユーザーごとのハードウェア・イベントベース・サンプリング] モードを有効にできます。このオプションは、収集中にインテル® VTune™ プロファイラーが現在のユーザーのデータのみを収集するようにします。インストール中に管理者によって有効にされると、通常のユーザーはこのモードを無効にすることができません。これは、ほかのユーザーのアクティビティーを含むノード全体のパフォーマンス・データを個々のユーザーが観察できないようにするためです。 インストール後に、それぞれの vars.sh ファイルを使用して、現在のターミナルセッションで適切な環境 (PATH、MANPATH) を設定できます。 |
ドライバーのビルドオプション… |
このシステムのカーネル・ヘッダー・ファイルの場所を指定し、ドライバーのビルドに使用する C コンパイラーのパスと名前、ドライバーのビルドに使用する make コマンドのパスと名前を指定します。 |
Linux* ホストシステム上で、サンプリング・ドライバーが正しくインストールされていることを確認するには、次の操作を行います。
サンプリング・ドライバーがインストールされているか確認します。
$ cd <install-dir>/sepdk/src
$ ./insmod-sep -q
これにより、ドライバーが現在ロードされているかどうか、またロードされている場合はドライバーデバイスのグループのアクセス権限とファイル権限が何であるかを示す情報が提供されます。
グループのアクセス権限を確認します。
ドライバーがロードされていても、ユーザーが query 出力のグループメンバーに登録されていない場合、システム管理者にグループへの登録を申請してください。デフォルトのドライバーのアクセスグループは vtune です。所属するグループを確認するには、コマンドラインから groups を実行します。これは、アクセス権限が 666 以外の場合にのみ必要です。
進行中の収集がなければ、ドライバーのロードによる実行時間のオーバーヘッドはなく、メモリー使用量のオーバーヘッドもわずかです。ブート時にシステムモジュールを自動的にロードできます (例えば、デフォルトでは install-boot-script が使用されます)。インテル® VTune™ プロファイラーによってデータが収集されていなければ、システムのパフォーマンスに影響するレイテンシーはありません。
カーネルの設定を確認するには:
カーネルのヘッダーソースがホストシステムに存在することを確認します。カーネルのバージョンは 2.6.28 以降である必要があります。カーネルのバージョンを調べるには、kernel-src-dir/include/linux/utsrelease.h または、カーネルのバージョンに応じて kernel-src-dir/include/generated/utsrelease.h を参照します。詳細は、sepdk/src ディレクトリーの README.txt ファイルを参照してください。
ハードウェア・イベントベース・サンプリング (EBS) 収集のカーネル構成で次のオプションが有効になっていることを確認します。
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_PROFILING=y (カーネルのバージョンが 5.16 以前の場合)
CONFIG_SMP=y
CONFIG_KALLSYMS=y
CONFIG_TRACEPOINTS=y(カーネルのバージョンが 5.17 以降では必須ですが、他のすべてのバージョンにも推奨されます)
CONFIG_KPROBES=y (カーネルのバージョンが 5.17 以降)
また、上記のオプションに加え、スタック付きの EBS 収集向けのカーネル設定では、次のオプションが有効であるか確認してください。
CONFIG_KRETPROBES=y
CONFIG_FRAME_POINTER=y(オプションですが、コールスタック・モード向けに推奨されます)
リモート・ターゲット・システムでカーネルモジュールの署名が必要であるかを決定します (CONFIG_MODULE_SIG_FORCE=y)。そうである場合は、ターゲットシステムに一致する署名済みキーが必要です。
新しいカーネルのソースからサンプリング・ドライバーをビルドし、既存のターゲットシステムで使用する場合は、元のキーファイルを取得し、元のキーを使用してサンプリング・ドライバーに署名します。または、新しいカーネルをビルドしてターゲットデバイスに書き込み、ターゲットデバイスがカーネルビルドを使用するようにします。
必要条件:
Linux* 上でカーネルドライバーをビルドしてロードするには、カーネルヘッダーのソースおよびほかの追加ソフトウェアが必要になります。カーネル設定の確認を参照してください。
リモートターゲット Linux* システム向けにドライバーをクロスビルドするには、<install-dir>/target フォルダーから <extract_dir> へパッケージを展開します。
Linux* カーネルの更新などにより、インテル® VTune™ プロファイラーのインストールに含まれるサンプリング・ドライバーのバージョンがカーネルに適合しない場合、サンプリング・ドライバーのダウンロード・ページ (英語) から最新のサンプリング・ドライバーを入手できます。
ドライバーが見つからない場合にビルドするには以下を行います。
ビルドスクリプトがあるディレクトリーを変更します。
ローカルシステム向けにドライバーをビルド:$ cd <install-dir>/sepdk/src
リモート・ターゲット・システム向けにドライバーをクロスビルド:$ cd <extract-dir>/sepdk/src
カーネルに対応したドライバーをビルドする ./build-driver スクリプトを使用します。
例:
$ ./build-driver
スクリプトは、ローカルシステムのビルドオプションのデフォルトを要求します。
$ ./build-driver -ni
スクリプトは、入力を求めることなく、デフォルトのオプションを使用してローカルシステム用のドライバーをビルドします。
$ ./build-driver -ni -pu
スクリプトは入力を促すことなく、ユーザーごとのイベントベース・サンプリング収集を行うドライバーをビルドします。
$ ./build-driver -ni \
--c-compiler=i586-i586-xxx-linux-gcc \
--kernel-version="<kernel-version>" \
--kernel-src-dir=<kernel-source-dir> \
--make-args="PLATFORM=x32 ARITY=smp"
--install-dir=<path>
このスクリプトは、特定のカーネルバージョン用に指定されたクロス・コンパイラーを使用してドライバーをビルドします。これは通常、現在のホスト上のリモート・ターゲット・システムのクロスビルドに使用されます。この例では、次のオプションを使用します。
-niは、インタラクティブなビルドを無効にします。
--c-compilerは、クロスビルド・コンパイラーを指定します。コンパイラーは PATH 環境から利用できる必要があります。オプションが指定されていないと、ビルドにはホスト GCC コンパイラーが使用されます。
--kernel-version はターゲットシステムのカーネルのバージョンを指定します。ターゲットシステムの uname -r の出力と、カーネルのバージョンに対応して、kernel-src-dir/include/generated/utsrelease.h または kernel-src-dir/include/linux/utsrelease.h の UTS_RELEASE と一致する必要があります。
--kernel-src-dirは、カーネル・ソース・ディレクトリーを指定します。
--make-argsは、ビルドの引数を指定します。32 ビットのターゲットシステムには PLATFORM=x32 を使用します。64 ビットのターゲットシステムにはPLATFORM=x32_64 を使用します。
--install-dirは、ビルドが成功した後にドライバーとスクリプトをコピーする書き込み可能なディレクトリーへのパスを指定します。
スクリプトの使い方に関するヘルプを表示するには、./build-driver -h コマンドを使用します。
Open Build Service (OBS) を使用して、RPM としてサンプリング・ドライバーをビルドするには:
<install-dir>/sepdk/src ディレクトリーにある sepdk.spec ファイルを使用します。
リモート・ターゲット・システム要件: ssh、ftp、adb、sdb、またはサポートされるその他の手段を使用してターゲットシステム向けにドライバーを構築する場合、sepdk/src フォルダーまたは、--Install-dir オプションで指定されたフォルダーをターゲット システムにコピーします。
ドライバーをインストールするには、次の操作を行います。
ドライバーのビルドが成功したら、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
Linux* システムが起動時にドライバーを自動的に読み込むようにするには、次の手順を実行します。
$ cd <install_dir>/sepdk/src
ユーザーごとのイベントベース・サンプリング収集を行うようにビルドされたドライバーをインストールするには、次のように-pu (-per-user)オプションを追加します。
$ ./boot-script --install -g <group> -pu
-g <group> オプションは、ドライバーがビルドされたときのグループをオーバーライドする場合にのみ必要です。
Linux* システムからドライバーを削除するには次のコマンドを実行します。
./rmmod-sep -s